diff --git a/surfsense_web/contracts/types/podcast.types.ts b/surfsense_web/contracts/types/podcast.types.ts new file mode 100644 index 000000000..a1e091214 --- /dev/null +++ b/surfsense_web/contracts/types/podcast.types.ts @@ -0,0 +1,29 @@ +import { z } from "zod"; + +export const podcast = z.object({ + id: z.number(), + title: z.string(), + created_at: z.string(), + file_location: z.string(), + podcast_transcript: z.array(z.any()), + search_space_id: z.number(), + chat_state_version: z.number().nullable(), +}); + +export const generatePodcastRequest = z.object({ + type: z.enum(["CHAT", "DOCUMENT"]), + ids: z.array(z.number()), + search_space_id: z.number(), + podcast_title: z.string().optional(), + user_prompt: z.string().optional(), +}); + +export const getPodcastByChatIdRequest = z.object({ + chat_id: z.number(), +}); + +export type GeneratePodcastRequest = z.infer; +export type GetPodcastByChatIdRequest = z.infer< + typeof getPodcastByChatIdRequest +>; +export type Podcast = z.infer;