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

export interface IGenerationHistory extends Document {
  imageFileName: string;
  imageMimeType: string;
  targetVersion: string;
  confidence: number;
  sectionsCount: number;
  widgetsCount: number;
  usesContainers: boolean;
  warnings: string[];
  outputJson: object;
  createdAt: Date;
}

const GenerationHistorySchema = new Schema<IGenerationHistory>(
  {
    imageFileName: { type: String, required: true },
    imageMimeType: { type: String, required: true },
    targetVersion: { type: String, required: true },
    confidence: { type: Number, required: true },
    sectionsCount: { type: Number, required: true },
    widgetsCount: { type: Number, required: true },
    usesContainers: { type: Boolean, required: true },
    warnings: { type: [String], default: [] },
    outputJson: { type: Schema.Types.Mixed, required: true },
  },
  { timestamps: true }
);

export default mongoose.model<IGenerationHistory>('GenerationHistory', GenerationHistorySchema);
