|
|
@@ -247,6 +247,43 @@ class MarketProtocolAttachmentsBody(BaseModel):
|
|
|
)
|
|
|
|
|
|
|
|
|
+class MarketProtocolPaymentScheduleBody(BaseModel):
|
|
|
+ model_config = ConfigDict(extra='forbid', populate_by_name=True)
|
|
|
+
|
|
|
+ id: Optional[str] = None
|
|
|
+ schedule_no: Optional[int] = Field(None, alias='scheduleNo')
|
|
|
+ due_amount: Optional[float] = Field(None, alias='dueAmount')
|
|
|
+ due_date: Optional[str] = Field(None, alias='dueDate')
|
|
|
+ schedule_status: Optional[str] = Field(None, alias='scheduleStatus')
|
|
|
+ transfers: Optional[List[dict]] = None
|
|
|
+
|
|
|
+
|
|
|
+class MarketProtocolSamplePaymentBody(BaseModel):
|
|
|
+ model_config = ConfigDict(extra='forbid', populate_by_name=True)
|
|
|
+
|
|
|
+ id: Optional[str] = None
|
|
|
+ sample_code: str = Field(..., min_length=1, alias='sampleCode')
|
|
|
+ protocol_sample_id: Optional[str] = Field(None, alias='protocolSampleId')
|
|
|
+ pay_mode: str = Field(..., alias='payMode')
|
|
|
+ contract_amount: Optional[float] = Field(None, alias='contractAmount')
|
|
|
+ lump_sum_deadline: Optional[str] = Field(None, alias='lumpSumDeadline')
|
|
|
+ installment_count: Optional[int] = Field(None, alias='installmentCount')
|
|
|
+ installment_interval_months: Optional[float] = Field(
|
|
|
+ None, alias='installmentIntervalMonths'
|
|
|
+ )
|
|
|
+ installment_start_date: Optional[str] = Field(
|
|
|
+ None, alias='installmentStartDate'
|
|
|
+ )
|
|
|
+ installment_advance_days: Optional[int] = Field(
|
|
|
+ None, alias='installmentAdvanceDays'
|
|
|
+ )
|
|
|
+ installment_ratios: Optional[List[float]] = Field(
|
|
|
+ None, alias='installmentRatios'
|
|
|
+ )
|
|
|
+ remark: Optional[str] = None
|
|
|
+ schedules: Optional[List[MarketProtocolPaymentScheduleBody]] = None
|
|
|
+
|
|
|
+
|
|
|
class MarketProtocolBody(BaseModel):
|
|
|
"""移动协议白名单;状态、审核、财务、退款及转换字段一律拒绝。"""
|
|
|
|
|
|
@@ -266,6 +303,9 @@ class MarketProtocolBody(BaseModel):
|
|
|
collection: Optional[MarketProtocolCollectionBody] = None
|
|
|
samples: Optional[List[MarketProtocolSampleBody]] = None
|
|
|
attachments: Optional[MarketProtocolAttachmentsBody] = None
|
|
|
+ sample_payments: Optional[List[MarketProtocolSamplePaymentBody]] = Field(
|
|
|
+ None, alias='samplePayments'
|
|
|
+ )
|
|
|
|
|
|
|
|
|
class MarketProtocolAuditBody(BaseModel):
|