Notifications
This commit is contained in:
75
api/src/model/entitites/user/user.entity.ts
Normal file
75
api/src/model/entitites/user/user.entity.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
import { Exclude, Transform } from 'class-transformer';
|
||||
import { IsEmail } from 'class-validator';
|
||||
import { IUser } from 'src/model/interface';
|
||||
import {
|
||||
BeforeInsert,
|
||||
BeforeUpdate,
|
||||
Column,
|
||||
CreateDateColumn,
|
||||
DeleteDateColumn,
|
||||
Entity,
|
||||
JoinColumn,
|
||||
ManyToMany,
|
||||
ManyToOne,
|
||||
OneToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
} from 'typeorm';
|
||||
import { Role } from '../role.entity';
|
||||
import { KeySystem } from '../system.entity';
|
||||
import { SSOUser } from './sso.user.entity';
|
||||
import { UserSettings } from './user.settings.entity';
|
||||
|
||||
@Entity()
|
||||
export class User implements IUser {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: string;
|
||||
|
||||
@IsEmail()
|
||||
@Column({ unique: false })
|
||||
username: string;
|
||||
|
||||
@Column({ name: 'first_name', default: '' })
|
||||
firstName: string;
|
||||
|
||||
@Column({ name: 'last_name', default: '' })
|
||||
lastName: string;
|
||||
|
||||
@CreateDateColumn({ name: 'created_at' })
|
||||
createdAt: Date;
|
||||
|
||||
@Column({ default: null })
|
||||
lastLogin: Date;
|
||||
|
||||
@Exclude()
|
||||
@OneToOne(() => SSOUser, (sso) => sso.user, { eager: true, cascade: true, onDelete: 'CASCADE' })
|
||||
external: SSOUser;
|
||||
|
||||
@Column({ default: true })
|
||||
isActive: boolean;
|
||||
|
||||
@ManyToOne(() => Role, (role) => role.user, { eager: true, onDelete: 'NO ACTION' })
|
||||
@JoinColumn()
|
||||
@Transform(({ value }) => value.name)
|
||||
role: Role;
|
||||
|
||||
@ManyToMany(() => KeySystem, (system) => system.managers)
|
||||
systems: KeySystem[];
|
||||
|
||||
@DeleteDateColumn()
|
||||
deletedAt: Date;
|
||||
|
||||
@OneToOne(() => UserSettings, (settings) => settings.user, { cascade: true })
|
||||
settings: UserSettings;
|
||||
|
||||
accessToken?: string;
|
||||
refreshToken?: string;
|
||||
|
||||
@BeforeInsert()
|
||||
@BeforeUpdate()
|
||||
createSettings() {
|
||||
if (this.settings == null) {
|
||||
this.settings = {} as any;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user