import { z } from 'zod'; export const requestStreamSchema = z.object({ cameraDeviceId: z.string().uuid(), reason: z.enum(['on_demand', 'motion_follow_up']).default('on_demand'), metadata: z.record(z.string(), z.unknown()).optional(), }); export const acceptStreamSchema = z.object({ streamKey: z.string().trim().min(1).max(255).optional(), metadata: z.record(z.string(), z.unknown()).optional(), }); export const endStreamSchema = z.object({ reason: z.enum(['completed', 'cancelled', 'failed']).default('completed'), }); export const streamParamSchema = z.object({ streamSessionId: z.string().uuid(), }); export const sfuTransportRequestSchema = z.object({ role: z.enum(['camera', 'viewer']).optional(), }); export const listSchema = z.object({ status: z.string().optional(), limit: z.coerce.number().int().min(1).max(100).default(25), });