import { z } from "zod"; import zodToCamelCase from "zod-to-camel-case"; import { _stateSchema, newState, publishedState, timestampsSchema, } from "@/schema/public/components/base/base.schema"; export const videoSchema = timestampsSchema.extend({ video_id: z.number(), video_uid: z.string().nullable(), mux_playback_id: z.string().nullable(), signed: z.boolean(), signed_stream_id: z.string().nullable(), ingest_id: z.string().nullable(), text_track_id: z.string().nullable(), caption_id: z.number().nullable(), title: z.string().nullable(), description: z.string().nullable(), url: z.string().nullable(), _cohort: z.string(), _state: _stateSchema, _deleted: z.boolean(), video_object: z.record(z.string(), z.unknown()), mux_asset_id: z.string().nullable(), _release_id: z.number().nullable(), deprecated_fields: z.record(z.string(), z.unknown()).nullable(), tpc_media_ids: z.unknown().nullable(), tpc_works_ids: z.unknown().nullable(), }); export type Video = z.infer; export const videoNewSchema = videoSchema.extend({ _state: newState, }); export type VideoNew = z.infer; export const videoPublishedSchema = videoSchema.extend({ _state: publishedState, }); export type VideoPublished = z.infer; export const videoSchemaCamel = zodToCamelCase(videoSchema); export type VideoCamel = z.infer; export const videoNewSchemaCamel = zodToCamelCase(videoNewSchema); export type VideoNewCamel = z.infer; export const videoPublishedSchemaCamel = zodToCamelCase(videoPublishedSchema); export type VideoPublishedCamel = z.infer;