import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'
import { Document } from 'mongoose'

export type ProgressDocument = Progress & Document

@Schema({ timestamps: true })
export class Progress {
  @Prop({ required: true, index: true })
  userId: string

  @Prop({ default: 0 })
  totalInterviews: number

  @Prop({ default: 0 })
  completedInterviews: number

  // 四维能力平均分
  @Prop({ default: 0 })
  avgLogic: number          // 逻辑思维

  @Prop({ default: 0 })
  avgExpression: number     // 表达能力

  @Prop({ default: 0 })
  avgProfessionalism: number // 专业度

  @Prop({ default: 0 })
  avgStability: number      // 稳定性

  // 最近面试记录（用于进步对比）
  @Prop({ type: [Object], default: [] })
  recentScores: Array<{
    interviewId: string
    date: Date
    position: string
    totalScore: number
    dimensions: {
      logic: number
      expression: number
      professionalism: number
      stability: number
    }
  }>

  // 打卡记录
  @Prop({ default: 0 })
  streak: number            // 连续打卡天数

  @Prop()
  lastInterviewDate?: Date

  @Prop({ type: [Date], default: [] })
  streakHistory: Date[]

  // P4: 积分体系
  @Prop({ default: 0 })
  points: number            // 累计积分

  @Prop({ default: 0 })
  totalCheckins: number     // 总打卡次数

  @Prop({ type: Date, default: null })
  lastCheckinDate?: Date | null  // 上次打卡日期
}

export const ProgressSchema = SchemaFactory.createForClass(Progress)