package com.liquidnet.service.goblin.param.shouqianba.request;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 收钱吧 - 订单创建 请求参数
 *
 * @author liquidnet
 * @since 2026-03-16
 */
@ApiModel(value = "创建订单")
@Data
public class OrderCreateRequest implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(required = true, value = "应用ID（聚合收单唯一ID，需申请）")
    private String appid;

    @ApiModelProperty(required = true, value = "商城信息")
    private MallInfo mallID;

    @ApiModelProperty(required = true, value = "结算项ID")
    private String checkoutItemsId;

    @ApiModelProperty(required = true, value = "买家信息")
    private Buyer buyer;

    @ApiModelProperty(required = true, value = "请求ID")
    private String requestId;

    @ApiModelProperty(required = true, value = "场景信息")
    private List<Scene> scenes;

    @ApiModelProperty(required = true, value = "自定义场景信息")
    private List<Scene> extBizScenes;


    @EqualsAndHashCode(callSuper = true)
    @Data
    @ApiModel(value = "商城信息")
    public static class MallInfo extends SettlementCreateRequest.MallInfo{
    }

    @EqualsAndHashCode(callSuper = true)
    @Data
    @ApiModel("买家信息")
    public static class Buyer extends SettlementCreateRequest.Buyer{
    }

    @ApiModel(value = "场景信息")
    public static class Scene{
        @ApiModelProperty(value = "模块编号")
        private String moduleSn;

        @ApiModelProperty(value = "场景数据")
        private String content;
    }
}
