This commit is contained in:
Alex Holliday committed 2026-02-04 22:55:54 +00:00
1 parent dc0e198a8e
commit f0b152fc8f
10 files changed
+142 -72

No files matched your search

+8 -1
View File
@@ -1,5 +1,5 @@
import { Schema, model, type Types } from "mongoose";
import type { MaintenanceWindow } from "@/types/maintenanceWindow.js";
import type { MaintenanceWindow, DurationUnit } from "@/types/maintenanceWindow.js";
type MaintenanceWindowDocumentBase = Omit<MaintenanceWindow, "id" | "monitorId" | "teamId" | "start" | "end" | "createdAt" | "updatedAt"> & {
monitorId: Types.ObjectId;
@@ -34,6 +34,13 @@ const MaintenanceWindowSchema = new Schema<MaintenanceWindowDocument>(
name: {
type: String,
},
duration: {
type: Number,
},
durationUnit: {
type: String,
enum: ["seconds", "minutes", "hours", "days"],
},
repeat: {
type: Number,
},
@@ -33,6 +33,8 @@ class MongoMaintenanceWindowsRepository implements IMaintenanceWindowsRepository
teamId: this.toStringId(doc.teamId),
active: doc.active,
name: doc.name,
duration: doc.duration,
durationUnit: doc.durationUnit,
repeat: doc.repeat,
start: this.toDateString(doc.start),
end: this.toDateString(doc.end),
+4
View File
@@ -1,9 +1,13 @@
export type DurationUnit = "seconds" | "minutes" | "hours" | "days";
export interface MaintenanceWindow {
id: string;
monitorId: String;
teamId: string;
active: boolean;
name: string;
duration: number;
durationUnit: DurationUnit;
repeat: number;
start: string;
end: string;
+4
View File
@@ -364,6 +364,8 @@ const createMaintenanceWindowBodyValidation = joi.object({
monitors: joi.array().items(joi.string()).required(),
name: joi.string().required(),
active: joi.boolean(),
duration: joi.number().required(),
durationUnit: joi.string().valid("seconds", "minutes", "hours", "days").required(),
start: joi.date().required(),
end: joi.date().required(),
repeat: joi.number().required(),
@@ -402,6 +404,8 @@ const editMaintenanceByIdWindowBodyValidation = joi.object({
end: joi.date(),
expiry: joi.date(),
monitors: joi.array(),
duration: joi.number(),
durationUnit: joi.string().valid("seconds", "minutes", "hours", "days"),
});
//****************************************