from datetime import datetime from typing import Optional from pydantic import BaseModel, ConfigDict, Field class FacetofaceApplySchema(BaseModel): """当面付开通申请请求""" enterprise_id: str = Field(description="关联企业ID") merchant_name: str = Field(description="商户名称") shop_name: str = Field(description="店铺名称") shop_address: str = Field(description="店铺地址") mcc_code: str = Field(description="商户类别码") rate: str = Field(description="费率,如 0.006") business_license_no: str = Field(description="营业执照号") business_license_mobile: Optional[str] = Field(default=None, description="联系手机号") sign_and_auth: bool = Field(default=False, description="是否同时获取商家授权") remark: Optional[str] = Field(default=None, description="备注") class FacetofaceOrderOutSchema(BaseModel): """当面付申请单详情响应""" model_config = ConfigDict(from_attributes=True) id: int = Field(description="主键ID") enterprise_id: Optional[str] = Field(default=None, description="关联企业ID") batch_no: Optional[str] = Field(default=None, description="事务编号") order_no: Optional[str] = Field(default=None, description="申请单号") order_status: str = Field(description="申请单状态") merchant_name: Optional[str] = Field(default=None, description="商户名称") shop_name: Optional[str] = Field(default=None, description="店铺名称") shop_address: Optional[str] = Field(default=None, description="店铺地址") mcc_code: Optional[str] = Field(default=None, description="商户类别码") rate: Optional[str] = Field(default=None, description="费率") business_license_no: Optional[str] = Field(default=None, description="营业执照号") business_license_mobile: Optional[str] = Field(default=None, description="联系手机号") sign_and_auth: bool = Field(default=False, description="是否同时获取授权") shop_scene_pic_path: Optional[str] = Field(default=None, description="店铺场景照片") shop_sign_board_pic_path: Optional[str] = Field(default=None, description="店铺招牌照片") business_license_pic_path: Optional[str] = Field(default=None, description="营业执照照片") confirm_url: Optional[str] = Field(default=None, description="商家确认链接") app_auth_token: Optional[str] = Field(default=None, description="商家授权token") reject_reason: Optional[str] = Field(default=None, description="驳回原因") remark: Optional[str] = Field(default=None, description="备注") last_query_time: Optional[datetime] = Field(default=None, description="最后查询时间") next_query_time: Optional[datetime] = Field(default=None, description="下次查询时间") query_count: int = Field(default=0, description="已查询次数") created_time: datetime = Field(description="创建时间") updated_time: datetime = Field(description="更新时间") class FacetofaceOrderListOutSchema(BaseModel): """当面付申请单列表响应""" model_config = ConfigDict(from_attributes=True) id: int = Field(description="主键ID") enterprise_id: Optional[str] = Field(default=None, description="关联企业ID") batch_no: Optional[str] = Field(default=None, description="事务编号") order_status: str = Field(description="申请单状态") merchant_name: Optional[str] = Field(default=None, description="商户名称") shop_name: Optional[str] = Field(default=None, description="店铺名称") rate: Optional[str] = Field(default=None, description="费率") confirm_url: Optional[str] = Field(default=None, description="商家确认链接") reject_reason: Optional[str] = Field(default=None, description="驳回原因") created_time: datetime = Field(description="创建时间") updated_time: datetime = Field(description="更新时间")