penisularhr / src / modules / user / user.entity.ts
user.entity.ts
Raw
import { Column, Entity, OneToMany } from 'typeorm';

import { AbstractEntity } from '../../common/abstract.entity';
import { RoleType } from '../../constants';
import { UseDto } from '../../decorators';
import { AuditLogEntity } from '../audit-log/audit-log.entity';
import { UserDto } from './dtos/user.dto';

@Entity({ name: 'users' })
@UseDto(UserDto)
export class UserEntity extends AbstractEntity<UserDto> {
  @Column({ unique: true, type: 'varchar' })
  name!: string;

  @Column({ type: 'enum', enum: RoleType, default: RoleType.USER })
  role!: RoleType;

  @Column({ unique: true, type: 'varchar' })
  username!: string;

  @Column({ type: 'varchar' })
  password!: string;

  @OneToMany(() => AuditLogEntity, (auditLog) => auditLog.user)
  auditLog!: AuditLogEntity[];
}