"""API response serializers.""" from __future__ import annotations from app.models import Batch, Document from app.schemas import BatchOut, DocumentOut def document_out(doc: Document) -> DocumentOut: """Map ORM document to API schema.""" return DocumentOut( id=doc.id, batch_id=doc.batch_id, filename=doc.filename, doc_type=doc.doc_type, status=doc.status, language=doc.language or "", extracted=doc.extracted, confidence=doc.confidence, issues=doc.issues or [], is_duplicate=bool(doc.is_duplicate), duplicate_of=doc.duplicate_of, error=doc.error, avg_confidence=doc.avg_confidence, created_at=doc.created_at, updated_at=doc.updated_at, ) def batch_out(batch: Batch) -> BatchOut: """Serialize batch with progress percent.""" progress = 0.0 if batch.total > 0: progress = round(100.0 * batch.processed / batch.total, 1) return BatchOut( id=batch.id, status=batch.status, total=batch.total, processed=batch.processed, failed=batch.failed, progress=progress, created_at=batch.created_at, finished_at=batch.finished_at, )