import {
BelongsTo,
Column,
CreatedAt,
DataType,
ForeignKey,
Model,
Table,
UpdatedAt,
} from 'sequelize-typescript';
import User from './user.entity';
import SystemModel from './system.entity';
@Table({
tableName: 'sso_UserSystemAccess',
timestamps: true,
createdAt: 'CreatedAt',
updatedAt: 'UpdatedAt',
})
export default class UserSystemAccessModel extends Model {
@Column({
primaryKey: true,
type: DataType.INTEGER,
allowNull: false,
autoIncrement: true,
})
UserSystemAccessId: number;
@ForeignKey(() => User)
@Column({
type: DataType.INTEGER,
field: 'UserId',
})
UserId: number;
@ForeignKey(() => SystemModel)
@Column({
type: DataType.STRING(10),
allowNull: false,
})
SystemCode: string;
@Column({
type: DataType.CHAR(20),
defaultValue: 'Active',
})
Status: string;
@ForeignKey(() => User)
@Column({
type: DataType.INTEGER,
})
CreatedById: number;
@ForeignKey(() => User)
@Column({
type: DataType.INTEGER,
})
UpdatedById: number;
@CreatedAt
CreatedAt: Date;
@UpdatedAt
UpdatedAt: Date;
@BelongsTo(() => User, {
foreignKey: 'UserId',
as: 'User',
})
User: User;
@BelongsTo(() => SystemModel)
System: SystemModel;
@BelongsTo(() => User, {
foreignKey: 'CreatedById',
as: 'CreatedBy',
})
CreatedBy: User;
@BelongsTo(() => User, {
foreignKey: 'UpdatedById',
as: 'UpdatedBy',
})
UpdatedBy: User;
}