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列表") 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