diff --git a/src/scene/services/scene.service.ts b/src/scene/services/scene.service.ts index 0aa8c81..20866b2 100644 --- a/src/scene/services/scene.service.ts +++ b/src/scene/services/scene.service.ts @@ -39,6 +39,7 @@ import { SuccessResponseDto } from '@app/common/dto/success.response.dto'; import { HttpStatusCode } from 'axios'; import { ConvertedAction } from '@app/common/integrations/tuya/interfaces'; import { DeviceService } from 'src/device/services'; +import { SceneDeviceRepository } from '@app/common/modules/scene-device/repositories'; @Injectable() export class SceneService { @@ -46,6 +47,7 @@ export class SceneService { private readonly spaceRepository: SpaceRepository, private readonly sceneIconRepository: SceneIconRepository, private readonly sceneRepository: SceneRepository, + private readonly sceneDeviceRepository: SceneDeviceRepository, private readonly tuyaService: TuyaService, @Inject(forwardRef(() => DeviceService)) private readonly deviceService: DeviceService, @@ -449,13 +451,18 @@ export class SceneService { } async deleteScene(params: SceneParamDto): Promise { + const { sceneUuid } = params; try { - const { sceneUuid } = params; const scene = await this.findScene(sceneUuid); const space = await this.getSpaceByUuid(scene.space.uuid); await this.delete(scene.sceneTuyaUuid, space.spaceTuyaUuid); - await this.sceneRepository.delete({ uuid: sceneUuid }); + await this.sceneDeviceRepository.delete({ + scene: { uuid: sceneUuid }, + }); + await this.sceneRepository.delete({ + uuid: sceneUuid, + }); return new SuccessResponseDto({ message: `Scene with ID ${sceneUuid} deleted successfully`, });