import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { MainPageIconMenu } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2020-10-16 11:27
 */
interface MainPageIconMenuCU extends ConditionUtil<MainPageIconMenuCU>{
    ID:FieldUtil<MainPageIconMenuCU>;
    TITLE:FieldUtil<MainPageIconMenuCU>;
    IMAGE_URL:FieldUtil<MainPageIconMenuCU>;
    MENU_URL:FieldUtil<MainPageIconMenuCU>;
    SORT_INDEX:FieldUtil<MainPageIconMenuCU>;
    CREATE_TIME:FieldUtil<MainPageIconMenuCU>;
    UPDATE_TIME:FieldUtil<MainPageIconMenuCU>;
    STATE:FieldUtil<MainPageIconMenuCU>;
    REMARK:FieldUtil<MainPageIconMenuCU>;
}

class MainPageIconMenuCUImpl extends ConditionUtilImpl<MainPageIconMenuCUImpl> implements MainPageIconMenuCU{ 
    newInstance(): MainPageIconMenuCUImpl {
        return new MainPageIconMenuCUImpl();
    } 
    get ID(): FieldUtil<MainPageIconMenuCU>{  
        return new FieldUtil('ID','id','主键', this);
    }
    get TITLE(): FieldUtil<MainPageIconMenuCU>{  
        return new FieldUtil('TITLE','title','菜单标题', this);
    }
    get IMAGE_URL(): FieldUtil<MainPageIconMenuCU>{  
        return new FieldUtil('IMAGE_URL','imageUrl','图标url', this);
    }
    get MENU_URL(): FieldUtil<MainPageIconMenuCU>{  
        return new FieldUtil('MENU_URL','menuUrl','菜单url', this);
    }
    get SORT_INDEX(): FieldUtil<MainPageIconMenuCU>{  
        return new FieldUtil('SORT_INDEX','sortIndex','顺序号', this);
    }
    get CREATE_TIME(): FieldUtil<MainPageIconMenuCU>{  
        return new FieldUtil('CREATE_TIME','createTime','创建时间', this);
    }
    get UPDATE_TIME(): FieldUtil<MainPageIconMenuCU>{  
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', this);
    }
    get STATE(): FieldUtil<MainPageIconMenuCU>{  
        return new FieldUtil('STATE','state','状态：0-正常，1-删除', this);
    }
    get REMARK(): FieldUtil<MainPageIconMenuCU>{  
        return new FieldUtil('REMARK','remark','备注', this);
    }
}

@Singleton 
class MainPageIconMenuMU extends TableUtilImpl<MainPageIconMenuCU,MainPageIconMenu>{ 
    tableName  = 'main_page_icon_menu';
    tableFields  = ['id','title','image_url','menu_url','sort_index','create_time','update_time','state','remark'];
    modelFields  = ['id','title','imageUrl','menuUrl','sortIndex','createTime','updateTime','state','remark'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): MainPageIconMenuCU {
        return new MainPageIconMenuCUImpl();
    }   

    static get ID(): FieldUtil<MainPageIconMenuCU>{ 
        return new FieldUtil('ID','id','主键', new MainPageIconMenuCUImpl());
    }
    static get TITLE(): FieldUtil<MainPageIconMenuCU>{ 
        return new FieldUtil('TITLE','title','菜单标题', new MainPageIconMenuCUImpl());
    }
    static get IMAGE_URL(): FieldUtil<MainPageIconMenuCU>{ 
        return new FieldUtil('IMAGE_URL','imageUrl','图标url', new MainPageIconMenuCUImpl());
    }
    static get MENU_URL(): FieldUtil<MainPageIconMenuCU>{ 
        return new FieldUtil('MENU_URL','menuUrl','菜单url', new MainPageIconMenuCUImpl());
    }
    static get SORT_INDEX(): FieldUtil<MainPageIconMenuCU>{ 
        return new FieldUtil('SORT_INDEX','sortIndex','顺序号', new MainPageIconMenuCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<MainPageIconMenuCU>{ 
        return new FieldUtil('CREATE_TIME','createTime','创建时间', new MainPageIconMenuCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<MainPageIconMenuCU>{ 
        return new FieldUtil('UPDATE_TIME','updateTime','更新时间', new MainPageIconMenuCUImpl());
    }
    static get STATE(): FieldUtil<MainPageIconMenuCU>{ 
        return new FieldUtil('STATE','state','状态：0-正常，1-删除', new MainPageIconMenuCUImpl());
    }
    static get REMARK(): FieldUtil<MainPageIconMenuCU>{ 
        return new FieldUtil('REMARK','remark','备注', new MainPageIconMenuCUImpl());
    }

    get ID(): FieldUtil<MainPageIconMenuCU>{ 
        return MainPageIconMenuMU.ID;
    }
    get TITLE(): FieldUtil<MainPageIconMenuCU>{ 
        return MainPageIconMenuMU.TITLE;
    }
    get IMAGE_URL(): FieldUtil<MainPageIconMenuCU>{ 
        return MainPageIconMenuMU.IMAGE_URL;
    }
    get MENU_URL(): FieldUtil<MainPageIconMenuCU>{ 
        return MainPageIconMenuMU.MENU_URL;
    }
    get SORT_INDEX(): FieldUtil<MainPageIconMenuCU>{ 
        return MainPageIconMenuMU.SORT_INDEX;
    }
    get CREATE_TIME(): FieldUtil<MainPageIconMenuCU>{ 
        return MainPageIconMenuMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<MainPageIconMenuCU>{ 
        return MainPageIconMenuMU.UPDATE_TIME;
    }
    get STATE(): FieldUtil<MainPageIconMenuCU>{ 
        return MainPageIconMenuMU.STATE;
    }
    get REMARK(): FieldUtil<MainPageIconMenuCU>{ 
        return MainPageIconMenuMU.REMARK;
    }
}
export {MainPageIconMenuMU, MainPageIconMenuCU}
