created project entity

This commit is contained in:
hannathkadher
2024-12-09 10:51:58 +04:00
parent a43d6df10b
commit df80928b68
9 changed files with 65 additions and 1 deletions

View File

@ -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,

View File

@ -0,0 +1 @@
export * from './project.dto';

View File

@ -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;
}

View File

@ -0,0 +1 @@
export * from './project.entity';

View File

@ -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<ProjectDto> {
@Column({
type: 'uuid',
default: () => 'gen_random_uuid()',
nullable: false,
})
public project_id: string;
@Column({
nullable: false,
})
public name: string;
constructor(partial: Partial<ProjectEntity>) {
super();
Object.assign(this, partial);
}
}

View File

@ -0,0 +1 @@
export * from './project.repository.module';

View File

@ -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 {}

View File

@ -0,0 +1 @@
export * from './project.repository';

View File

@ -0,0 +1,10 @@
import { DataSource, Repository } from 'typeorm';
import { ProjectEntity } from '../entities';
import { Injectable } from '@nestjs/common';
@Injectable()
export class ProjectRepository extends Repository<ProjectEntity> {
constructor(private dataSource: DataSource) {
super(ProjectEntity, dataSource.createEntityManager());
}
}