Spaces:
Runtime error
Runtime error
| import { | |
| DataTypes, | |
| Model, | |
| InferAttributes, | |
| InferCreationAttributes, | |
| CreationOptional, | |
| } from 'sequelize'; | |
| import { sequelize } from './index'; | |
| import Role from './roles'; | |
| import { UserInterface } from '../shared/interfaces/user.interface'; | |
| class User extends Model<InferAttributes<User>, InferCreationAttributes<User>> implements UserInterface { | |
| declare id: CreationOptional<number>; | |
| declare name: string; | |
| declare email: string; | |
| declare role_id: number; | |
| declare status: string; | |
| declare password: string; | |
| declare reset_token: CreationOptional<string | null>; | |
| declare reset_token_expiry: CreationOptional<Date | null>; | |
| } | |
| User.init( | |
| { | |
| id: { | |
| type: DataTypes.INTEGER.UNSIGNED, | |
| autoIncrement: true, | |
| primaryKey: true, | |
| unique: true, | |
| }, | |
| name: { | |
| type: DataTypes.STRING, | |
| allowNull: false, | |
| }, | |
| email: { | |
| type: DataTypes.STRING, | |
| allowNull: false, | |
| }, | |
| role_id: { | |
| type: DataTypes.INTEGER.UNSIGNED, | |
| allowNull: false, | |
| references: { | |
| model: Role, | |
| key: 'id', | |
| }, | |
| }, | |
| status: { | |
| type: DataTypes.STRING, | |
| allowNull: false, | |
| }, | |
| password: { | |
| type: DataTypes.STRING, | |
| allowNull: false, | |
| }, | |
| reset_token: { | |
| type: DataTypes.STRING, | |
| allowNull: true, | |
| }, | |
| reset_token_expiry: { | |
| type: DataTypes.DATE, | |
| allowNull: true, | |
| }, | |
| }, | |
| { | |
| sequelize, | |
| tableName: 'users', | |
| underscored: true, | |
| freezeTableName: true, | |
| timestamps: true, | |
| createdAt: 'created_at', | |
| updatedAt: 'updated_at', | |
| paranoid: true, | |
| deletedAt: 'deleted_at', | |
| } | |
| ); | |
| User.belongsTo(Role, { foreignKey: 'role_id', as : 'role' }); | |
| export default User; | |