Spaces:
Sleeping
Sleeping
import { DataTypes, Model, Optional } from "sequelize"; | |
import sequelize from "../config/database"; | |
import User from "./User"; | |
interface UserSettingAttributes { | |
id: number; | |
userId: string; | |
cloud115UserId?: string; | |
cloud115Cookie: string; | |
quarkCookie: string; | |
} | |
interface UserSettingCreationAttributes extends Optional<UserSettingAttributes, "id"> {} | |
class UserSetting | |
extends Model<UserSettingAttributes, UserSettingCreationAttributes> | |
implements UserSettingAttributes | |
{ | |
public id!: number; | |
public userId!: string; | |
public cloud115UserId?: string; | |
public cloud115Cookie!: string; | |
public quarkCookie!: string; | |
} | |
UserSetting.init( | |
{ | |
id: { | |
type: DataTypes.INTEGER, | |
autoIncrement: true, | |
primaryKey: true, | |
}, | |
userId: { | |
type: DataTypes.UUID, | |
allowNull: false, | |
unique: true, | |
references: { | |
model: User, | |
key: "userId", | |
}, | |
onDelete: "CASCADE", | |
}, | |
cloud115UserId: { | |
type: DataTypes.STRING, | |
allowNull: true, | |
}, | |
cloud115Cookie: { | |
type: DataTypes.STRING, | |
allowNull: true, | |
}, | |
quarkCookie: { | |
type: DataTypes.STRING, | |
allowNull: true, | |
}, | |
}, | |
{ | |
sequelize, | |
modelName: "UserSetting", | |
tableName: "user_settings", | |
} | |
); | |
User.hasOne(UserSetting, { | |
foreignKey: "userId", | |
as: "settings", | |
}); | |
UserSetting.belongsTo(User, { | |
foreignKey: "userId", | |
as: "user", | |
}); | |
export default UserSetting; | |