import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { Ad_data_report_log } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-04-14 12:51
 */
interface Ad_data_report_logCU extends ConditionUtil<Ad_data_report_logCU>{
    ID:FieldUtil<Ad_data_report_logCU>;
    AD_DELIVERY_PLAN_ID:FieldUtil<Ad_data_report_logCU>;
    REQUESTID:FieldUtil<Ad_data_report_logCU>;
    USER_ID:FieldUtil<Ad_data_report_logCU>;
    USER_TYPE:FieldUtil<Ad_data_report_logCU>;
    AD_POSITION_ID:FieldUtil<Ad_data_report_logCU>;
    AD_INFO_ID:FieldUtil<Ad_data_report_logCU>;
    AD_MATERIAL_ID:FieldUtil<Ad_data_report_logCU>;
    AD_STYLE_ID:FieldUtil<Ad_data_report_logCU>;
    REPORT_TYPE:FieldUtil<Ad_data_report_logCU>;
    TRIGGER_TIME:FieldUtil<Ad_data_report_logCU>;
    CREATE_TIME:FieldUtil<Ad_data_report_logCU>;
}

class Ad_data_report_logCUImpl extends ConditionUtilImpl<Ad_data_report_logCUImpl> implements Ad_data_report_logCU{ 
    newInstance(): Ad_data_report_logCUImpl {
        return new Ad_data_report_logCUImpl();
    } 
    get ID(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('ID','id','id', this);
    }
    get AD_DELIVERY_PLAN_ID(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('AD_DELIVERY_PLAN_ID','adDeliveryPlanId','广告投放计划id', this);
    }
    get REQUESTID(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('REQUESTID','requestid','请求id', this);
    }
    get USER_ID(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('USER_ID','userId','用户id', this);
    }
    get USER_TYPE(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('USER_TYPE','userType','用户类型：0，速停车用户；1，非速停车用户', this);
    }
    get AD_POSITION_ID(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('AD_POSITION_ID','adPositionId','广告位id', this);
    }
    get AD_INFO_ID(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('AD_INFO_ID','adInfoId','广告信息id', this);
    }
    get AD_MATERIAL_ID(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('AD_MATERIAL_ID','adMaterialId','素材id', this);
    }
    get AD_STYLE_ID(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('AD_STYLE_ID','adStyleId','样式id', this);
    }
    get REPORT_TYPE(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('REPORT_TYPE','reportType','上报类型：0，服务端上报；1，广告展示上报；2，广告点击上报；3，广告成交上报', this);
    }
    get TRIGGER_TIME(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('TRIGGER_TIME','triggerTime','触发时间', this);
    }
    get CREATE_TIME(): FieldUtil<Ad_data_report_logCU>{  
        return new FieldUtil('CREATE_TIME','createTime','创建时间', this);
    }
}

@Singleton 
class Ad_data_report_logMU extends TableUtilImpl<Ad_data_report_logCU,Ad_data_report_log>{ 
    tableName  = 'ad_data_report_log';
    tableFields  = ['id','ad_delivery_plan_id','requestId','user_id','user_type','ad_position_id','ad_info_id','ad_material_id','ad_style_id','report_type','trigger_time','create_time'];
    modelFields  = ['id','adDeliveryPlanId','requestid','userId','userType','adPositionId','adInfoId','adMaterialId','adStyleId','reportType','triggerTime','createTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): Ad_data_report_logCU {
        return new Ad_data_report_logCUImpl();
    }   

    static get ID(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('ID','id','id', new Ad_data_report_logCUImpl());
    }
    static get AD_DELIVERY_PLAN_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('AD_DELIVERY_PLAN_ID','adDeliveryPlanId','广告投放计划id', new Ad_data_report_logCUImpl());
    }
    static get REQUESTID(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('REQUESTID','requestid','请求id', new Ad_data_report_logCUImpl());
    }
    static get USER_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('USER_ID','userId','用户id', new Ad_data_report_logCUImpl());
    }
    static get USER_TYPE(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('USER_TYPE','userType','用户类型：0，速停车用户；1，非速停车用户', new Ad_data_report_logCUImpl());
    }
    static get AD_POSITION_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('AD_POSITION_ID','adPositionId','广告位id', new Ad_data_report_logCUImpl());
    }
    static get AD_INFO_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('AD_INFO_ID','adInfoId','广告信息id', new Ad_data_report_logCUImpl());
    }
    static get AD_MATERIAL_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('AD_MATERIAL_ID','adMaterialId','素材id', new Ad_data_report_logCUImpl());
    }
    static get AD_STYLE_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('AD_STYLE_ID','adStyleId','样式id', new Ad_data_report_logCUImpl());
    }
    static get REPORT_TYPE(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('REPORT_TYPE','reportType','上报类型：0，服务端上报；1，广告展示上报；2，广告点击上报；3，广告成交上报', new Ad_data_report_logCUImpl());
    }
    static get TRIGGER_TIME(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('TRIGGER_TIME','triggerTime','触发时间', new Ad_data_report_logCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<Ad_data_report_logCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','创建时间', new Ad_data_report_logCUImpl());
    }

    get ID(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.ID;
    }
    get AD_DELIVERY_PLAN_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.AD_DELIVERY_PLAN_ID;
    }
    get REQUESTID(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.REQUESTID;
    }
    get USER_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.USER_ID;
    }
    get USER_TYPE(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.USER_TYPE;
    }
    get AD_POSITION_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.AD_POSITION_ID;
    }
    get AD_INFO_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.AD_INFO_ID;
    }
    get AD_MATERIAL_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.AD_MATERIAL_ID;
    }
    get AD_STYLE_ID(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.AD_STYLE_ID;
    }
    get REPORT_TYPE(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.REPORT_TYPE;
    }
    get TRIGGER_TIME(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.TRIGGER_TIME;
    }
    get CREATE_TIME(): FieldUtil<Ad_data_report_logCU>{ 
        return Ad_data_report_logMU.CREATE_TIME;
    }
}
export {Ad_data_report_logMU, Ad_data_report_logCU}
