order_event.py 953 B

123456789101112131415161718192021222324252627
  1. from pydantic import BaseModel, Field
  2. from datetime import datetime
  3. from typing import Optional
  4. # 基础字段
  5. class VasOrderEventBase(BaseModel):
  6. order_no: str = Field(..., max_length=100, description="订单编号")
  7. event_title: str = Field(..., max_length=255, description="事件标题")
  8. event_message: Optional[str] = Field(None, description="事件详情内容")
  9. email_uid: int = Field(..., description="邮件唯一UID")
  10. event_time: Optional[datetime] = Field(None, description="事件发生时间")
  11. # 创建时使用的 Schema
  12. class VasOrderEventCreate(VasOrderEventBase):
  13. order_no: Optional[str] = None
  14. alias_email: Optional[str] = None
  15. # API 返回时使用的 Schema
  16. class VasOrderEventOut(VasOrderEventBase):
  17. id: int
  18. order_no: str
  19. created_at: datetime
  20. class Config:
  21. # Pydantic V2 使用 from_attributes = True
  22. # Pydantic V1 使用 orm_mode = True
  23. from_attributes = True