import { IObjectType, ConcurrencyModel } from "../../Common/Type"; import { InheritanceMetaData } from "../Relation/InheritanceMetaData"; import { IDBEventListener } from "../../Data/Event/IDBEventListener"; import { IColumnMetaData } from "./IColumnMetaData"; import { IConstraintMetaData } from "./IConstraintMetaData"; import { IRelationMetaData } from "./IRelationMetaData"; import { IIndexMetaData } from "./IIndexMetaData"; import { RowVersionColumnMetaData } from "../RowVersionColumnMetaData"; import { DateTimeColumnMetaData } from "../DateTimeColumnMetaData"; import { BooleanColumnMetaData } from "../BooleanColumnMetaData"; import { IOrderQueryDefinition } from "../../Queryable/Interface/IOrderQueryDefinition"; import { EmbeddedRelationMetaData } from "../EmbeddedColumnMetaData"; export interface IEntityMetaData extends IDBEventListener { name: string; schema?: string; defaultOrders?: IOrderQueryDefinition[]; primaryKeys: Array>; versionColumn?: RowVersionColumnMetaData; deletedColumn?: BooleanColumnMetaData; createDateColumn?: DateTimeColumnMetaData; modifiedDateColumn?: DateTimeColumnMetaData; columns: IColumnMetaData[]; indices?: IIndexMetaData[]; constraints?: IConstraintMetaData[]; type: IObjectType; descriminatorMember?: string; allowInheritance?: boolean; inheritance: InheritanceMetaData; relations?: IRelationMetaData[]; embeds?: EmbeddedRelationMetaData[]; priority?: number; hasIncrementPrimary?: boolean; isReadOnly?: boolean; concurrencyMode?: ConcurrencyModel; insertGeneratedColumns?: IColumnMetaData[]; updateGeneratedColumns?: IColumnMetaData[]; }