export type RelationshipType = "OneToMany" | "ManyToOne" | "ManyToMany" | "OneToOne"; export interface ApsorcRelationship { from: string; to: string; type: RelationshipType; to_name?: string; nullable?: boolean; bi_directional?: boolean; cascadeDelete?: boolean; index?: boolean; joinTableName?: string; joinColumnName?: string; inverseJoinColumnName?: string; } export interface Relationship { name: string; type: RelationshipType; referenceName?: string | null; nullable?: boolean; join?: boolean; biDirectional?: boolean; cascadeDelete?: boolean; index?: boolean; joinTableName?: string; joinColumnName?: string; inverseJoinColumnName?: string; inverseReferenceName?: string; } export interface RelationshipForTemplate extends Relationship { relationshipName: string; pluralizedRelationshipName: string; pluralizedName: string; camelCasedName: string; camelCasedId: string; entityName: string; joinTable: boolean; biDirectional: boolean; inversePropertyName?: string; referencedEntityPrimaryKeyType?: "serial" | "uuid"; } export type RelationshipMap = { [key: string]: Relationship[]; }; export interface Association { name: string; type: RelationshipType; join_table?: boolean; reference_name?: string; nested?: boolean; nullable?: boolean; index?: boolean; }