type RelationsListing = { oneToOne: string[]; oneToMany: string[]; manyToOne: string[]; manyToMany: string[]; }; type Tables = { role: T; permission: T; metadata: T; user: T; auditEvent: T; file: T; NOTIFICATION_TABLE_PLACEHOLDER FORM_OF_FORMS_TABLES_PLACEHOLDER SUPPORT_TABLES_PLACEHOLDER USER_MESSAGING_TABLES_PLACEHOLDER DB_LOGGER_TABLE_TYPE_PLACEHOLDER }; const RELATIONS: Tables = { role: { oneToOne: [], oneToMany: ["permissions"], manyToOne: [], manyToMany: [], }, permission: { oneToOne: [], oneToMany: [], manyToOne: ["role"], manyToMany: [], }, metadata: { oneToOne: [], oneToMany: [], manyToOne: [], manyToMany: [], }, auditEvent: { oneToOne: [], oneToMany: [], manyToOne: [], manyToMany: [], }, user: { oneToOne: [], oneToMany: [], manyToOne: [], manyToMany: [], }, file: { oneToOne: [], oneToMany: [], manyToOne: [], manyToMany: [], }, NOTIFICATION_TABLE_RELATIONS_PLACEHOLDER FORM_OF_FORMS_TABLE_RELATIONS_PLACEHOLDER SUPPORT_TABLE_RELATIONS_PLACEHOLDER USER_MESSAGING_TABLE_RELATIONS_PLACEHOLDER DB_LOGGER_TABLE_RELATIONS_PLACEHOLDER }; export const RELATIONS_OBJECT: Tables<{ ascendants: string[]; descendants: string[]; }> = { // --- app relations --- // --- default relations --- role: { descendants: [ ...RELATIONS.role.oneToMany, ...RELATIONS.role.manyToMany, ], ascendants: [...RELATIONS.role.manyToOne, ...RELATIONS.role.oneToOne,...RELATIONS.role.manyToMany], }, permission: { descendants: [ ...RELATIONS.permission.oneToMany, ...RELATIONS.permission.manyToMany, ], ascendants: [ ...RELATIONS.permission.manyToOne, ...RELATIONS.permission.oneToOne, ...RELATIONS.permission.manyToMany, ], }, metadata: { descendants: [ ...RELATIONS.metadata.oneToMany, ...RELATIONS.metadata.manyToMany, ], ascendants: [ ...RELATIONS.metadata.manyToOne, ...RELATIONS.metadata.oneToOne, ...RELATIONS.metadata.manyToMany, ], }, auditEvent: { descendants: [ ...RELATIONS.auditEvent.oneToMany, ...RELATIONS.auditEvent.manyToMany, ], ascendants: [ ...RELATIONS.auditEvent.manyToOne, ...RELATIONS.auditEvent.oneToOne, ...RELATIONS.auditEvent.manyToMany, ], }, file: { descendants: [ ...RELATIONS.file.oneToMany, ...RELATIONS.file.manyToMany, ], ascendants: [ ...RELATIONS.file.manyToOne, ...RELATIONS.file.oneToOne, ...RELATIONS.file.manyToMany, ], }, user: { descendants: [ ...RELATIONS.user.oneToMany, ...RELATIONS.user.manyToMany, ], ascendants: [...RELATIONS.user.manyToOne, ...RELATIONS.user.oneToOne,...RELATIONS.user.manyToMany], }, NOTIFICATION_TABLE_RELATIONS_OBJECT_PLACEHOLDER FORM_OF_FORMS_TABLES_RELATION_OBJECT_PLACEHOLDER SUPPORT_TABLES_RELATION_OBJECT_PLACEHOLDER USER_MESSAGING_TABLES_RELATION_OBJECT_PLACEHOLDER DB_LOGGER_TABLE_RELATIONS_OBJECT_PLACEHOLDER };