wip: replace packages with pure files

This commit is contained in:
Justin Lin committed 2025-04-24 23:20:40 +08:00
1 parent 2d95ca382f
commit 87b8ca5d04
112 files changed
+740 -522

No files matched your search

+62
View File
@@ -0,0 +1,62 @@
import { model, Schema, Types } from 'mongoose'
export interface IProgress {
quest: string
sessions: Types.ObjectId[]
completed: boolean
startedAt: Date
finishedAt?: Date
}
const progressSchema = new Schema<IProgress>({
quest: {
type: String,
ref: 'Quest',
required: true,
},
sessions: [
{
type: Schema.ObjectId,
ref: 'Session',
required: true,
},
],
completed: {
type: Boolean,
default: false,
required: true,
},
startedAt: {
type: Date,
required: true,
},
finishedAt: Date,
})
export interface IUserProfile {
user: Types.ObjectId
progress: Map<string, IProgress>
}
export const UserProfile = model<IUserProfile>(
'UserProfile',
new Schema<IUserProfile>(
{
user: {
type: Schema.ObjectId,
ref: 'User',
unique: true,
required: true,
},
progress: {
type: Map,
of: progressSchema,
default: {},
required: true,
},
},
{
timestamps: true,
}
)
)