refactor(backend): update reimbursement and related services

- endpoints/reimbursements.py: update reimbursement API endpoint
- schemas/reimbursement.py: update reimbursement data schemas
- services/expense_claims.py: update expense claims service
- services/ontology.py: update ontology service
- services/user_agent.py: update user agent service
This commit is contained in:
caoxiaozhu
2026-05-13 06:45:04 +00:00
parent 4db5e8ec16
commit 6317fc0ccd
5 changed files with 1154 additions and 7 deletions

View File

@@ -45,6 +45,25 @@ class ExpenseClaimItemRead(BaseModel):
updated_at: datetime
class ExpenseClaimAttachmentAnalysisRead(BaseModel):
severity: str
label: str
headline: str
summary: str
points: list[str] = Field(default_factory=list)
suggestion: str = ""
class ExpenseClaimAttachmentRead(BaseModel):
file_name: str
storage_key: str
media_type: str
size_bytes: int
uploaded_at: datetime | None = None
previewable: bool = True
analysis: ExpenseClaimAttachmentAnalysisRead | None = None
class ExpenseClaimItemUpdate(BaseModel):
item_date: date | None = None
item_type: str | None = None
@@ -54,6 +73,15 @@ class ExpenseClaimItemUpdate(BaseModel):
invoice_id: str | None = None
class ExpenseClaimItemCreate(BaseModel):
item_date: date | None = None
item_type: str | None = None
item_reason: str | None = None
item_location: str | None = None
item_amount: Decimal | None = None
invoice_id: str | None = None
class ExpenseClaimRead(BaseModel):
model_config = ConfigDict(from_attributes=True)
@@ -84,3 +112,17 @@ class ExpenseClaimActionResponse(BaseModel):
message: str
claim_id: str
status: str | None = None
class ExpenseClaimAttachmentActionResponse(BaseModel):
message: str
claim_id: str
item_id: str
invoice_id: str | None = None
attachment: ExpenseClaimAttachmentRead | None = None
class ExpenseClaimItemActionResponse(BaseModel):
message: str
claim_id: str
item_id: str