From 8d4e10ff1cd362e12bc59727803ea1a71a7a1c64 Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Mon, 10 Feb 2025 12:58:13 +0400 Subject: [PATCH] updated tag with relation --- libs/common/src/modules/tag/dtos/index.ts | 1 + libs/common/src/modules/tag/entities/index.ts | 2 +- .../src/modules/tag/entities/tag.entity.ts | 16 +++++++++++++++- libs/common/src/modules/tag/index.ts | 1 + .../common/src/modules/tag/repositories/index.ts | 0 .../modules/tag/repositories/tag-repository.ts | 10 ++++++++++ .../src/modules/tag/tag.repository.module.ts | 11 +++++++++++ 7 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 libs/common/src/modules/tag/dtos/index.ts create mode 100644 libs/common/src/modules/tag/index.ts create mode 100644 libs/common/src/modules/tag/repositories/index.ts create mode 100644 libs/common/src/modules/tag/repositories/tag-repository.ts create mode 100644 libs/common/src/modules/tag/tag.repository.module.ts diff --git a/libs/common/src/modules/tag/dtos/index.ts b/libs/common/src/modules/tag/dtos/index.ts new file mode 100644 index 0000000..04fcfb9 --- /dev/null +++ b/libs/common/src/modules/tag/dtos/index.ts @@ -0,0 +1 @@ +export * from './tag.dto'; diff --git a/libs/common/src/modules/tag/entities/index.ts b/libs/common/src/modules/tag/entities/index.ts index 9023bab..782b7e2 100644 --- a/libs/common/src/modules/tag/entities/index.ts +++ b/libs/common/src/modules/tag/entities/index.ts @@ -1 +1 @@ -export * from './tag.entity'; \ No newline at end of file +export * from './tag.entity'; diff --git a/libs/common/src/modules/tag/entities/tag.entity.ts b/libs/common/src/modules/tag/entities/tag.entity.ts index e1dd0fd..7d9826e 100644 --- a/libs/common/src/modules/tag/entities/tag.entity.ts +++ b/libs/common/src/modules/tag/entities/tag.entity.ts @@ -1,8 +1,10 @@ -import { Entity, Column, ManyToOne, Unique } from 'typeorm'; +import { Entity, Column, ManyToOne, Unique, OneToMany } from 'typeorm'; import { ProductEntity } from '../../product/entities'; import { ProjectEntity } from '../../project/entities'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { NewTagDto } from '../dtos/tag.dto'; +import { SpaceModelProductAllocationEntity } from '../../space-model/entities/space-model-product-allocation.entity'; +import { SubspaceProductAllocation } from '../../space'; @Entity({ name: 'tag' }) @Unique(['name', 'project']) @@ -29,6 +31,18 @@ export class NewTagEntity extends AbstractEntity { }) public project: ProjectEntity; + @OneToMany( + () => SpaceModelProductAllocationEntity, + (allocation) => allocation.allowedTags, + ) + public spaceModelAllocations: SpaceModelProductAllocationEntity[]; + + @OneToMany( + () => SubspaceProductAllocation, + (allocation) => allocation.allowedTags, + ) + public subspaceAllocations: SubspaceProductAllocation[]; + constructor(partial: Partial) { super(); Object.assign(this, partial); diff --git a/libs/common/src/modules/tag/index.ts b/libs/common/src/modules/tag/index.ts new file mode 100644 index 0000000..697510e --- /dev/null +++ b/libs/common/src/modules/tag/index.ts @@ -0,0 +1 @@ +export * from './entities'; diff --git a/libs/common/src/modules/tag/repositories/index.ts b/libs/common/src/modules/tag/repositories/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/libs/common/src/modules/tag/repositories/tag-repository.ts b/libs/common/src/modules/tag/repositories/tag-repository.ts new file mode 100644 index 0000000..d82b0fb --- /dev/null +++ b/libs/common/src/modules/tag/repositories/tag-repository.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@nestjs/common'; +import { NewTagEntity } from '../entities'; +import { DataSource, Repository } from 'typeorm'; + +@Injectable() +export class NewTagRepository extends Repository { + constructor(private dataSource: DataSource) { + super(NewTagEntity, dataSource.createEntityManager()); + } +} diff --git a/libs/common/src/modules/tag/tag.repository.module.ts b/libs/common/src/modules/tag/tag.repository.module.ts new file mode 100644 index 0000000..817e5e0 --- /dev/null +++ b/libs/common/src/modules/tag/tag.repository.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { NewTagEntity } from './entities'; + +@Module({ + providers: [], + exports: [], + controllers: [], + imports: [TypeOrmModule.forFeature([NewTagEntity])], +}) +export class NewTagRepositoryModule {}