Files
linux-odyssey/packages/models/user.js
T
Lin, Hung-Shin fac91e0f10 feat: update quest and user schema
* add requirements in quest
* add progress in user
2023-11-14 10:44:52 +08:00

54 lines
859 B
JavaScript

import { model, Schema } from 'mongoose'
const progressSchema = new Schema({
quest: {
type: String,
ref: 'Quest',
},
sessions: [
{
type: Schema.ObjectId,
ref: 'Session',
},
],
completionStatus: {
type: String,
enum: ['incomplete', 'completed'],
},
startedAt: Date,
finishedAt: Date,
})
const User = model(
'User',
new Schema(
{
username: {
type: String,
unique: true,
required: true,
},
email: {
type: String,
unique: true,
required: true,
},
hashedPassword: String,
google: {
id: String,
displayName: String,
},
github: {
id: String,
displayName: String,
},
progress: [progressSchema],
},
{
timestamps: true,
}
)
)
export default User