import { Column, Entity } from 'typeorm';
import { BaseModel } from '../../frame/BaseModel';
import * as bcrypt from 'bcryptjs';
// 管理员
@Entity('admin')
export class Admin extends BaseModel {
  @Column({ type: 'character varying', nullable: true, comment: '管理员名称' })
  nick_name: string;
  @Column({ type: 'character varying', comment: '账号', unique: true })
  account: string;
  @Column({
    type: 'character varying',
    select: false,
    comment: '密码',
    transformer: {
      from: value => value,
      // to:进入数据库，需要加密
      to: value => {
        const salt = bcrypt.genSaltSync(10);
        const hash = bcrypt.hashSync(value, salt);
        return hash;
      },
    },
  })
  password: string; //TODO:需要重新加密
  @Column({ type: 'jsonb', nullable: true, comment: '角色id数组' })
  role: string[];
  @Column({ type: 'integer', nullable: true, comment: '部门id' })
  dept: number;
  @Column({ type: 'character varying', default: '0', comment: '是否使用: 0:使用;1:禁用' })
  is_use: string;
  @Column({ type: 'character varying', default: '1', comment: '是否是超级管理员: 0:是;1否' })
  is_super: string;
}
