AI-markdown/services/unlimited-ocr-service/app/models/ConvertModel.py

51 lines
1.2 KiB
Python

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