refactor(backend): split stream routes into focused modules
This commit is contained in:
29
Backend/routes/streams/schemas.ts
Normal file
29
Backend/routes/streams/schemas.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
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),
|
||||
});
|
||||
Reference in New Issue
Block a user