37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
from pydantic import BaseModel, Field, EmailStr
|
|
from typing import Optional, List, Union
|
|
|
|
|
|
class SendEmailRequest(BaseModel):
|
|
receipt_id: Optional[int] = Field(None, description="付款凭证ID")
|
|
email: EmailStr = Field(..., description="邮箱地址")
|
|
subject: Optional[str] = Field(None, description="邮件主题")
|
|
body: str = Field(..., description="文案内容")
|
|
file_urls: Optional[List[str]] = Field(None, description="附件URL列表")
|
|
file_url: Optional[Union[str, List[str]]] = Field(None, description="附件URL或列表(兼容前端传参)")
|
|
status: Optional[str] = Field(None, description="开票状态标记: success|invoiced|rejected|refunded")
|
|
|
|
|
|
class SendEmailBody(BaseModel):
|
|
data: SendEmailRequest
|
|
|
|
|
|
class SendEmailResponse(BaseModel):
|
|
status: str
|
|
log_id: Optional[int] = None
|
|
error: Optional[str] = None
|
|
|
|
|
|
class EmailSendLogOut(BaseModel):
|
|
id: int
|
|
email: str
|
|
subject: Optional[str]
|
|
body_summary: Optional[str]
|
|
file_name: Optional[str]
|
|
file_url: Optional[str]
|
|
status: str
|
|
|
|
|
|
class SendEmailBody(BaseModel):
|
|
data: SendEmailRequest
|