import mongoose from "mongoose"; const powerSampleSchema = new mongoose.Schema( { battery: { voltage: { type: Number, default: null }, current: { type: Number, default: null }, percent: { type: Number, default: null }, }, solar: { voltage: { type: Number, default: null }, current: { type: Number, default: null }, }, load: { voltage: { type: Number, default: null }, current: { type: Number, default: null }, }, }, { _id: false }, ); const patchSampleSchema = new mongoose.Schema( { patchId: { type: String, required: true }, deviceId: { type: mongoose.Schema.Types.ObjectId, ref: "Device", required: true, }, soilTemperature: { type: Number, default: null }, soilHumidity: { type: Number, default: null }, }, { _id: false }, ); const historySchema = new mongoose.Schema( { sampledAt: { type: Date, required: true, index: true }, waterTank: { level: { type: Number, default: null }, }, power: { type: powerSampleSchema, default: undefined }, patches: { type: [patchSampleSchema], default: [] }, }, { timestamps: false }, ); historySchema.index({ sampledAt: 1, "patches.patchId": 1 }); export const History = mongoose.model("History", historySchema);