import { Column, Entity, ManyToOne, Unique } from 'typeorm'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { DeviceUserPermissionDto } from '../dtos'; import { PermissionTypeEntity } from '../../permission/entities'; import { DeviceEntity } from '../../device/entities'; import { UserEntity } from '../../user/entities'; @Entity({ name: 'device-user-permission' }) @Unique(['userUuid', 'deviceUuid']) export class DeviceUserPermissionEntity extends AbstractEntity { @Column({ nullable: false, }) public userUuid: string; @Column({ nullable: false, }) deviceUuid: string; @ManyToOne(() => DeviceEntity, (device) => device.permission, { nullable: false, }) device: DeviceEntity; @ManyToOne( () => PermissionTypeEntity, (permissionType) => permissionType.permission, { nullable: false, }, ) permissionType: PermissionTypeEntity; @ManyToOne(() => UserEntity, (user) => user.userPermission, { nullable: false, }) user: UserEntity; constructor(partial: Partial) { super(); Object.assign(this, partial); } }