import { z } from "zod"; // Base URL validation schema const baseUrlSchema = z.object({ scheme: z.literal("timesafari"), path: z.string(), queryParams: z.record(z.string()).optional() }); // Parameter validation schemas for each route type export const deepLinkSchemas = { claim: z.object({ id: z.string().min(1), view: z.enum(["details", "certificate", "raw"]).optional() }), contact: z.object({ did: z.string().regex(/^did:/), action: z.enum(["edit", "import"]).optional(), jwt: z.string().optional() }), project: z.object({ id: z.string().min(1), view: z.enum(["details", "edit"]).optional() }), invite: z.object({ jwt: z.string().min(1), type: z.enum(["one", "many"]).optional() }), gift: z.object({ id: z.string().min(1), action: z.enum(["confirm", "details"]).optional() }), offer: z.object({ id: z.string().min(1), view: z.enum(["details"]).optional() }) }; export type DeepLinkParams = { [K in keyof typeof deepLinkSchemas]: z.infer; };