import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { WbAdDeliveryProv } from '../models/index' 
/**
 * @author auto generate
 * @version 1.2
 * @date 2020-12-29 15:31
 */
interface WbAdDeliveryProvCU extends ConditionUtil<WbAdDeliveryProvCU>{
    ID:FieldUtil<WbAdDeliveryProvCU>;
    CONFIG_ID:FieldUtil<WbAdDeliveryProvCU>;
    PROV_ID:FieldUtil<WbAdDeliveryProvCU>;
    CREATE_TIME:FieldUtil<WbAdDeliveryProvCU>;
    UPDATE_TIME:FieldUtil<WbAdDeliveryProvCU>;
}

class WbAdDeliveryProvCUImpl extends ConditionUtilImpl<WbAdDeliveryProvCUImpl> implements WbAdDeliveryProvCU{ 
    newInstance(): WbAdDeliveryProvCUImpl {
        return new WbAdDeliveryProvCUImpl();
    } 
    get ID(): FieldUtil<WbAdDeliveryProvCU>{  
        return new FieldUtil('ID','id','', this);
    }
    get CONFIG_ID(): FieldUtil<WbAdDeliveryProvCU>{  
        return new FieldUtil('CONFIG_ID','configId','', this);
    }
    get PROV_ID(): FieldUtil<WbAdDeliveryProvCU>{  
        return new FieldUtil('PROV_ID','provId','', this);
    }
    get CREATE_TIME(): FieldUtil<WbAdDeliveryProvCU>{  
        return new FieldUtil('CREATE_TIME','createTime','创建时间', this);
    }
    get UPDATE_TIME(): FieldUtil<WbAdDeliveryProvCU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', this);
    }
}

@Singleton 
class WbAdDeliveryProvMU extends TableUtilImpl<WbAdDeliveryProvCU,WbAdDeliveryProv>{ 
    tableName  = 'wb_ad_delivery_prov';
    tableFields  = ['ID','CONFIG_ID','PROV_ID','CREATE_TIME','UPDATE_TIME'];
    modelFields  = ['id','configId','provId','createTime','updateTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['ID'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): WbAdDeliveryProvCU {
        return new WbAdDeliveryProvCUImpl();
    }   

    static get ID(): FieldUtil<WbAdDeliveryProvCU>{ 
        return new FieldUtil('ID','id','', new WbAdDeliveryProvCUImpl());
    }
    static get CONFIG_ID(): FieldUtil<WbAdDeliveryProvCU>{ 
        return new FieldUtil('CONFIG_ID','configId','', new WbAdDeliveryProvCUImpl());
    }
    static get PROV_ID(): FieldUtil<WbAdDeliveryProvCU>{ 
        return new FieldUtil('PROV_ID','provId','', new WbAdDeliveryProvCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<WbAdDeliveryProvCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','创建时间', new WbAdDeliveryProvCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<WbAdDeliveryProvCU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', new WbAdDeliveryProvCUImpl());
    }

    get ID(): FieldUtil<WbAdDeliveryProvCU>{ 
        return WbAdDeliveryProvMU.ID;
    }
    get CONFIG_ID(): FieldUtil<WbAdDeliveryProvCU>{ 
        return WbAdDeliveryProvMU.CONFIG_ID;
    }
    get PROV_ID(): FieldUtil<WbAdDeliveryProvCU>{ 
        return WbAdDeliveryProvMU.PROV_ID;
    }
    get CREATE_TIME(): FieldUtil<WbAdDeliveryProvCU>{ 
        return WbAdDeliveryProvMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<WbAdDeliveryProvCU>{ 
        return WbAdDeliveryProvMU.UPDATE_TIME;
    }
}
export {WbAdDeliveryProvMU, WbAdDeliveryProvCU}
