package com.yuchen.saas.payment.api.param;

import com.yuchen.saas.payment.api.vo.orderCenter.OrderMergePayDataVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName CreatePayParamV2
 * @Description 用户创建账单参数V2.0
 * @Author 周汉伟
 */
@Data
public class CreateMergeOrderPayParam {
    @ApiModelProperty(value = "移动端用户唯一ID")
    private String payUserId;
    @ApiModelProperty(value = "用户IP")
    private String userIp;
    @ApiModelProperty(value = "支付类型")
    private String payType;
    @ApiModelProperty(value = "支付成功跳转页面")
    private String urlReturn;

    /**
     * 订单隐私保护
     */
    @ApiModelProperty(name = "privacyProtectionFlag", value = "订单隐私保护")
    private Integer privacyProtectionFlag;

    /**
     * 数据来源应用号
     */
    @ApiModelProperty(name = "dataSourceNo", value = "数据来源应用号")
    private String dataSourceNo;

    /**
     * 运营商id
     */
    @ApiModelProperty(name = "operator", value = "运营商id")
    private Long operator;

    @ApiModelProperty(value = "账单总金额")
    private Long billTotalPayCost;

    /**
     * 订单数据
     */
    @ApiModelProperty(name = "payOrderData", value = "订单数据")
    private List<PayOrderData> payOrderDataList;

    /**
     * 订单应收金额
     */
    @ApiModelProperty(name = "supposeCost", value = "订单应收金额")
    private Long supposeCost;

    /**
     * 园区id
     */
    @ApiModelProperty(name = "parkId",value = "园区id")
    private String parkId;

    /**
     * 支付单号
     */
    @ApiModelProperty(name = "orderNumber",value = "支付单号")
    private String orderNumber;

    /**
     * 订单编号
     */
    @ApiModelProperty(name = "orderNo",value = "订单编号")
    private String orderNo;

    /**
     * 用户明细ID
     */
    @ApiModelProperty(name = "userDetailId",value = "用户明细ID")
    private Long userDetailId;

    /**
     * 用户手机
     */
    @ApiModelProperty(name = "phone",value = "用户手机")
    private String phone;

    @ApiModelProperty(name = "stationId", value = "充电站id")
    private  Long stationId;

    @ApiModelProperty(name = "resultList", value = "结果集")
    private  List<OrderMergePayDataVO.OrderMergePayData> resultList ;

    @ApiModelProperty(name = "titleList", value = "标题结果集")
    private  List<String> titleList ;

    @Data
    public static class PayOrderData {

        @ApiModelProperty(value = "账单类型（1-临停 2-月卡）")
        private Integer billType;
        @ApiModelProperty(value = "月卡数量")
        private Integer number;
        @ApiModelProperty(value = "账单ID")
        private String billId;
        @ApiModelProperty(value = "场站id")
        private Long siteId;
        @ApiModelProperty(value = "账单营收金额")
        private Long billPayCost;
        @ApiModelProperty(value = "用户优惠券id")
        private String couponRecordId;
        @ApiModelProperty(value = "优惠金额")
        private Long couponCost = 0L;
        @ApiModelProperty(value = "支付状态")
        private Integer payStatus ;
    }
}
