UNPKG

@tomei/sso

Version:
103 lines (89 loc) 1.82 kB
import { BelongsTo, Column, CreatedAt, DataType, ForeignKey, Model, Table, UpdatedAt, } from 'sequelize-typescript'; import User from './user.entity'; import GroupModel from './group.entity'; import { IUserReportingHierarchyAttr } from '../interfaces/user-reporting-hierarchy.interface'; @Table({ tableName: 'sso_UserReportingHierarchy', timestamps: true, createdAt: 'CreatedAt', updatedAt: 'UpdatedAt', }) export default class UserReportingHierarchyModel extends Model implements IUserReportingHierarchyAttr { @Column({ primaryKey: true, allowNull: false, type: DataType.INTEGER, autoIncrement: true, }) UserReportingHierarchyId: number; @ForeignKey(() => User) @Column({ allowNull: false, type: DataType.INTEGER, }) UserId: number; @ForeignKey(() => User) @Column({ allowNull: false, type: DataType.INTEGER, }) ReportingUserId: number; @Column({ allowNull: false, type: DataType.TINYINT, }) Rank: number; @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, { as: 'CreatedByUser', foreignKey: 'CreatedById', }) CreatedByUser: User; @BelongsTo(() => User, { as: 'ReportingUser', foreignKey: 'ReportingUserId', }) ReportingUser: User; @BelongsTo(() => User, { as: 'UpdatedByUser', foreignKey: 'UpdatedById', }) UpdatedByUser: User; @BelongsTo(() => User, { as: 'User', foreignKey: 'UserId', }) User: User; }