import { MongooseModule, } from "../helpers"; import { Model } from "mongoose"; import { StatusBeaconTransitionType } from "../types/status-beacon"; export interface StatusBeaconTransition extends StatusBeaconTransitionType { } export default async function StatusBeaconTransitionModule(mongoose: MongooseModule) { const { Schema } = mongoose; const modelSchema = new Schema({ _id: { type: Schema.Types.ObjectId, auto: true, }, departmentId: { type: String, default: "", required: true, }, integration: { type: String, default: "", required: true, }, triggerReason: { type: String, default: "", }, healthState: { type: String, default: "", }, consecutiveFailures: { type: Number, default: 0, }, totalFailuresSinceLastHealthy: { type: Number, default: 0, }, lastError: { type: String, default: "", }, }, { autoIndex: false, timestamps: true, }); modelSchema.index({ departmentId: 1, integration: 1, createdAt: -1 }, { name: "departmentId_1_integration_1_createdAt_-1", }); modelSchema.index({ createdAt: 1 }, { name: "createdAt_1" }); return mongoose.model("StatusBeaconTransition", modelSchema, "massive_status_beacon_transition", { overwriteModels: true }); } export interface StatusBeaconTransitionModel extends Model { }