From 18e7e35d352759791b3fa6f6333c28a123bc19d2 Mon Sep 17 00:00:00 2001 From: faris Aljohari <83524184+farisaljohari@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:27:32 +0300 Subject: [PATCH] Add unique constraint to GroupDeviceEntity and isActive flag to both GroupDeviceEntity and GroupEntity --- .../group-device/entities/group.device.entity.ts | 8 +++++++- libs/common/src/modules/group/entities/group.entity.ts | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/libs/common/src/modules/group-device/entities/group.device.entity.ts b/libs/common/src/modules/group-device/entities/group.device.entity.ts index d0ac5e7..276a2b6 100644 --- a/libs/common/src/modules/group-device/entities/group.device.entity.ts +++ b/libs/common/src/modules/group-device/entities/group.device.entity.ts @@ -1,10 +1,11 @@ -import { Column, Entity, ManyToOne } from 'typeorm'; +import { Column, Entity, ManyToOne, Unique } from 'typeorm'; import { GroupDeviceDto } from '../dtos'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { DeviceEntity } from '../../device/entities'; import { GroupEntity } from '../../group/entities'; @Entity({ name: 'group-device' }) +@Unique(['device', 'group']) export class GroupDeviceEntity extends AbstractEntity { @Column({ type: 'uuid', @@ -23,6 +24,11 @@ export class GroupDeviceEntity extends AbstractEntity { }) group: GroupEntity; + @Column({ + nullable: true, + default: true, + }) + public isActive: boolean; constructor(partial: Partial) { super(); Object.assign(this, partial); diff --git a/libs/common/src/modules/group/entities/group.entity.ts b/libs/common/src/modules/group/entities/group.entity.ts index 745ca42..7cea8e8 100644 --- a/libs/common/src/modules/group/entities/group.entity.ts +++ b/libs/common/src/modules/group/entities/group.entity.ts @@ -17,9 +17,17 @@ export class GroupEntity extends AbstractEntity { }) public groupName: string; - @OneToMany(() => GroupDeviceEntity, (groupDevice) => groupDevice.group) + @OneToMany(() => GroupDeviceEntity, (groupDevice) => groupDevice.group, { + cascade: true, + onDelete: 'CASCADE', + }) groupDevices: GroupDeviceEntity[]; + @Column({ + nullable: true, + default: true, + }) + public isActive: boolean; constructor(partial: Partial) { super(); Object.assign(this, partial);