package com.sckw.transport.api.model.param;

import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 贸易订单服务费操作参数
 * <p>
 * 下单冻结：orderNo、proEntId、supEntId、purchaseQuantity
 * 审核拒绝解冻：orderNo、proEntId、supEntId
 * 订单完结结算：orderNo、proEntId、supEntId、actualQuantity（运输净重量）、chargeStrategyId（兜底）、chargeStrategyAmount（下单快照单价，优先）
 */
@Data
public class ParkingWalletFeeFreezeParam implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 贸易订单号
     */
    private String orderNo;

    /**
     * 采购方企业id
     */
    private Long proEntId;

    /**
     * 供应商企业id
     */
    private Long supEntId;

    /**
     * 采购数量（下单冻结时使用，冻结金额 = purchaseQuantity × 策略单价）
     */
    private BigDecimal purchaseQuantity;

    /**
     * 运输净重量（订单完结结算时使用，扣减金额 = 运输净重量 × 当前最优策略单价）
     */
    private BigDecimal actualQuantity;

    /**
     * 收费策略id（订单完结结算兜底使用，优先取订单下单快照）
     */
    private Long chargeStrategyId;

    /**
     * 下单时收费策略单价快照（订单完结结算优先使用，防止策略变更后金额变化）
     */
    private BigDecimal chargeStrategyAmount;

    /**
     * 操作人id（Dubbo调用时由订单模块传入）
     */
    private Long operatorId;
}
