feat: api v1 routes for calendar lists and notes

This commit is contained in:
ginnoir
2026-07-04 19:03:08 -05:00
parent ea5d1d050c
commit d4304b005c
25 changed files with 1141 additions and 236 deletions
+31
View File
@@ -0,0 +1,31 @@
import { z } from "zod";
export const listInput = z.object({
type: z.string().trim().min(1).max(80),
name: z.string().trim().min(1).max(120),
});
export const listUpdateInput = z.object({
name: listInput.shape.name.optional(),
archived: z.boolean().optional(),
});
export const itemInput = z.object({
listId: z.string().uuid(),
text: z.string().trim().min(1).max(300),
qty: z.string().trim().max(80).nullable().optional(),
notes: z.string().trim().max(2000).nullable().optional(),
dueAt: z.coerce.date().nullable().optional(),
assigneeId: z.string().uuid().nullable().optional(),
metadata: z.record(z.string(), z.unknown()).nullable().optional(),
});
export const updateItemInput = z.object({
id: z.string().uuid(),
text: z.string().trim().min(1).max(300).optional(),
qty: z.string().trim().max(80).nullable().optional(),
notes: z.string().trim().max(2000).nullable().optional(),
dueAt: z.coerce.date().nullable().optional(),
assigneeId: z.string().uuid().nullable().optional(),
done: z.boolean().optional(),
});