56 lines
1.0 KiB
TypeScript
56 lines
1.0 KiB
TypeScript
import mongoose, {Schema} from 'mongoose';
|
|
|
|
export enum Rank {
|
|
USER = "user",
|
|
TEAM_MEMBER = "team",
|
|
ADMIN = "admin"
|
|
}
|
|
|
|
export interface IUser {
|
|
clientId: number
|
|
username: string
|
|
locale: string
|
|
rank: Rank
|
|
avatarId: string
|
|
accessToken: string
|
|
refreshToken: string
|
|
created: Date
|
|
}
|
|
|
|
const UserSchema = new Schema<IUser>({
|
|
clientId: {
|
|
type: Number,
|
|
required: true
|
|
},
|
|
username: {
|
|
type: String,
|
|
default: "User#0001"
|
|
},
|
|
locale: {
|
|
type: String,
|
|
default: "en"
|
|
},
|
|
rank: {
|
|
type: String,
|
|
enum: Rank,
|
|
default: Rank.USER
|
|
},
|
|
avatarId: {
|
|
type: String,
|
|
default: "590962a0d694945a779054cd078a7efd"
|
|
},
|
|
accessToken: {
|
|
type: String,
|
|
required: true
|
|
},
|
|
refreshToken: {
|
|
type: String,
|
|
required: true
|
|
},
|
|
created: {
|
|
type: Date,
|
|
default: Date.now
|
|
}
|
|
});
|
|
|
|
export const User = mongoose.model('users', UserSchema); |