// oms/src/models/totalDoneRateModel.ts

import mongoose, { Schema, Document } from "mongoose";

/**
 * 累计作品完成率统计数据的接口。
 * 这个模型用于存储每个作品的总开始数、总完成数和总完成率。
 */
export interface ITotalDoneRate extends Document {
  _id: mongoose.Schema.Types.ObjectId; // 直接使用作品的 ObjectId 作为 _id
  totalStartCount: number; // 作品总的开始次数
  totalDoneCount: number; // 作品总的完成次数
  completionRate: number; // 作品的总完成率 (百分比, 0-100)
}

const totalDoneRateSchema: Schema = new Schema(
  {
    // _id 字段直接用作作品的 ObjectId，因此无需再定义一个 res 字段。
    // MongoDB 会自动为其创建唯一索引。
    totalStartCount: {
      type: Number,
      required: true,
      default: 0,
    },
    totalDoneCount: {
      type: Number,
      required: true,
      default: 0,
    },
    completionRate: {
      type: Number,
      required: true,
      default: 0,
    },
  },
  {
    timestamps: true, // 自动添加 createdAt 和 updatedAt 字段
  }
);

const TotalDoneRate = mongoose.model<ITotalDoneRate>("TotalDoneRate", totalDoneRateSchema);

export default TotalDoneRate;
