From cc5fd68adb78784326227a15afdba7f807d0485c Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Fri, 27 Dec 2024 09:40:05 +0400 Subject: [PATCH] remove device-tag relation --- .../src/modules/device/entities/device.entity.ts | 9 ++++++++- .../src/modules/space/entities/tag.entity.ts | 15 ++++++++++++++- src/space/services/tag/tag.service.ts | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/libs/common/src/modules/device/entities/device.entity.ts b/libs/common/src/modules/device/entities/device.entity.ts index 9a75950..bdd1ce5 100644 --- a/libs/common/src/modules/device/entities/device.entity.ts +++ b/libs/common/src/modules/device/entities/device.entity.ts @@ -6,10 +6,11 @@ import { Unique, Index, JoinColumn, + OneToOne, } from 'typeorm'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { DeviceDto, DeviceUserPermissionDto } from '../dtos/device.dto'; -import { SpaceEntity, SubspaceEntity } from '../../space/entities'; +import { SpaceEntity, SubspaceEntity, TagEntity } from '../../space/entities'; import { ProductEntity } from '../../product/entities'; import { UserEntity } from '../../user/entities'; import { DeviceNotificationDto } from '../dtos'; @@ -74,6 +75,11 @@ export class DeviceEntity extends AbstractEntity { @OneToMany(() => SceneDeviceEntity, (sceneDevice) => sceneDevice.device, {}) sceneDevices: SceneDeviceEntity[]; + @OneToOne(() => TagEntity, (tag) => tag.device, { + nullable: true, + }) + tag: TagEntity; + constructor(partial: Partial) { super(); Object.assign(this, partial); @@ -102,6 +108,7 @@ export class DeviceNotificationEntity extends AbstractEntity) { super(); Object.assign(this, partial); diff --git a/libs/common/src/modules/space/entities/tag.entity.ts b/libs/common/src/modules/space/entities/tag.entity.ts index 77e79cc..e7f8599 100644 --- a/libs/common/src/modules/space/entities/tag.entity.ts +++ b/libs/common/src/modules/space/entities/tag.entity.ts @@ -1,10 +1,18 @@ -import { Entity, Column, ManyToOne, JoinColumn, Unique } from 'typeorm'; +import { + Entity, + Column, + ManyToOne, + JoinColumn, + Unique, + OneToOne, +} from 'typeorm'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { ProductEntity } from '../../product/entities'; import { TagDto } from '../dtos'; import { TagModel } from '../../space-model/entities/tag-model.entity'; import { SpaceEntity } from './space.entity'; import { SubspaceEntity } from './subspace'; +import { DeviceEntity } from '../../device/entities'; @Entity({ name: 'tag' }) @Unique(['tag', 'product', 'space', 'subspace']) @@ -36,4 +44,9 @@ export class TagEntity extends AbstractEntity { default: false, }) public disabled: boolean; + + @OneToOne(() => DeviceEntity, (device) => device.tag, { + nullable: true, + }) + device: DeviceEntity; } diff --git a/src/space/services/tag/tag.service.ts b/src/space/services/tag/tag.service.ts index c9ccc1c..b89dc9c 100644 --- a/src/space/services/tag/tag.service.ts +++ b/src/space/services/tag/tag.service.ts @@ -99,7 +99,7 @@ export class TagService { queryRunner.manager.update( this.tagRepository.target, { uuid: id }, - { disabled: true }, + { disabled: true, device: null }, ), ), );