Migrated the User.ts model

This commit is contained in:
Mathias Wagner 2023-11-07 09:17:34 +01:00
parent 8b4fc500a2
commit 8910583aa3
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

View File

@ -1,4 +1,5 @@
import mongoose, {Schema} from 'mongoose';
import {sequelize} from "../app";
import {DataTypes, InferAttributes, InferCreationAttributes, Model} from "sequelize";
export enum Rank {
USER = "user",
@ -6,51 +7,51 @@ export enum Rank {
ADMIN = "admin"
}
export interface IUser {
export interface IUser extends Model<InferAttributes<IUser>, InferCreationAttributes<IUser>> {
clientId: number
username: string
locale: string
rank: Rank
avatarId: string
locale?: string
rank?: Rank
avatarId?: string
accessToken: string
refreshToken: string
created: Date
created?: Date
}
const UserSchema = new Schema<IUser>({
const UserSchema = sequelize.define<IUser>('users', {
clientId: {
type: Number,
required: true
type: DataTypes.BIGINT,
allowNull: false,
primaryKey: true
},
username: {
type: String,
default: "User#0001"
type: DataTypes.STRING,
defaultValue: "User#0001"
},
locale: {
type: String,
default: "en"
type: DataTypes.STRING,
defaultValue: "en"
},
rank: {
type: String,
enum: Rank,
default: Rank.USER
type: DataTypes.STRING,
defaultValue: Rank.USER
},
avatarId: {
type: String,
default: "590962a0d694945a779054cd078a7efd"
type: DataTypes.STRING,
defaultValue: "590962a0d694945a779054cd078a7efd"
},
accessToken: {
type: String,
required: true
type: DataTypes.STRING,
allowNull: false
},
refreshToken: {
type: String,
required: true
type: DataTypes.STRING,
allowNull: false
},
created: {
type: Date,
default: Date.now
type: DataTypes.DATE,
defaultValue: Date.now
}
});
export const User = mongoose.model('users', UserSchema);
export const User = UserSchema;