Files
shanxia2.0/backend/app/schemas/bx/invoice.py
T
zlwuandCursor 6c2121d7fc fix(bx): 发票夹多附件一次入账并优化查看列表展示
一次上传多个文件只创建一条发票与额度流水;管理端/我的发票夹查看列表改为缩略图附件,并调整弹窗与列宽。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 21:42:30 +08:00

65 lines
1.9 KiB
Python

from typing import List, Optional
from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
from app.schemas.bx.common import DatetimeToStr, OptDatetimeToStr
class WalletSummaryOut(BaseModel):
model_config = ConfigDict(from_attributes=True, populate_by_name=True, alias_generator=to_camel)
id: str
owner_user_id: str
owner_user_name: str
total_amount: float
used_amount: float
balance: float
invoice_count: int
version: int
create_time: Optional[DatetimeToStr] = None
update_time: OptDatetimeToStr = None
class LedgerOut(BaseModel):
model_config = ConfigDict(from_attributes=True, populate_by_name=True, alias_generator=to_camel)
id: str
owner_user_id: str
entry_type: str
amount: float
invoice_id: Optional[str] = None
reimburse_id: Optional[str] = None
ref_ledger_id: Optional[str] = None
remark: Optional[str] = None
create_time: DatetimeToStr
class InvoiceAttachmentOut(BaseModel):
model_config = ConfigDict(from_attributes=True, populate_by_name=True, alias_generator=to_camel)
id: str
file_name: Optional[str] = None
file_path: Optional[str] = None
file_type: Optional[str] = None
class InvoiceOut(BaseModel):
model_config = ConfigDict(from_attributes=True, populate_by_name=True, alias_generator=to_camel)
id: str
owner_user_id: str
owner_user_name: str
amount: float
upload_by: Optional[str] = None
upload_by_name: Optional[str] = None
remark: Optional[str] = None
create_time: DatetimeToStr
update_time: OptDatetimeToStr = None
# 兼容旧前端:取首个附件
attachment_id: Optional[str] = None
file_name: Optional[str] = None
file_path: Optional[str] = None
file_type: Optional[str] = None
attachments: List[InvoiceAttachmentOut] = Field(default_factory=list)