fix ocr
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from pydantic import BaseModel
|
||||
from app.schemas.base import CamelModel
|
||||
|
||||
|
||||
class AnalysisStatusOut(BaseModel):
|
||||
class AnalysisStatusOut(CamelModel):
|
||||
case_id: str
|
||||
status: str
|
||||
progress: int = 0
|
||||
@@ -9,6 +9,6 @@ class AnalysisStatusOut(BaseModel):
|
||||
message: str = ""
|
||||
|
||||
|
||||
class AnalysisTriggerOut(BaseModel):
|
||||
class AnalysisTriggerOut(CamelModel):
|
||||
task_id: str
|
||||
message: str
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.models.assessment import ConfidenceLevel, ReviewStatus
|
||||
from app.schemas.base import CamelModel
|
||||
from app.schemas.transaction import TransactionOut
|
||||
|
||||
|
||||
class AssessmentOut(BaseModel):
|
||||
class AssessmentOut(CamelModel):
|
||||
id: UUID
|
||||
case_id: UUID
|
||||
transaction_id: UUID
|
||||
@@ -21,19 +20,17 @@ class AssessmentOut(BaseModel):
|
||||
reviewed_by: str
|
||||
reviewed_at: datetime | None = None
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class AssessmentListOut(BaseModel):
|
||||
class AssessmentListOut(CamelModel):
|
||||
items: list[AssessmentOut]
|
||||
total: int
|
||||
|
||||
|
||||
class ReviewSubmit(BaseModel):
|
||||
class ReviewSubmit(CamelModel):
|
||||
review_status: ReviewStatus
|
||||
review_note: str = ""
|
||||
reviewed_by: str = "demo_user"
|
||||
|
||||
|
||||
class InquirySuggestionOut(BaseModel):
|
||||
class InquirySuggestionOut(CamelModel):
|
||||
suggestions: list[str]
|
||||
|
||||
15
backend/app/schemas/base.py
Normal file
15
backend/app/schemas/base.py
Normal file
@@ -0,0 +1,15 @@
|
||||
"""Base schema with camelCase JSON serialization."""
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
def to_camel(s: str) -> str:
|
||||
parts = s.split("_")
|
||||
return parts[0] + "".join(p.capitalize() for p in parts[1:])
|
||||
|
||||
|
||||
class CamelModel(BaseModel):
|
||||
model_config = ConfigDict(
|
||||
from_attributes=True,
|
||||
alias_generator=to_camel,
|
||||
populate_by_name=True,
|
||||
)
|
||||
@@ -1,26 +1,25 @@
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.models.case import CaseStatus
|
||||
from app.schemas.base import CamelModel
|
||||
|
||||
|
||||
class CaseCreate(BaseModel):
|
||||
class CaseCreate(CamelModel):
|
||||
case_no: str
|
||||
title: str
|
||||
victim_name: str
|
||||
handler: str = ""
|
||||
|
||||
|
||||
class CaseUpdate(BaseModel):
|
||||
class CaseUpdate(CamelModel):
|
||||
title: str | None = None
|
||||
victim_name: str | None = None
|
||||
handler: str | None = None
|
||||
status: CaseStatus | None = None
|
||||
|
||||
|
||||
class CaseOut(BaseModel):
|
||||
class CaseOut(CamelModel):
|
||||
id: UUID
|
||||
case_no: str
|
||||
title: str
|
||||
@@ -32,9 +31,7 @@ class CaseOut(BaseModel):
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class CaseListOut(BaseModel):
|
||||
class CaseListOut(CamelModel):
|
||||
items: list[CaseOut]
|
||||
total: int
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.models.evidence_image import SourceApp, PageType, OcrStatus
|
||||
from app.schemas.base import CamelModel
|
||||
|
||||
|
||||
class ImageOut(BaseModel):
|
||||
class ImageOut(CamelModel):
|
||||
id: UUID
|
||||
case_id: UUID
|
||||
url: str = ""
|
||||
@@ -17,24 +16,25 @@ class ImageOut(BaseModel):
|
||||
file_hash: str
|
||||
uploaded_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class OcrBlockOut(BaseModel):
|
||||
class OcrBlockOut(CamelModel):
|
||||
id: UUID
|
||||
content: str
|
||||
bbox: dict
|
||||
seq_order: int
|
||||
confidence: float
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class ImageDetailOut(ImageOut):
|
||||
ocr_blocks: list[OcrBlockOut] = []
|
||||
|
||||
|
||||
class OcrFieldCorrection(BaseModel):
|
||||
class OcrFieldCorrection(CamelModel):
|
||||
field_name: str
|
||||
old_value: str
|
||||
new_value: str
|
||||
|
||||
|
||||
class CaseOcrStartIn(CamelModel):
|
||||
include_done: bool = False
|
||||
image_ids: list[UUID] = []
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.models.report import ReportType
|
||||
from app.schemas.base import CamelModel
|
||||
|
||||
|
||||
class ReportCreate(BaseModel):
|
||||
class ReportCreate(CamelModel):
|
||||
report_type: ReportType
|
||||
include_summary: bool = True
|
||||
include_transactions: bool = True
|
||||
@@ -17,7 +16,7 @@ class ReportCreate(BaseModel):
|
||||
include_screenshots: bool = False
|
||||
|
||||
|
||||
class ReportOut(BaseModel):
|
||||
class ReportOut(CamelModel):
|
||||
id: UUID
|
||||
case_id: UUID
|
||||
report_type: ReportType
|
||||
@@ -25,9 +24,7 @@ class ReportOut(BaseModel):
|
||||
version: int
|
||||
created_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class ReportListOut(BaseModel):
|
||||
class ReportListOut(CamelModel):
|
||||
items: list[ReportOut]
|
||||
total: int
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.models.evidence_image import SourceApp
|
||||
from app.models.transaction import Direction
|
||||
from app.schemas.base import CamelModel
|
||||
|
||||
|
||||
class TransactionOut(BaseModel):
|
||||
class TransactionOut(CamelModel):
|
||||
id: UUID
|
||||
case_id: UUID
|
||||
source_app: SourceApp
|
||||
@@ -25,21 +24,19 @@ class TransactionOut(BaseModel):
|
||||
is_duplicate: bool
|
||||
is_transit: bool
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
|
||||
class TransactionListOut(BaseModel):
|
||||
class TransactionListOut(CamelModel):
|
||||
items: list[TransactionOut]
|
||||
total: int
|
||||
|
||||
|
||||
class FlowNodeOut(BaseModel):
|
||||
class FlowNodeOut(CamelModel):
|
||||
id: str
|
||||
label: str
|
||||
type: str
|
||||
|
||||
|
||||
class FlowEdgeOut(BaseModel):
|
||||
class FlowEdgeOut(CamelModel):
|
||||
source: str
|
||||
target: str
|
||||
amount: float
|
||||
@@ -47,6 +44,6 @@ class FlowEdgeOut(BaseModel):
|
||||
trade_time: str
|
||||
|
||||
|
||||
class FlowGraphOut(BaseModel):
|
||||
class FlowGraphOut(CamelModel):
|
||||
nodes: list[FlowNodeOut]
|
||||
edges: list[FlowEdgeOut]
|
||||
|
||||
Reference in New Issue
Block a user