package com.liquidnet.common.third.sqb.param.request;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 收钱吧 - 创建结算明细 请求参数
 *
 * @author liquidnet
 * @since 2026-03-16
 */
@Data
public class SettlementCreateRequest implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 应用ID（聚合收单唯一ID，需申请）
     */
    private String appid;

    /**
     * 商城信息
     */
    private CommonRequest.Mall mallID;

    /**
     * 商户信息
     */
    private CommonRequest.Seller seller;

    /**
     * 买家信息
     */
    private CommonRequest.Buyer buyer;

    /**
     * 结算明细组（结算条目列表）
     */
    private List<CheckoutItem> checkoutItems;

    /**
     * 结算总金额（单位：分）；纯金额结算时必填。商品结算走 checkoutItems 且 type=1 时不要传
     */
    private Long amount;


    /**
     * 结算明细条目
     */
    @Data
    public static class CheckoutItem {

        /**
         * sqb 商品识别号（商品唯一标识，如 spuId）
         */
        private String spuId;

        /**
         * sqb 规格识别号（SKU唯一标识，如 skuId）
         */
        private String skuId;

        /**
         * 单价（单位：分）
         */
        private Long price;

        /**
         * 购买数量
         */
        private String quantity;

        /**
         * 商品类型（0 正常商品 1 自定义商品）
         */
        private Byte type;

        /**
         * 商品标题
         */
        private String title;

        /**
         * 商品图片链接
         */
        private String image;
    }
}
