| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- from datetime import datetime
- from typing import Optional
- from pydantic import BaseModel, ConfigDict, Field
- class IssueQuotaTargetSchema(BaseModel):
- """发放明细"""
- owner_type: str = Field(
- description="owner类型: EMPLOYEE(支付宝id)/PHONE(手机号)/ENTERPRISE_PAY_UID(员工企业码id)"
- )
- owner_id: str = Field(description="owner ID")
- quota: float = Field(description="发放额度")
- amount: Optional[float] = Field(default=None, description="面额")
- class ExpenseQuotaCreateSchema(BaseModel):
- """创建余额/点券请求 (alipay.ebpp.invoice.expensecontrol.quota.create)"""
- target_type: str = Field(
- description="额度维度 (必填): INSTITUTION(制度维度)/EXPENSE_TYPE(费用类型维度)"
- )
- target_id: str = Field(description="额度维度ID (必填)")
- enterprise_id: str = Field(description="企业ID (必填)")
- effective_start_date: Optional[datetime] = Field(default=None, description="额度生效时间")
- effective_end_date: Optional[datetime] = Field(default=None, description="额度失效时间")
- outer_source_id: Optional[str] = Field(default=None, description="外部幂等id")
- quota_type: Optional[str] = Field(
- default="CAP", description="额度类型: COUPON(点券)/CAP(余额)/COUNT(次卡)"
- )
- share_mode: Optional[str] = Field(
- default="0", description="是否可转增: 0(不可转增)/1(可转增)"
- )
- issue_name: Optional[str] = Field(default=None, max_length=20, description="发放名称")
- issue_desc: Optional[str] = Field(default=None, max_length=200, description="发放描述")
- issue_quota_target_list: Optional[list[IssueQuotaTargetSchema]] = Field(
- default=None, description="发放明细列表"
- )
- class QuotaCreateSchema(BaseModel):
- """创建额度请求 (本地)"""
- employee_id: str = Field(description="员工ID")
- institution_id: str = Field(description="制度ID")
- total_amount: float = Field(description="总金额")
- available_amount: Optional[float] = Field(default=None, description="可用金额")
- valid_from: Optional[datetime] = Field(default=None, description="有效期开始")
- valid_to: Optional[datetime] = Field(default=None, description="有效期结束")
- class QuotaUpdateSchema(BaseModel):
- """更新额度请求"""
- total_amount: Optional[float] = Field(default=None, description="总金额")
- available_amount: Optional[float] = Field(default=None, description="可用金额")
- valid_from: Optional[datetime] = Field(default=None, description="有效期开始")
- valid_to: Optional[datetime] = Field(default=None, description="有效期结束")
- class ExpenseQuotaModifySchema(BaseModel):
- """修改余额/点券请求 (alipay.ebpp.invoice.expensecontrol.quota.modify)"""
- quota_id: str = Field(description="额度ID (必填)")
- action: str = Field(
- description="变更模式 (必填): ADD(增加额度)/DEDUCT(减少额度)/MODIFY_SHARE_MODE(修改转赠属性)"
- )
- outer_source_id: str = Field(description="外部操作幂等ID (必填)")
- enterprise_id: str = Field(description="企业ID (必填)")
- amount: Optional[float] = Field(default=None, description="变更金额")
- share_mode: Optional[str] = Field(
- default=None, description="是否可转增: 0(不可转增)/1(可转增)"
- )
- class ExpenseQuotaDeleteSchema(BaseModel):
- """删除额度请求 (alipay.ebpp.invoice.expensecontrol.quota.delete)"""
- enterprise_id: str = Field(description="企业ID (必填)")
- quota_id: Optional[str] = Field(default=None, description="额度ID")
- issue_batch_id: Optional[str] = Field(default=None, description="发放批次ID")
- class ExpenseQuotaQuerySchema(BaseModel):
- """查询余额/点券请求"""
- owner_type: str = Field(
- description="额度所属者类型 (必填): EMPLOYEE(支付宝id)/ENTERPRISE_PAY_UID(企业码id)/PHONE(手机号)"
- )
- page_size: int = Field(default=20, description="每页条数")
- page_num: int = Field(default=1, description="页码")
- target_type: Optional[str] = Field(
- default=None, description="额度维度: EXPENSE_TYPE/RULE_GROUP_AGGREGATION/INSTITUTION"
- )
- target_id: Optional[str] = Field(default=None, description="额度维度ID")
- owner_id: Optional[str] = Field(default=None, description="额度所属者ID")
- owner_open_id: Optional[str] = Field(default=None, description="额度所属者开放ID")
- enterprise_id: Optional[str] = Field(default=None, description="企业ID")
- quota_id_list: Optional[list[str]] = Field(default=None, description="额度ID列表")
- quota_type: Optional[str] = Field(default=None, description="额度类型: COUPON/CAP")
- class QuotaDetailInfoSchema(BaseModel):
- """额度详细信息"""
- quota_id: Optional[str] = Field(default=None, description="额度ID")
- target_type: Optional[str] = Field(default=None, description="额度维度")
- target_id: Optional[str] = Field(default=None, description="额度维度ID")
- quota_type: Optional[str] = Field(default=None, description="额度类型")
- owner_type: Optional[str] = Field(default=None, description="额度所属者类型")
- owner_id: Optional[str] = Field(default=None, description="额度所属者ID")
- owner_open_id: Optional[str] = Field(default=None, description="额度所属者开放ID")
- total_amount: Optional[float] = Field(default=None, description="总金额")
- available_amount: Optional[float] = Field(default=None, description="可用金额")
- frozen_amount: Optional[float] = Field(default=None, description="冻结金额")
- consumed_amount: Optional[float] = Field(default=None, description="已消费金额")
- effective_start_date: Optional[str] = Field(default=None, description="生效开始时间")
- effective_end_date: Optional[str] = Field(default=None, description="生效结束时间")
- status: Optional[str] = Field(default=None, description="状态")
- class ExpenseQuotaQueryOutSchema(BaseModel):
- """查询余额/点券响应"""
- page_size: int = Field(description="每页条数")
- page_num: int = Field(description="页码")
- total_page_count: int = Field(description="总页数")
- total_count: Optional[int] = Field(default=None, description="总记录数")
- quota_detail_info_list: Optional[list[QuotaDetailInfoSchema]] = Field(
- default=None, description="额度详细信息列表"
- )
- class QuotaOutSchema(BaseModel):
- """额度响应模型"""
- model_config = ConfigDict(from_attributes=True)
- id: int = Field(description="主键ID")
- quota_id: Optional[str] = Field(default=None, description="额度ID")
- target_type: Optional[str] = Field(default=None, description="额度维度")
- target_id: Optional[str] = Field(default=None, description="额度维度ID")
- quota_type: Optional[str] = Field(default=None, description="额度类型")
- employee_id: Optional[str] = Field(default=None, description="员工ID")
- institution_id: Optional[str] = Field(default=None, description="制度ID")
- out_biz_no: Optional[str] = Field(default=None, description="外部业务编号")
- total_amount: Optional[float] = Field(default=None, description="总金额")
- available_amount: Optional[float] = Field(default=None, description="可用金额")
- frozen_amount: Optional[float] = Field(default=None, description="冻结金额")
- valid_from: Optional[datetime] = Field(default=None, description="有效期开始")
- valid_to: Optional[datetime] = Field(default=None, description="有效期结束")
- status: str = Field(description="状态")
- created_time: Optional[datetime] = Field(default=None, description="创建时间")
- updated_time: Optional[datetime] = Field(default=None, description="更新时间")
- class QuotaListOutSchema(BaseModel):
- """额度列表响应"""
- model_config = ConfigDict(from_attributes=True)
- id: int = Field(description="主键ID")
- quota_id: Optional[str] = Field(default=None, description="额度ID")
- target_type: Optional[str] = Field(default=None, description="额度维度")
- target_id: Optional[str] = Field(default=None, description="额度维度ID")
- quota_type: Optional[str] = Field(default=None, description="额度类型")
- employee_id: Optional[str] = Field(default=None, description="员工ID")
- institution_id: Optional[str] = Field(default=None, description="制度ID")
- total_amount: Optional[float] = Field(default=None, description="总金额")
- available_amount: Optional[float] = Field(default=None, description="可用金额")
- status: str = Field(description="状态")
- created_time: Optional[datetime] = Field(default=None, description="创建时间")
- class QuotaOperationOutSchema(BaseModel):
- """额度操作响应"""
- model_config = ConfigDict(from_attributes=True)
- out_biz_no: Optional[str] = Field(default=None, description="外部业务编号")
- quota_id: Optional[str] = Field(default=None, description="额度ID")
- result: Optional[bool] = Field(default=None, description="操作结果")
|