From 7d94afb2d8c972c49a3ebbc232e5d6b0b1f59c1e Mon Sep 17 00:00:00 2001 From: Lucas Berger Date: Sun, 14 Jun 2026 08:22:13 -0400 Subject: [PATCH] fix(11-05): WR-02 add .max(10080) to reminderLeadMinutes in both Zod schemas - eventFieldsSchema (events.ts): rejects reminderLeadMinutes > 10080 with 400 - outboxPayloadSchema (outboxWorker.ts): hard-fails row when value exceeds 1-week cap - 10080 = 1 week in minutes; matches UI select maximum --- apps/api/src/broker/outboxWorker.ts | 2 +- apps/api/src/routes/events.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/api/src/broker/outboxWorker.ts b/apps/api/src/broker/outboxWorker.ts index 822d7bd..0aced4d 100644 --- a/apps/api/src/broker/outboxWorker.ts +++ b/apps/api/src/broker/outboxWorker.ts @@ -103,7 +103,7 @@ const outboxPayloadSchema = z // null — explicit "None" → clear the VALARM on write-back // 0 — same-day all-day reminder (fire 9 AM on event date); timed 0 = None (D-06) // positive int — N minutes before event start (timed) or N/1440 days before (all-day) - reminderLeadMinutes: z.number().int().min(0).nullable().optional(), + reminderLeadMinutes: z.number().int().min(0).max(10080).nullable().optional(), }) .passthrough(); diff --git a/apps/api/src/routes/events.ts b/apps/api/src/routes/events.ts index 82d9b68..cc9b978 100644 --- a/apps/api/src/routes/events.ts +++ b/apps/api/src/routes/events.ts @@ -122,7 +122,7 @@ const eventFieldsSchema = z.object({ // null — explicit "None" → clear the VALARM on write-back // 0 — same-day all-day reminder (9 AM on event date); timed 0 = None (D-06) // positive int — N minutes before event start (timed) or N/1440 days before (all-day) - reminderLeadMinutes: z.number().int().min(0).nullable().optional(), + reminderLeadMinutes: z.number().int().min(0).max(10080).nullable().optional(), }); /** sync-status query params. */