import ItemLink from './ItemLink'; import TemplateInfo from './TemplateInfo'; export default interface Item { /** Item type * * @todo Type values are subject to change. Please always use ItemType enumeration. */ type: string; /** Technical name * * Technical, not translated, name for the entity to be displayed as the "name of the entity" in the UIs. * No need to concatenate it with other names to make it unique. */ name: string; /** Reference within the project * * It needs to be unique with its module. * It needs to be combined with type to identify the entity within the project. */ ref: string; /** Path of entity within the project * * Project-relative path to the entity. * It should be the file that should be opened to edit the entity in an editor. */ path: string; /** * Links */ links?: ItemLink[]; /** Tags related to the item * * Tags can be used for filtering. * It would be beneficial to use this information to avoid to read entities, that do not match these tags. */ tags: string[]; /** * namespace related to the item * This helps in grouping the related DB entities with same namespace and then accordingly map the services. */ namespace?: string; /** * Template information related to the UI modules * It provides information which indicates from which template UI modules were created. */ sourceTemplate?: TemplateInfo | string; /** * Provides additional information for the item * */ info?: any; /** * Boolean to indicate if a service is defined within the project or in an external project. * true indicates service is defined in an external project, false is for within the project. */ external?: boolean; /** * Boolean to indicate if the item is a root entity of a project. */ root?: boolean; /** * Boolean to indicate if the item is a composite entity or standalone */ composite?: boolean; }