import { z } from 'zod'; import { baseListQuerySchema } from '@/lib/api/route-helpers'; export const createReminderSchema = z.object({ title: z.string().min(1).max(300), note: z.string().max(2000).optional(), dueAt: z.string().datetime(), priority: z.enum(['low', 'medium', 'high', 'urgent']).default('medium'), assignedTo: z.string().optional(), clientId: z.string().uuid().optional(), interestId: z.string().uuid().optional(), berthId: z.string().uuid().optional(), }); export type CreateReminderInput = z.infer; export const updateReminderSchema = z.object({ title: z.string().min(1).max(300).optional(), note: z.string().max(2000).nullable().optional(), dueAt: z.string().datetime().optional(), priority: z.enum(['low', 'medium', 'high', 'urgent']).optional(), assignedTo: z.string().nullable().optional(), clientId: z.string().uuid().nullable().optional(), interestId: z.string().uuid().nullable().optional(), berthId: z.string().uuid().nullable().optional(), }); export type UpdateReminderInput = z.infer; export const snoozeReminderSchema = z.object({ snoozeUntil: z.string().datetime(), }); export type SnoozeReminderInput = z.infer; export const reminderListQuerySchema = baseListQuerySchema.extend({ status: z.enum(['pending', 'snoozed', 'completed', 'dismissed']).optional(), priority: z.enum(['low', 'medium', 'high', 'urgent']).optional(), assignedTo: z.string().optional(), clientId: z.string().uuid().optional(), interestId: z.string().uuid().optional(), berthId: z.string().uuid().optional(), dueBefore: z.string().datetime().optional(), dueAfter: z.string().datetime().optional(), }); export type ReminderListQuery = z.infer;