import { RelationshipType, ReferenceOption, CompleteRelationshipType } from "../../Common/Type"; import { IEntityMetaData } from "./IEntityMetaData"; import { IColumnMetaData } from "./IColumnMetaData"; import { IRelationDataMetaData } from "./IRelationDataMetaData"; import { Enumerable } from "../../Enumerable/Enumerable"; import { IBaseRelationMetaData } from "./IBaseRelationMetaData"; export interface IRelationMetaData extends IBaseRelationMetaData { name?: string; fullName: string; propertyName?: keyof TSource; relationType: RelationshipType; relationColumns: Array>; isMaster: boolean; source: IEntityMetaData; target: IEntityMetaData; reverseRelation?: IRelationMetaData; relationMaps?: Map, IColumnMetaData>; updateOption?: ReferenceOption; deleteOption?: ReferenceOption; nullable?: boolean; completeRelation?(reverseRelation: IRelationMetaData): void; relationData?: IRelationDataMetaData | IRelationDataMetaData; completeRelationType?: CompleteRelationshipType; /** * Column used in relation that has been mapped to an entity's property. */ mappedRelationColumns?: Enumerable>; }