import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { AutoRecharge } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2020-12-10 14:46
 */
interface AutoRechargeCU extends ConditionUtil<AutoRechargeCU>{
    AUTO_ID:FieldUtil<AutoRechargeCU>;
    AUTO_NAME:FieldUtil<AutoRechargeCU>;
    MER_ID:FieldUtil<AutoRechargeCU>;
    LOT_ID:FieldUtil<AutoRechargeCU>;
    COUPON_TYPE:FieldUtil<AutoRechargeCU>;
    COUPON_ID:FieldUtil<AutoRechargeCU>;
    TOTAL_NUM:FieldUtil<AutoRechargeCU>;
    DELETE_FLAG:FieldUtil<AutoRechargeCU>;
    DELETE_DATE:FieldUtil<AutoRechargeCU>;
    UPDATE_DATE:FieldUtil<AutoRechargeCU>;
    ENABLE:FieldUtil<AutoRechargeCU>;
    RULE_ID:FieldUtil<AutoRechargeCU>;
    AUTO_TYPE:FieldUtil<AutoRechargeCU>;
    AUTO_DELETE:FieldUtil<AutoRechargeCU>;
    CREATE_DATE:FieldUtil<AutoRechargeCU>;
    CREATE_USER:FieldUtil<AutoRechargeCU>;
}

class AutoRechargeCUImpl extends ConditionUtilImpl<AutoRechargeCUImpl> implements AutoRechargeCU{ 
    newInstance(): AutoRechargeCUImpl {
        return new AutoRechargeCUImpl();
    } 
    get AUTO_ID(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('AUTO_ID','autoId','', this);
    }
    get AUTO_NAME(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('AUTO_NAME','autoName','规则名称', this);
    }
    get MER_ID(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('MER_ID','merId','', this);
    }
    get LOT_ID(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('LOT_ID','lotId','', this);
    }
    get COUPON_TYPE(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('COUPON_TYPE','couponType','', this);
    }
    get COUPON_ID(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('COUPON_ID','couponId','', this);
    }
    get TOTAL_NUM(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('TOTAL_NUM','totalNum','发放张数', this);
    }
    get DELETE_FLAG(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('DELETE_FLAG','deleteFlag','0 未删除，1 已删除', this);
    }
    get DELETE_DATE(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('DELETE_DATE','deleteDate','', this);
    }
    get UPDATE_DATE(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('UPDATE_DATE','updateDate','', this);
    }
    get ENABLE(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('ENABLE','enable','0 不可用，1可用', this);
    }
    get RULE_ID(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('RULE_ID','ruleId','', this);
    }
    get AUTO_TYPE(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('AUTO_TYPE','autoType','1 每天，2 每周 ，3 每月', this);
    }
    get AUTO_DELETE(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('AUTO_DELETE','autoDelete','0 清除，1 清除', this);
    }
    get CREATE_DATE(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('CREATE_DATE','createDate','', this);
    }
    get CREATE_USER(): FieldUtil<AutoRechargeCU>{  
        return new FieldUtil('CREATE_USER','createUser','', this);
    }
}

@Singleton 
class AutoRechargeMU extends TableUtilImpl<AutoRechargeCU,AutoRecharge>{ 
    tableName  = 'co_auto_recharge';
    tableFields  = ['AUTO_ID','AUTO_NAME','MER_ID','LOT_ID','COUPON_TYPE','COUPON_ID','TOTAL_NUM','DELETE_FLAG','DELETE_DATE','UPDATE_DATE','ENABLE','RULE_ID','AUTO_TYPE','AUTO_DELETE','CREATE_DATE','CREATE_USER'];
    modelFields  = ['autoId','autoName','merId','lotId','couponType','couponId','totalNum','deleteFlag','deleteDate','updateDate','enable','ruleId','autoType','autoDelete','createDate','createUser'];
    modelIdFields  = ['autoId'];
    tableIdFields  = ['AUTO_ID'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): AutoRechargeCU {
        return new AutoRechargeCUImpl();
    }   

    static get AUTO_ID(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('AUTO_ID','autoId','', new AutoRechargeCUImpl());
    }
    static get AUTO_NAME(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('AUTO_NAME','autoName','规则名称', new AutoRechargeCUImpl());
    }
    static get MER_ID(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('MER_ID','merId','', new AutoRechargeCUImpl());
    }
    static get LOT_ID(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('LOT_ID','lotId','', new AutoRechargeCUImpl());
    }
    static get COUPON_TYPE(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('COUPON_TYPE','couponType','', new AutoRechargeCUImpl());
    }
    static get COUPON_ID(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('COUPON_ID','couponId','', new AutoRechargeCUImpl());
    }
    static get TOTAL_NUM(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('TOTAL_NUM','totalNum','发放张数', new AutoRechargeCUImpl());
    }
    static get DELETE_FLAG(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('DELETE_FLAG','deleteFlag','0 未删除，1 已删除', new AutoRechargeCUImpl());
    }
    static get DELETE_DATE(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('DELETE_DATE','deleteDate','', new AutoRechargeCUImpl());
    }
    static get UPDATE_DATE(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('UPDATE_DATE','updateDate','', new AutoRechargeCUImpl());
    }
    static get ENABLE(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('ENABLE','enable','0 不可用，1可用', new AutoRechargeCUImpl());
    }
    static get RULE_ID(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('RULE_ID','ruleId','', new AutoRechargeCUImpl());
    }
    static get AUTO_TYPE(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('AUTO_TYPE','autoType','1 每天，2 每周 ，3 每月', new AutoRechargeCUImpl());
    }
    static get AUTO_DELETE(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('AUTO_DELETE','autoDelete','0 清除，1 清除', new AutoRechargeCUImpl());
    }
    static get CREATE_DATE(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('CREATE_DATE','createDate','', new AutoRechargeCUImpl());
    }
    static get CREATE_USER(): FieldUtil<AutoRechargeCU>{ 
        return new FieldUtil('CREATE_USER','createUser','', new AutoRechargeCUImpl());
    }

    get AUTO_ID(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.AUTO_ID;
    }
    get AUTO_NAME(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.AUTO_NAME;
    }
    get MER_ID(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.MER_ID;
    }
    get LOT_ID(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.LOT_ID;
    }
    get COUPON_TYPE(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.COUPON_TYPE;
    }
    get COUPON_ID(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.COUPON_ID;
    }
    get TOTAL_NUM(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.TOTAL_NUM;
    }
    get DELETE_FLAG(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.DELETE_FLAG;
    }
    get DELETE_DATE(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.DELETE_DATE;
    }
    get UPDATE_DATE(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.UPDATE_DATE;
    }
    get ENABLE(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.ENABLE;
    }
    get RULE_ID(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.RULE_ID;
    }
    get AUTO_TYPE(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.AUTO_TYPE;
    }
    get AUTO_DELETE(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.AUTO_DELETE;
    }
    get CREATE_DATE(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.CREATE_DATE;
    }
    get CREATE_USER(): FieldUtil<AutoRechargeCU>{ 
        return AutoRechargeMU.CREATE_USER;
    }
}
export {AutoRechargeMU, AutoRechargeCU}
