import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { CrSendWxMsgRecord } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-05-17 17:40
 */
interface CrSendWxMsgRecordCU extends ConditionUtil<CrSendWxMsgRecordCU>{
    UUID:FieldUtil<CrSendWxMsgRecordCU>;
    USER_ID:FieldUtil<CrSendWxMsgRecordCU>;
    CCC_ID:FieldUtil<CrSendWxMsgRecordCU>;
    COUPON_INFO:FieldUtil<CrSendWxMsgRecordCU>;
    SEND_TIME:FieldUtil<CrSendWxMsgRecordCU>;
    SEND_STATUS:FieldUtil<CrSendWxMsgRecordCU>;
    RETRY_TIMES:FieldUtil<CrSendWxMsgRecordCU>;
    DEL_FLAG:FieldUtil<CrSendWxMsgRecordCU>;
    CREATE_TIME:FieldUtil<CrSendWxMsgRecordCU>;
    UPDATE_TIME:FieldUtil<CrSendWxMsgRecordCU>;
    AD_INFO_ID:FieldUtil<CrSendWxMsgRecordCU>;
    ACTION_TYPE:FieldUtil<CrSendWxMsgRecordCU>;
    AD_NAME:FieldUtil<CrSendWxMsgRecordCU>;
}

class CrSendWxMsgRecordCUImpl extends ConditionUtilImpl<CrSendWxMsgRecordCUImpl> implements CrSendWxMsgRecordCU{ 
    newInstance(): CrSendWxMsgRecordCUImpl {
        return new CrSendWxMsgRecordCUImpl();
    } 
    get UUID(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('uuid','uuid','', this);
    }
    get USER_ID(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('user_id','userId','', this);
    }
    get CCC_ID(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('ccc_id','cccId','', this);
    }
    get COUPON_INFO(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('coupon_info','couponInfo','', this);
    }
    get SEND_TIME(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('send_time','sendTime','', this);
    }
    get SEND_STATUS(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('send_status','sendStatus','', this);
    }
    get RETRY_TIMES(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('retry_times','retryTimes','', this);
    }
    get DEL_FLAG(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('del_flag','delFlag','', this);
    }
    get CREATE_TIME(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('create_time','createTime','', this);
    }
    get UPDATE_TIME(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('update_time','updateTime','', this);
    }
    get AD_INFO_ID(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('ad_info_id','adInfoId','', this);
    }
    get ACTION_TYPE(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('action_type','actionType','', this);
    }
    get AD_NAME(): FieldUtil<CrSendWxMsgRecordCU>{  
        return new FieldUtil('ad_name','adName','广告名称', this);
    }
}

@Singleton 
class CrSendWxMsgRecordMU extends TableUtilImpl<CrSendWxMsgRecordCU,CrSendWxMsgRecord>{ 
    tableName  = 'cr_send_wx_msg_record';
    tableFields  = ['uuid','user_id','ccc_id','coupon_info','send_time','send_status','retry_times','del_flag','create_time','update_time','ad_info_id','action_type','ad_name'];
    modelFields  = ['uuid','userId','cccId','couponInfo','sendTime','sendStatus','retryTimes','delFlag','createTime','updateTime','adInfoId','actionType','adName'];
    modelIdFields  = ['uuid'];
    tableIdFields  = ['uuid'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): CrSendWxMsgRecordCU {
        return new CrSendWxMsgRecordCUImpl();
    }   

    static get UUID(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('uuid','uuid','', new CrSendWxMsgRecordCUImpl());
    }
    static get USER_ID(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('user_id','userId','', new CrSendWxMsgRecordCUImpl());
    }
    static get CCC_ID(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('ccc_id','cccId','', new CrSendWxMsgRecordCUImpl());
    }
    static get COUPON_INFO(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('coupon_info','couponInfo','', new CrSendWxMsgRecordCUImpl());
    }
    static get SEND_TIME(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('send_time','sendTime','', new CrSendWxMsgRecordCUImpl());
    }
    static get SEND_STATUS(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('send_status','sendStatus','', new CrSendWxMsgRecordCUImpl());
    }
    static get RETRY_TIMES(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('retry_times','retryTimes','', new CrSendWxMsgRecordCUImpl());
    }
    static get DEL_FLAG(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('del_flag','delFlag','', new CrSendWxMsgRecordCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('create_time','createTime','', new CrSendWxMsgRecordCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('update_time','updateTime','', new CrSendWxMsgRecordCUImpl());
    }
    static get AD_INFO_ID(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('ad_info_id','adInfoId','', new CrSendWxMsgRecordCUImpl());
    }
    static get ACTION_TYPE(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('action_type','actionType','', new CrSendWxMsgRecordCUImpl());
    }
    static get AD_NAME(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return new FieldUtil('ad_name','adName','广告名称', new CrSendWxMsgRecordCUImpl());
    }

    get UUID(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.UUID;
    }
    get USER_ID(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.USER_ID;
    }
    get CCC_ID(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.CCC_ID;
    }
    get COUPON_INFO(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.COUPON_INFO;
    }
    get SEND_TIME(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.SEND_TIME;
    }
    get SEND_STATUS(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.SEND_STATUS;
    }
    get RETRY_TIMES(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.RETRY_TIMES;
    }
    get DEL_FLAG(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.DEL_FLAG;
    }
    get CREATE_TIME(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.UPDATE_TIME;
    }
    get AD_INFO_ID(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.AD_INFO_ID;
    }
    get ACTION_TYPE(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.ACTION_TYPE;
    }
    get AD_NAME(): FieldUtil<CrSendWxMsgRecordCU>{ 
        return CrSendWxMsgRecordMU.AD_NAME;
    }
}
export {CrSendWxMsgRecordMU, CrSendWxMsgRecordCU}
