use serde_json::{Map, Value}; use crate::{ GeminiVideoTaskSeed, LocalVideoTaskReadResponse, LocalVideoTaskRegistryMutation, LocalVideoTaskSnapshot, OpenAiVideoTaskSeed, }; pub trait VideoTaskStore: std::fmt::Debug + Send + Sync { fn insert(&self, snapshot: LocalVideoTaskSnapshot); fn read_openai(&self, task_id: &str) -> Option; fn read_gemini(&self, short_id: &str) -> Option; fn clone_openai(&self, task_id: &str) -> Option; fn clone_gemini(&self, short_id: &str) -> Option; fn list_active_snapshots(&self, limit: usize) -> Vec; fn apply_mutation(&self, mutation: LocalVideoTaskRegistryMutation); fn project_openai(&self, task_id: &str, provider_body: &Map) -> bool; fn project_gemini(&self, short_id: &str, provider_body: &Map) -> bool; }