from typing import Optional from pydantic import BaseModel from sqlalchemy import Column, Integer, String, Text, DateTime, Boolean, func from app.database import Base class Conversion(Base): __tablename__ = "conversions" id = Column(Integer, primary_key=True, index=True) filename = Column(String(255), nullable=False) file_type = Column(String(50)) output_format = Column(String(20), default="markdown") content = Column(Text) page_count = Column(Integer, nullable=True) llm_enabled = Column(Boolean, default=True) created_at = Column(DateTime, server_default=func.now()) class ConvertResponse(BaseModel): id: int filename: str output_format: str content: str page_count: Optional[int] = None llm_enabled: bool = True class Config: from_attributes = True class ConversionRecord(BaseModel): id: int filename: str file_type: Optional[str] = None output_format: str page_count: Optional[int] = None llm_enabled: bool = True created_at: str class Config: from_attributes = True class HealthResponse(BaseModel): status: str supported_formats: list[str] output_formats: list[str] ocr_enabled: bool = False ocr_model: Optional[str] = None