import { createInsertSchema, createSelectSchema } from "drizzle-zod"; import * as z from "zod"; import { statusReport, statusReportStatus, statusReportUpdate, } from "./status_reports"; export const statusReportStatusSchema = z.enum(statusReportStatus); export const insertStatusReportUpdateSchema = createInsertSchema( statusReportUpdate, { status: statusReportStatusSchema, }, ).extend({ date: z.coerce.date().optional().prefault(new Date()), }); export const insertStatusReportSchema = createInsertSchema(statusReport, { status: statusReportStatusSchema, }) .extend({ date: z.coerce.date().optional().prefault(new Date()), /** * relationship to monitors and pages */ monitors: z.number().array().optional().prefault([]), }) .extend({ /** * message for the `InsertIncidentUpdate` */ message: z.string(), }); export const selectStatusReportSchema = createSelectSchema(statusReport, { status: statusReportStatusSchema, }); export const selectStatusReportUpdateSchema = createSelectSchema( statusReportUpdate, { status: statusReportStatusSchema, }, ); export type InsertStatusReport = z.infer; export type StatusReport = z.infer; export type InsertStatusReportUpdate = z.infer< typeof insertStatusReportUpdateSchema >; export type StatusReportUpdate = z.infer; export type StatusReportStatus = z.infer;