import { DeviceUserPermissionEntity } from '../../device-user-permission/entities/device.user.permission.entity'; import { Column, Entity, OneToMany } from 'typeorm'; import { UserDto } from '../dtos'; import { AbstractEntity } from '../../abstract/entities/abstract.entity'; import { UserSpaceEntity } from '../../user-space/entities'; @Entity({ name: 'user' }) export class UserEntity extends AbstractEntity { @Column({ type: 'uuid', default: () => 'gen_random_uuid()', // Use gen_random_uuid() for default value nullable: false, }) public uuid: string; @Column({ nullable: false, unique: true, }) email: string; @Column({ nullable: false, }) public password: string; @Column() public firstName: string; @Column({ nullable: false, }) public lastName: string; @Column({ nullable: true, }) public refreshToken: string; @Column({ nullable: true, default: false, }) public isUserVerified: boolean; @Column({ nullable: false, default: true, }) public isActive: boolean; @OneToMany(() => UserSpaceEntity, (userSpace) => userSpace.user) userSpaces: UserSpaceEntity[]; @OneToMany( () => DeviceUserPermissionEntity, (userPermission) => userPermission.user, ) userPermission: DeviceUserPermissionEntity[]; constructor(partial: Partial) { super(); Object.assign(this, partial); } }