import { FieldInfo } from 'model-util-base'
import { ConditionUtil, ConditionUtilImpl, FieldUtil, TableUtilImpl, IdType, JoinTable, SubTable } from 'model-util'
import { Container, Singleton } from 'typescript-ioc' 
import { PresentationMenu } from '../models/index' 
/**
 * @author auto generate
 * @version 1.0
 * @date 2024-07-12 15:38
 */
interface PresentationMenuCU extends ConditionUtil<PresentationMenuCU>{
    ID:FieldUtil<PresentationMenuCU>;
    TEXT:FieldUtil<PresentationMenuCU>;
    LEVEL:FieldUtil<PresentationMenuCU>;
    PARENT_ID:FieldUtil<PresentationMenuCU>;
    SORT:FieldUtil<PresentationMenuCU>;
    TYPE:FieldUtil<PresentationMenuCU>;
    URL:FieldUtil<PresentationMenuCU>;
    PARAM:FieldUtil<PresentationMenuCU>;
    BUS_TYPE:FieldUtil<PresentationMenuCU>;
    POSTER:FieldUtil<PresentationMenuCU>;
    DOWNLOAD_URL:FieldUtil<PresentationMenuCU>;
    CREATE_TIME:FieldUtil<PresentationMenuCU>;
    UPDATE_TIME:FieldUtil<PresentationMenuCU>;
}

class PresentationMenuCUImpl extends ConditionUtilImpl<PresentationMenuCUImpl> implements PresentationMenuCU{ 
    newInstance(): PresentationMenuCUImpl {
        return new PresentationMenuCUImpl();
    } 
    get ID(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('id','id','主键', this);
    }
    get TEXT(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('text','text','', this);
    }
    get LEVEL(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('level','level','', this);
    }
    get PARENT_ID(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('parent_id','parentId','', this);
    }
    get SORT(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('sort','sort','', this);
    }
    get TYPE(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('type','type','展示类型（0-空节点; 1-PDF；2-VIDEO；）', this);
    }
    get URL(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('url','url','', this);
    }
    get PARAM(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('param','param','', this);
    }
    get BUS_TYPE(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('bus_type','busType','', this);
    }
    get POSTER(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('poster','poster','', this);
    }
    get DOWNLOAD_URL(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('download_url','downloadUrl','', this);
    }
    get CREATE_TIME(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('create_time','createTime','', this);
    }
    get UPDATE_TIME(): FieldUtil<PresentationMenuCU>{  
        return new FieldUtil('update_time','updateTime','', this);
    }
}

@Singleton 
class PresentationMenuMU extends TableUtilImpl<PresentationMenuCU,PresentationMenu>{ 
    tableName  = 'presentation_menu';
    tableFields  = ['id','text','level','parent_id','sort','type','url','param','bus_type','poster','download_url','create_time','update_time'];
    modelFields  = ['id','text','level','parentId','sort','type','url','param','busType','poster','downloadUrl','createTime','updateTime'];
    modelIdFields  = ['id'];
    tableIdFields  = ['id'];
    idType = IdType.CUSTOM;
    joinTables = [];
    subTables = [];

    createConditionUtil(): PresentationMenuCU {
        return new PresentationMenuCUImpl();
    }   

    static get ID(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('id','id','主键', new PresentationMenuCUImpl());
    }
    static get TEXT(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('text','text','', new PresentationMenuCUImpl());
    }
    static get LEVEL(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('level','level','', new PresentationMenuCUImpl());
    }
    static get PARENT_ID(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('parent_id','parentId','', new PresentationMenuCUImpl());
    }
    static get SORT(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('sort','sort','', new PresentationMenuCUImpl());
    }
    static get TYPE(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('type','type','展示类型（0-空节点; 1-PDF；2-VIDEO；）', new PresentationMenuCUImpl());
    }
    static get URL(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('url','url','', new PresentationMenuCUImpl());
    }
    static get PARAM(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('param','param','', new PresentationMenuCUImpl());
    }
    static get BUS_TYPE(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('bus_type','busType','', new PresentationMenuCUImpl());
    }
    static get POSTER(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('poster','poster','', new PresentationMenuCUImpl());
    }
    static get DOWNLOAD_URL(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('download_url','downloadUrl','', new PresentationMenuCUImpl());
    }
    static get CREATE_TIME(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('create_time','createTime','', new PresentationMenuCUImpl());
    }
    static get UPDATE_TIME(): FieldUtil<PresentationMenuCU>{ 
        return new FieldUtil('update_time','updateTime','', new PresentationMenuCUImpl());
    }

    get ID(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.ID;
    }
    get TEXT(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.TEXT;
    }
    get LEVEL(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.LEVEL;
    }
    get PARENT_ID(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.PARENT_ID;
    }
    get SORT(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.SORT;
    }
    get TYPE(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.TYPE;
    }
    get URL(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.URL;
    }
    get PARAM(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.PARAM;
    }
    get BUS_TYPE(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.BUS_TYPE;
    }
    get POSTER(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.POSTER;
    }
    get DOWNLOAD_URL(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.DOWNLOAD_URL;
    }
    get CREATE_TIME(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.CREATE_TIME;
    }
    get UPDATE_TIME(): FieldUtil<PresentationMenuCU>{ 
        return PresentationMenuMU.UPDATE_TIME;
    }
}
export {PresentationMenuMU, PresentationMenuCU}
