import { DataTypes, Model, Optional } from "sequelize"; import sequelize from "../config/database"; interface UserAttributes { id: number; userId?: number; username: string; password: string; role: number; // 修改为数字类型 } interface UserCreationAttributes extends Optional {} class User extends Model implements UserAttributes { public id!: number; public userId!: number; public username!: string; public password!: string; public role!: number; // 实现数字类型的角色属性 } User.init( { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true, allowNull: false, // 显式设置为不可为空 }, userId: { type: DataTypes.UUID, // 对外暴露的不可预测ID defaultValue: DataTypes.UUIDV4, unique: true, allowNull: false, // 显式设置为不可为空 }, username: { type: DataTypes.STRING, allowNull: false, unique: true, }, password: { type: DataTypes.STRING, allowNull: false, }, role: { type: DataTypes.INTEGER, // 修改为数字类型 allowNull: false, defaultValue: 0, // 默认值为普通用户 }, }, { sequelize, modelName: "User", tableName: "users", } ); // 角色映射 // 0: 普通用户 // 1: 管理员 export default User;