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