From dc00fdc554f03253303a1ed1e2221dafc12eaced Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Tue, 10 Dec 2024 17:33:50 +0400 Subject: [PATCH] added project space model relation --- .../modules/project/entities/project.entity.ts | 6 +++++- .../space-model/entities/space-model.entity.ts | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/libs/common/src/modules/project/entities/project.entity.ts b/libs/common/src/modules/project/entities/project.entity.ts index 04e3f11..f7213a2 100644 --- a/libs/common/src/modules/project/entities/project.entity.ts +++ b/libs/common/src/modules/project/entities/project.entity.ts @@ -2,6 +2,7 @@ import { Entity, Column, Unique, OneToMany } from 'typeorm'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { ProjectDto } from '../dtos'; import { CommunityEntity } from '../../community/entities'; +import { SpaceModelEntity } from '../../space-model'; @Entity({ name: 'project' }) @Unique(['name']) @@ -20,7 +21,10 @@ export class ProjectEntity extends AbstractEntity { @Column({ length: 255, nullable: true }) description: string; - + + @OneToMany(() => SpaceModelEntity, (spaceModel) => spaceModel.project) + public spaceModels: SpaceModelEntity[]; + @OneToMany(() => CommunityEntity, (community) => community.project) communities: CommunityEntity[]; diff --git a/libs/common/src/modules/space-model/entities/space-model.entity.ts b/libs/common/src/modules/space-model/entities/space-model.entity.ts index 517f273..9937a01 100644 --- a/libs/common/src/modules/space-model/entities/space-model.entity.ts +++ b/libs/common/src/modules/space-model/entities/space-model.entity.ts @@ -1,10 +1,19 @@ -import { Entity, Column, OneToMany } from 'typeorm'; +import { + Entity, + Column, + OneToMany, + ManyToOne, + JoinColumn, + Unique, +} from 'typeorm'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { SpaceModelDto } from '../dtos'; import { SubspaceModelEntity } from './subspace-model.entity'; import { SpaceProductModelEntity } from './space-product-model.entity'; +import { ProjectEntity } from '../../project/entities'; @Entity({ name: 'space-model' }) +@Unique(['modelName', 'project']) export class SpaceModelEntity extends AbstractEntity { @Column({ type: 'uuid', @@ -18,6 +27,13 @@ export class SpaceModelEntity extends AbstractEntity { }) public modelName: string; + @ManyToOne(() => ProjectEntity, (project) => project.spaceModels, { + nullable: false, + onDelete: 'CASCADE', + }) + @JoinColumn({ name: 'project_uuid' }) + public project: ProjectEntity; + @OneToMany( () => SubspaceModelEntity, (subspaceModel) => subspaceModel.spaceModel,