import {
BelongsTo,
Column,
CreatedAt,
DataType,
ForeignKey,
Model,
Table,
UpdatedAt,
} from 'sequelize-typescript';
import User from './user.entity';
import GroupModel from './group.entity';
@Table({
tableName: 'sso_GroupReportingUser',
timestamps: true,
createdAt: 'CreatedAt',
updatedAt: 'UpdatedAt',
})
export default class GroupReportingUserModel extends Model {
@Column({
primaryKey: true,
allowNull: false,
type: DataType.INTEGER,
autoIncrement: true,
})
GroupReportingUserId: number;
@ForeignKey(() => GroupModel)
@Column({
allowNull: false,
type: DataType.STRING(10),
})
GroupCode: string;
@ForeignKey(() => User)
@Column({
allowNull: false,
type: DataType.INTEGER,
})
UserId: 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: 'UpdatedByUser',
foreignKey: 'UpdatedById',
})
UpdatedByUser: User;
@BelongsTo(() => User, {
as: 'User',
foreignKey: 'UserId',
})
User: User;
@BelongsTo(() => GroupModel, 'GroupCode')
Group: User;
}