import mongoose, { Schema, Document } from 'mongoose';

export interface IKPIDocument extends Document {
  // _id is handled by Mongoose
  siteId: mongoose.Types.ObjectId; // Legacy: mapped to projectId
  date: Date;
  pr: number; // Performance Ratio
  availability: number; // Percentage
  specificYield: number; // kWh/kWp
  irradiation: number; // kWh/m²
  production: number; // kWh
  createdAt: Date;
  updatedAt: Date;
}

const kpiSchema = new Schema<IKPIDocument>(
  {
    siteId: { type: Schema.Types.ObjectId, ref: 'Project', required: true },
    date: { type: Date, required: true },
    pr: { type: Number, required: true, min: 0, max: 100 },
    availability: { type: Number, required: true, min: 0, max: 100 },
    specificYield: { type: Number, required: true, min: 0 },
    irradiation: { type: Number, required: true, min: 0 },
    production: { type: Number, required: true, min: 0 },
  },
  {
    timestamps: true,
  }
);

kpiSchema.index({ siteId: 1, date: -1 });
kpiSchema.index({ date: -1 });

export const KPI = mongoose.model<IKPIDocument>('KPI', kpiSchema);
