import { z } from "zod"; import zodToCamelCase from "zod-to-camel-case"; import { timestampsSchema } from "@/schema/public/components/base/base.schema"; export const entityStatusSchema = z.enum([ "api_neutral", "api_queued", "api_in_progress", "api_failed", "ingest_in_progress", "ingest_failed", "ingest_complete", ]); export type EntityStatus = z.infer; export const entityTypeSchema = z.enum([ "lesson", "quiz", "worksheet_answers", "downloadable_file", "supplementary_resource", "worksheet", "slidedeck", "lesson_guide", "media_clip", "video", "videocaption", ]); export type EntityType = z.infer; export const entityStateSchema = timestampsSchema.extend({ entity_id: z.number(), entity_type: entityTypeSchema, entity_status: entityStatusSchema.default("api_neutral"), last_error_location: z.string().nullable(), last_error_message: z.string().nullable(), last_error_timestamp: z.string().nullable(), last_ingest_id: z.uuid().nullable(), }); export type EntityState = z.infer; export const entityStateSchemaCamel = zodToCamelCase(entityStateSchema); export type EntityStateCamel = z.infer;