Files
Checkmate/server/db/models/NetworkCheck.js
T

46 lines
1.2 KiB
JavaScript
Raw Normal View History

2025-06-18 23:23:24 +05:30
import mongoose from "mongoose";
import { BaseCheckSchema } from "./Check.js";
const networkInterfaceSchema = mongoose.Schema({
2025-06-18 23:30:39 +05:30
name: { type: String, required: true },
bytes_sent: { type: Number, default: 0 },
bytes_recv: { type: Number, default: 0 },
packets_sent: { type: Number, default: 0 },
packets_recv: { type: Number, default: 0 },
err_in: { type: Number, default: 0 },
err_out: { type: Number, default: 0 },
drop_in: { type: Number, default: 0 },
drop_out: { type: Number, default: 0 },
fifo_in: { type: Number, default: 0 },
fifo_out: { type: Number, default: 0 },
2025-06-18 23:23:24 +05:30
});
const captureSchema = mongoose.Schema({
2025-06-18 23:30:39 +05:30
version: { type: String, default: "" },
mode: { type: String, default: "" },
2025-06-18 23:23:24 +05:30
});
const NetworkCheckSchema = mongoose.Schema(
2025-06-18 23:30:39 +05:30
{
...BaseCheckSchema.obj,
data: {
type: [networkInterfaceSchema],
default: () => [],
},
capture: {
type: captureSchema,
default: () => ({}),
},
errors: {
type: mongoose.Schema.Types.Mixed,
default: null,
},
},
{ timestamps: true }
2025-06-18 23:23:24 +05:30
);
NetworkCheckSchema.index({ createdAt: 1 });
NetworkCheckSchema.index({ monitorId: 1, createdAt: 1 });
NetworkCheckSchema.index({ monitorId: 1, createdAt: -1 });
2025-06-18 23:30:39 +05:30
export default mongoose.model("NetworkCheck", NetworkCheckSchema);