import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { MaDrawPrizeConfig } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2021-05-24 13:44
 */
interface MaDrawPrizeConfigCU extends ConditionUtil<MaDrawPrizeConfigCU>{
    PRIZE_ID:FieldUtil<MaDrawPrizeConfigCU>;
    DRAW_CFG_ID:FieldUtil<MaDrawPrizeConfigCU>;
    PRIZE_NAME:FieldUtil<MaDrawPrizeConfigCU>;
    PRIZE_TYPE:FieldUtil<MaDrawPrizeConfigCU>;
    IMG_URL:FieldUtil<MaDrawPrizeConfigCU>;
    LEVEL:FieldUtil<MaDrawPrizeConfigCU>;
    PERCENTAGE:FieldUtil<MaDrawPrizeConfigCU>;
    SHOW_PERCENTAGE:FieldUtil<MaDrawPrizeConfigCU>;
    PERCENTAGE_TYPE:FieldUtil<MaDrawPrizeConfigCU>;
    GET_URL:FieldUtil<MaDrawPrizeConfigCU>;
    SINGLE_PRIZE_TOTAL:FieldUtil<MaDrawPrizeConfigCU>;
    PRIZE_TOTAL:FieldUtil<MaDrawPrizeConfigCU>;
    STATUS:FieldUtil<MaDrawPrizeConfigCU>;
    REMARK:FieldUtil<MaDrawPrizeConfigCU>;
    CREATE_TIME:FieldUtil<MaDrawPrizeConfigCU>;
    UPDATE_TIME:FieldUtil<MaDrawPrizeConfigCU>;
}

class MaDrawPrizeConfigCUImpl extends ConditionUtilImpl<MaDrawPrizeConfigCUImpl> implements MaDrawPrizeConfigCU{ 
    newInstance(): MaDrawPrizeConfigCUImpl {
        return new MaDrawPrizeConfigCUImpl();
    } 
    get PRIZE_ID(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('PRIZE_ID','prizeId','唯一标识', this);
    }
    get DRAW_CFG_ID(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('DRAW_CFG_ID','drawCfgId','抽奖活动Id', this);
    }
    get PRIZE_NAME(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('PRIZE_NAME','prizeName','奖品名称', this);
    }
    get PRIZE_TYPE(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('PRIZE_TYPE','prizeType','奖品类型01虚拟奖品02实体奖品', this);
    }
    get IMG_URL(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('IMG_URL','imgUrl','奖品图片', this);
    }
    get LEVEL(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('LEVEL','level','奖品等级', this);
    }
    get PERCENTAGE(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('PERCENTAGE','percentage','奖品概率，百分比', this);
    }
    get SHOW_PERCENTAGE(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('SHOW_PERCENTAGE','showPercentage','展示概率，百分比', this);
    }
    get PERCENTAGE_TYPE(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('PERCENTAGE_TYPE','percentageType','概率类型01总人概率02单次概率', this);
    }
    get GET_URL(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('GET_URL','getUrl','领奖地址', this);
    }
    get SINGLE_PRIZE_TOTAL(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('SINGLE_PRIZE_TOTAL','singlePrizeTotal','单人奖品总数', this);
    }
    get PRIZE_TOTAL(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('PRIZE_TOTAL','prizeTotal','奖品总数', this);
    }
    get STATUS(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('STATUS','status','状态： 00正常，01失效', this);
    }
    get REMARK(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('REMARK','remark','备注', this);
    }
    get CREATE_TIME(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('CREATE_TIME','createTime','创建时间', this);
    }
    get UPDATE_TIME(): FieldUtil<MaDrawPrizeConfigCU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', this);
    }
}

@Singleton 
class MaDrawPrizeConfigMU extends TableUtilImpl<MaDrawPrizeConfigCU,MaDrawPrizeConfig>{ 
    tableName  = 'ma_draw_prize_config';
    tableFields  = ['PRIZE_ID','DRAW_CFG_ID','PRIZE_NAME','PRIZE_TYPE','IMG_URL','LEVEL','PERCENTAGE','SHOW_PERCENTAGE','PERCENTAGE_TYPE','GET_URL','SINGLE_PRIZE_TOTAL','PRIZE_TOTAL','STATUS','REMARK','CREATE_TIME','UPDATE_TIME'];
    modelFields  = ['prizeId','drawCfgId','prizeName','prizeType','imgUrl','level','percentage','showPercentage','percentageType','getUrl','singlePrizeTotal','prizeTotal','status','remark','createTime','updateTime'];
    modelIdFields  = ['prizeId'];
    tableIdFields  = ['PRIZE_ID'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): MaDrawPrizeConfigCU {
        return new MaDrawPrizeConfigCUImpl();
    }   

    static get PRIZE_ID(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('PRIZE_ID','prizeId','唯一标识', new MaDrawPrizeConfigCUImpl());
    }
    static get DRAW_CFG_ID(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('DRAW_CFG_ID','drawCfgId','抽奖活动Id', new MaDrawPrizeConfigCUImpl());
    }
    static get PRIZE_NAME(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('PRIZE_NAME','prizeName','奖品名称', new MaDrawPrizeConfigCUImpl());
    }
    static get PRIZE_TYPE(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('PRIZE_TYPE','prizeType','奖品类型01虚拟奖品02实体奖品', new MaDrawPrizeConfigCUImpl());
    }
    static get IMG_URL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('IMG_URL','imgUrl','奖品图片', new MaDrawPrizeConfigCUImpl());
    }
    static get LEVEL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('LEVEL','level','奖品等级', new MaDrawPrizeConfigCUImpl());
    }
    static get PERCENTAGE(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('PERCENTAGE','percentage','奖品概率，百分比', new MaDrawPrizeConfigCUImpl());
    }
    static get SHOW_PERCENTAGE(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('SHOW_PERCENTAGE','showPercentage','展示概率，百分比', new MaDrawPrizeConfigCUImpl());
    }
    static get PERCENTAGE_TYPE(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('PERCENTAGE_TYPE','percentageType','概率类型01总人概率02单次概率', new MaDrawPrizeConfigCUImpl());
    }
    static get GET_URL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('GET_URL','getUrl','领奖地址', new MaDrawPrizeConfigCUImpl());
    }
    static get SINGLE_PRIZE_TOTAL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('SINGLE_PRIZE_TOTAL','singlePrizeTotal','单人奖品总数', new MaDrawPrizeConfigCUImpl());
    }
    static get PRIZE_TOTAL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('PRIZE_TOTAL','prizeTotal','奖品总数', new MaDrawPrizeConfigCUImpl());
    }
    static get STATUS(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('STATUS','status','状态： 00正常，01失效', new MaDrawPrizeConfigCUImpl());
    }
    static get REMARK(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('REMARK','remark','备注', new MaDrawPrizeConfigCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','创建时间', new MaDrawPrizeConfigCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', new MaDrawPrizeConfigCUImpl());
    }

    get PRIZE_ID(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.PRIZE_ID;
    }
    get DRAW_CFG_ID(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.DRAW_CFG_ID;
    }
    get PRIZE_NAME(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.PRIZE_NAME;
    }
    get PRIZE_TYPE(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.PRIZE_TYPE;
    }
    get IMG_URL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.IMG_URL;
    }
    get LEVEL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.LEVEL;
    }
    get PERCENTAGE(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.PERCENTAGE;
    }
    get SHOW_PERCENTAGE(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.SHOW_PERCENTAGE;
    }
    get PERCENTAGE_TYPE(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.PERCENTAGE_TYPE;
    }
    get GET_URL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.GET_URL;
    }
    get SINGLE_PRIZE_TOTAL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.SINGLE_PRIZE_TOTAL;
    }
    get PRIZE_TOTAL(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.PRIZE_TOTAL;
    }
    get STATUS(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.STATUS;
    }
    get REMARK(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.REMARK;
    }
    get CREATE_TIME(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<MaDrawPrizeConfigCU>{ 
        return MaDrawPrizeConfigMU.UPDATE_TIME;
    }
}
export {MaDrawPrizeConfigMU, MaDrawPrizeConfigCU}
