All files / models group.entity.ts

73.17% Statements 30/41
100% Branches 0/0
0% Functions 0/11
100% Lines 28/28

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 11812x                     12x 12x 12x 12x 12x 12x               12x 12x             12x           12x           12x           12x             12x         12x         12x           12x             12x             12x     12x     12x     12x     12x     12x     12x     12x     12x     12x      
import {
  BelongsTo,
  Column,
  CreatedAt,
  DataType,
  ForeignKey,
  HasMany,
  Model,
  Table,
  UpdatedAt,
} from 'sequelize-typescript';
import User from './user.entity';
import { GroupTypeEnum } from '../enum/group-type.enum';
import UserGroupModel from './user-group.entity';
import GroupPrivilegeModel from './group-privilege.entity';
import GroupObjectPrivilegeModel from './group-object-privilege.entity';
import GroupSystemAccessModel from './group-system-access.entity';
 
@Table({
  tableName: 'sso_Group',
  timestamps: true,
  createdAt: 'CreatedAt',
  updatedAt: 'UpdatedAt',
})
export default class GroupModel extends Model {
  @Column({
    primaryKey: true,
    allowNull: false,
    type: DataType.STRING(10),
  })
  GroupCode: string;
 
  @Column({
    allowNull: false,
    type: DataType.STRING(50),
  })
  Name: string;
 
  @Column({
    allowNull: true,
    type: DataType.STRING(100),
  })
  Description: string;
 
  @Column({
    allowNull: false,
    type: DataType.STRING(2000),
  })
  Type: GroupTypeEnum;
 
  @ForeignKey(() => GroupModel)
  @Column({
    allowNull: true,
    type: DataType.STRING(10),
  })
  ParentGroupCode: string;
 
  @Column({
    type: DataType.CHAR(1),
  })
  InheritParentPrivilegeYN: string;
 
  @Column({
    type: DataType.CHAR(1),
  })
  InheritParentSystemAccessYN: string;
 
  @Column({
    allowNull: false,
    type: DataType.CHAR(10),
  })
  Status: string;
 
  @ForeignKey(() => User)
  @Column({
    allowNull: false,
    type: DataType.INTEGER,
  })
  CreatedById: number;
 
  @ForeignKey(() => User)
  @Column({
    allowNull: false,
    type: DataType.INTEGER,
  })
  UpdatedById: number;
 
  @CreatedAt
  CreatedAt: Date;
 
  @UpdatedAt
  UpdatedAt: Date;
 
  @BelongsTo(() => User, 'CreatedById')
  CreatedByUser: User;
 
  @BelongsTo(() => User, 'UpdatedById')
  UpdatedByUser: User;
 
  @BelongsTo(() => GroupModel, 'ParentGroupCode')
  ParentGroup: GroupModel;
 
  @HasMany(() => GroupModel)
  ChildGroups: GroupModel[];
 
  @HasMany(() => UserGroupModel)
  UserGroups: UserGroupModel[];
 
  @HasMany(() => GroupPrivilegeModel)
  GroupPrivileges: GroupPrivilegeModel[];
 
  @HasMany(() => GroupObjectPrivilegeModel)
  GroupObjectPrivileges: GroupObjectPrivilegeModel[];
 
  @HasMany(() => GroupSystemAccessModel)
  GroupSystemAccesses: GroupSystemAccessModel[];
}