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);