"""Pydantic models for API request/response schemas.""" from typing import Optional, Union from pydantic import BaseModel class ParseResponse(BaseModel): success: bool markdown: Optional[str] = None json_content: Optional[Union[dict, list]] = None images_zip: Optional[str] = None image_count: int = 0 error: Optional[str] = None pages_processed: int = 0 device_used: Optional[str] = None vlm_model: Optional[str] = None gemini_page_count: int = 0 gemini_pages: list[int] = [] class HealthResponse(BaseModel): status: str version: str model: str gemini_status: str = "unknown" images_scale: float = 2.0 class URLParseRequest(BaseModel): url: str output_format: str = "markdown" images_scale: Optional[float] = None start_page: int = 0 end_page: Optional[int] = None include_images: bool = False