// oms/src/models/colorRecordModel.ts
import mongoose, { Document, Schema } from "mongoose";

// 定义 ColorRecord 文档的 TypeScript 接口
export interface IColorRecord extends Document {
  uid: string; // 用户ID
  res: string; // 作品ID
  type: "color_start" | "color_done" | "color_tip"; // 操作类型 (填色开始, 填色完成, 填色提示等)
  time: Date; // 操作时间
  duration?: number; // 填色时长 (仅对 'color_done' 有效)
  createdAt: Date; // 记录创建时间 (由timestamps自动管理)
  updatedAt: Date; // 记录更新时间 (由timestamps自动管理)
}

// 定义 ColorRecord Schema
const ColorRecordSchema: Schema = new Schema(
  {
    uid: {
      type: String,
      required: true,
      index: true, // 为 uid 字段添加索引
    },
    res: {
      type: String,
      required: true,
      index: true, // 为 作品id (res) 字段添加索引
    },
    event: {
      type: String,
      required: true,
      enum: ["color_start", "color_done", "color_tip"], // 限制操作类型为枚举值
      index: true, // 为 type 字段添加索引
    },
    time: {
      type: Date,
      required: true,
      index: true, // 为 操作时间 (time) 字段添加索引
    },
    duration: {
      type: Number,
      min: 0, // 确保时长不为负数
    },
  },
  {
    timestamps: true, // 自动添加 createdAt 和 updatedAt 字段
  }
);

// 创建并导出 ColorRecord Model
const ColorRecord = mongoose.model<IColorRecord>(
  "ColorRecord",
  ColorRecordSchema
);
export default ColorRecord;
