import { z } from 'zod'; export const ServiceRequestSchema = z.object({ id: z.string(), service: z.string(), method: z.string(), headers: z.record(z.string(), z.string()).default({}), body: z.any(), metadata: z.record(z.string(), z.any()).default({}), }); export type ServiceRequest = z.infer; export const ServiceRequestPayloadSchema = ServiceRequestSchema.omit({ metadata: true }); export type ServiceRequestPayload = z.infer; export const ServiceResponseSchema = z.object({ id: z.string(), status: z.number(), // 207 Multi-Status code: z.number().or(z.string()).default(0).optional(), ok: z.boolean(), description: z.string(), headers: z.record(z.string(), z.string()).default({}), body: z.any(), metadata: z.record(z.string(), z.any()).default({}), // done: z.boolean().optional(), // for many responses }); export type ServiceResponse = z.infer; export const ServiceResponsePayloadSchema = ServiceResponseSchema.omit({ metadata: true }); export type ServiceResponsePayload = z.infer;