use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use super::enums::*;
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct ExportDocumentResponse {
pub filename: String,
pub md_content: Option<String>,
pub json_content: Option<serde_json::Value>,
pub html_content: Option<String>,
pub text_content: Option<String>,
pub doctags_content: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct ErrorItem {
pub component_type: DoclingComponentType,
pub module_name: String,
pub error_message: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct ProfilingItem {
pub scope: ProfilingScope,
#[serde(default)]
pub count: i64,
#[serde(default)]
pub times: Vec<f64>,
#[serde(default)]
pub start_timestamps: Vec<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct ConvertDocumentResponse {
pub document: ExportDocumentResponse,
pub status: ConversionStatus,
#[serde(default)]
pub errors: Vec<ErrorItem>,
pub processing_time: f64,
#[serde(default)]
pub timings: HashMap<String, ProfilingItem>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct PresignedUrlConvertDocumentResponse {
pub processing_time: f64,
pub num_converted: i64,
pub num_succeeded: i64,
pub num_failed: i64,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct TaskProcessingMeta {
pub num_docs: i64,
#[serde(default)]
pub num_processed: i64,
#[serde(default)]
pub num_succeeded: i64,
#[serde(default)]
pub num_failed: i64,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct TaskStatusResponse {
pub task_id: String,
pub task_type: TaskType,
pub task_status: String,
pub task_position: Option<i64>,
pub task_meta: Option<TaskProcessingMeta>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct HealthCheckResponse {
#[serde(default = "default_health_status")]
pub status: String,
}
fn default_health_status() -> String {
"ok".to_string()
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct ValidationErrorDetail {
pub loc: Vec<serde_json::Value>,
pub msg: String,
#[serde(rename = "type")]
pub error_type: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct HttpValidationError {
#[serde(default)]
pub detail: Vec<ValidationErrorDetail>,
}