From df80928b68ec128450698ce8c4927cefb064995f Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Mon, 9 Dec 2024 10:51:58 +0400 Subject: [PATCH] created project entity --- libs/common/src/database/database.module.ts | 3 ++- libs/common/src/modules/project/dtos/index.ts | 1 + .../src/modules/project/dtos/project.dto.ts | 15 ++++++++++++ .../src/modules/project/entities/index.ts | 1 + .../project/entities/project.entity.ts | 23 +++++++++++++++++++ libs/common/src/modules/project/index.ts | 1 + .../project/project.repository.module.ts | 11 +++++++++ .../modules/project/repositiories/index.ts | 1 + .../repositiories/project.repository.ts | 10 ++++++++ 9 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 libs/common/src/modules/project/dtos/index.ts create mode 100644 libs/common/src/modules/project/dtos/project.dto.ts create mode 100644 libs/common/src/modules/project/entities/index.ts create mode 100644 libs/common/src/modules/project/entities/project.entity.ts create mode 100644 libs/common/src/modules/project/index.ts create mode 100644 libs/common/src/modules/project/project.repository.module.ts create mode 100644 libs/common/src/modules/project/repositiories/index.ts create mode 100644 libs/common/src/modules/project/repositiories/project.repository.ts diff --git a/libs/common/src/database/database.module.ts b/libs/common/src/database/database.module.ts index 8b4acf4..34e4bb6 100644 --- a/libs/common/src/database/database.module.ts +++ b/libs/common/src/database/database.module.ts @@ -27,7 +27,7 @@ import { DeviceStatusLogEntity } from '../modules/device-status-log/entities'; import { SceneEntity, SceneIconEntity } from '../modules/scene/entities'; import { SceneDeviceEntity } from '../modules/scene-device/entities'; import { SpaceProductEntity } from '../modules/space/entities/space-product.entity'; - +import { ProjectEntity } from '../modules/project/entities'; @Module({ imports: [ TypeOrmModule.forRootAsync({ @@ -42,6 +42,7 @@ import { SpaceProductEntity } from '../modules/space/entities/space-product.enti password: configService.get('DB_PASSWORD'), database: configService.get('DB_NAME'), entities: [ + ProjectEntity, UserEntity, UserSessionEntity, UserOtpEntity, diff --git a/libs/common/src/modules/project/dtos/index.ts b/libs/common/src/modules/project/dtos/index.ts new file mode 100644 index 0000000..9d264cb --- /dev/null +++ b/libs/common/src/modules/project/dtos/index.ts @@ -0,0 +1 @@ +export * from './project.dto'; diff --git a/libs/common/src/modules/project/dtos/project.dto.ts b/libs/common/src/modules/project/dtos/project.dto.ts new file mode 100644 index 0000000..a5931af --- /dev/null +++ b/libs/common/src/modules/project/dtos/project.dto.ts @@ -0,0 +1,15 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class ProjectDto { + @ApiProperty({ + example: 'd7a44e8a-32d5-4f39-ae2e-013f1245aead', + description: 'UUID of the project', + }) + uuid: string; + + @ApiProperty({ + example: 'Project 1', + description: 'Name of the project', + }) + name: string; +} diff --git a/libs/common/src/modules/project/entities/index.ts b/libs/common/src/modules/project/entities/index.ts new file mode 100644 index 0000000..bd8d161 --- /dev/null +++ b/libs/common/src/modules/project/entities/index.ts @@ -0,0 +1 @@ +export * from './project.entity'; diff --git a/libs/common/src/modules/project/entities/project.entity.ts b/libs/common/src/modules/project/entities/project.entity.ts new file mode 100644 index 0000000..f614b50 --- /dev/null +++ b/libs/common/src/modules/project/entities/project.entity.ts @@ -0,0 +1,23 @@ +import { Entity, Column } from 'typeorm'; +import { AbstractEntity } from '../../abstract/entities/abstract.entity'; +import { ProjectDto } from '../dtos'; + +@Entity({ name: 'project' }) +export class ProjectEntity extends AbstractEntity { + @Column({ + type: 'uuid', + default: () => 'gen_random_uuid()', + nullable: false, + }) + public project_id: string; + + @Column({ + nullable: false, + }) + public name: string; + + constructor(partial: Partial) { + super(); + Object.assign(this, partial); + } +} diff --git a/libs/common/src/modules/project/index.ts b/libs/common/src/modules/project/index.ts new file mode 100644 index 0000000..cacdb88 --- /dev/null +++ b/libs/common/src/modules/project/index.ts @@ -0,0 +1 @@ +export * from './project.repository.module'; diff --git a/libs/common/src/modules/project/project.repository.module.ts b/libs/common/src/modules/project/project.repository.module.ts new file mode 100644 index 0000000..0b744f8 --- /dev/null +++ b/libs/common/src/modules/project/project.repository.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { ProjectEntity } from './entities'; + +@Module({ + providers: [], + exports: [], + controllers: [], + imports: [TypeOrmModule.forFeature([ProjectEntity])], +}) +export class ProjectEntityModule {} diff --git a/libs/common/src/modules/project/repositiories/index.ts b/libs/common/src/modules/project/repositiories/index.ts new file mode 100644 index 0000000..3e35c16 --- /dev/null +++ b/libs/common/src/modules/project/repositiories/index.ts @@ -0,0 +1 @@ +export * from './project.repository'; diff --git a/libs/common/src/modules/project/repositiories/project.repository.ts b/libs/common/src/modules/project/repositiories/project.repository.ts new file mode 100644 index 0000000..b4602e7 --- /dev/null +++ b/libs/common/src/modules/project/repositiories/project.repository.ts @@ -0,0 +1,10 @@ +import { DataSource, Repository } from 'typeorm'; +import { ProjectEntity } from '../entities'; +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class ProjectRepository extends Repository { + constructor(private dataSource: DataSource) { + super(ProjectEntity, dataSource.createEntityManager()); + } +}