diff --git a/libs/common/src/modules/device/entities/device-user-type.entity.ts b/libs/common/src/modules/device/entities/device-user-type.entity.ts index 66d05a7..904b18a 100644 --- a/libs/common/src/modules/device/entities/device-user-type.entity.ts +++ b/libs/common/src/modules/device/entities/device-user-type.entity.ts @@ -1,6 +1,8 @@ -import { Column, Entity } from 'typeorm'; +import { Column, Entity, JoinColumn, ManyToOne } from 'typeorm'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { DeviceUserTypeDto } from '../dtos/device-user-type.dto'; +import { DeviceEntity } from './device.entity'; +import { PermissionTypeEntity } from '../../permission/entities'; @Entity({ name: 'device-user-permission' }) export class DeviceUserPermissionEntity extends AbstractEntity { @@ -19,6 +21,20 @@ export class DeviceUserPermissionEntity extends AbstractEntity DeviceEntity, { + onDelete: 'CASCADE', + onUpdate: 'CASCADE', + }) + @JoinColumn({ name: 'device_uuid', referencedColumnName: 'uuid' }) + device: DeviceEntity; + + @ManyToOne(() => PermissionTypeEntity, { + onDelete: 'CASCADE', + onUpdate: 'CASCADE', + }) + @JoinColumn({ name: 'permission_type_uuid', referencedColumnName: 'uuid' }) + type: PermissionTypeEntity; + constructor(partial: Partial) { super(); Object.assign(this, partial); diff --git a/libs/common/src/modules/device/entities/device.entity.ts b/libs/common/src/modules/device/entities/device.entity.ts index e8df1f0..d90d2d1 100644 --- a/libs/common/src/modules/device/entities/device.entity.ts +++ b/libs/common/src/modules/device/entities/device.entity.ts @@ -1,6 +1,7 @@ -import { Column, Entity } from 'typeorm'; +import { Column, Entity, OneToMany } from 'typeorm'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { DeviceDto } from '../dtos/device.dto'; +import { DeviceUserPermissionEntity } from './device-user-type.entity'; @Entity({ name: 'device' }) export class DeviceEntity extends AbstractEntity { @@ -25,6 +26,17 @@ export class DeviceEntity extends AbstractEntity { }) isActive: true; + @OneToMany( + () => DeviceUserPermissionEntity, + (permission) => permission.device, + { + nullable: true, + onDelete: 'CASCADE', + onUpdate: 'CASCADE', + }, + ) + permission: DeviceUserPermissionEntity[]; + constructor(partial: Partial) { super(); Object.assign(this, partial);