use serde::{Deserialize, Serialize};
pub const VENICE_SD35: &str = "venice-sd35";
pub const Z_IMAGE_TURBO: &str = "z-image-turbo";
pub const QWEN_IMAGE: &str = "qwen-image";
pub const FLUX_2_PRO: &str = "flux-2-pro";
pub const HUNYUAN_IMAGE_V3: &str = "hunyuan-image-v3";
#[derive(Debug, Clone, Copy, Default, Deserialize, Serialize)]
pub struct ImageGenerationTiming {
#[serde(default)]
pub inference_duration: f64,
#[serde(default, rename = "inferencePreprocessingTime")]
pub inference_preprocessing_time: f64,
#[serde(default, rename = "inferenceQueueTime")]
pub inference_queue_time: f64,
#[serde(default)]
pub total: f64,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct ImageGenerationResponse {
pub id: String,
pub images: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timing: Option<ImageGenerationTiming>,
}