package com.yuchen.saas.payment.api.dto.orderCenter;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.nest.springwrap.core.mp.support.Query;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * @author zhouhanwei
 * @create 2023/7/26 14:30
 */
@Data
public class ChargeOrderListDataReqDTO extends Query {

    /**
     * 管理区id
     */
    private Long siteId;

    /**
     * 管理区名字
     */
    private String siteName;

    /**
     * 订单类型 1or3 ：临停， 2月卡，20错时卡，26充电，30：占位费
     */
    @ApiModelProperty(name = "orderType", value = "订单类型 1or3 ：临停， 2月卡，20错时卡，26充电，30：占位费")
    @NotBlank(message = "请输入订单类型")
    private String orderType;

    /**
     * 订单状态 0：待支付、1：支付中、2：支付成功、3：支付失败
     */
    @ApiModelProperty(name = "orderStats", value = "订单状态 -1：已关闭，0：待支付、1：支付中、2：支付成功、3：支付失败")
    private String orderStats;

    /**
     * 车牌号
     */
    private String plateNo;

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

    @ApiModelProperty(name = "orderNoList", value = "订单号列表")
    private List<String> orderNoList;

    /**
     * 流水号
     */
    private String payNo;

    /**
     * 支付账号
     */
    @ApiModelProperty(name = "payAccount", value = "支付账号")
    private String payAccount;
    @ApiModelProperty(name = "siteIdList", value = "管理区id列表")
    private List<Long> siteIdList;

    /**
     * 用户id列表
     */
    @ApiModelProperty(name = "userDetailIdList", value = "用户id列表")
    private List<Long> userDetailIdList;

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

    /**
     * 运营商名称
     */
    @ApiModelProperty(name = "operatorName", value = "运营商名称")
    private String operatorName;


    /**
     * 运营商ID列表
     */
    @ApiModelProperty(name = "operatorList", value = "运营商ID列表")
    private List<Long> operatorList;

    /**
     * 创建开始时间
     */
    @ApiModelProperty(name = "startCreateTime", value = "创建开始时间")
    private String startCreateTime;

    /**
     * 创建结束时间
     */
    @ApiModelProperty(name = "endCreateTime", value = "创建结束时间")
    private String endCreateTime;

    /**
     * 结算开始时间
     */
    @ApiModelProperty(name = "startPayTime", value = "结算开始时间")
//    @NotBlank(message = "请选择结算开始时间")
    private String startPayTime;

    /**
     * 结算结束时间
     */
    @ApiModelProperty(name = "endPayTime", value = "结算结束时间")
//    @NotBlank(message = "请选择结算结束时间")
    private String endPayTime;

    /**
     * 结算类型 1:自动结算; 2:用户结算;
     */
    @ApiModelProperty(name = "settleType", value = "支付类型 1:自动结算; 2:用户结算;")
    private String settleType;


    /**
     "  支付方式 WECHAT_JSAPI：微信支付; WALLET_PAY：平台钱包支付;  ORG_SUB_WALLET_PAY：平台机构子钱包支付; CHANNEL_WALLET_PAY：渠道个人钱包支付;" +
     "  CHANNEL_ORG_SUB_WALLET_PAY：渠道机构子钱包支付;  COUPON_ALL_PAY：优惠券全额支付;
     */
    @ApiModelProperty(name = "payType", value = "支付方式 WECHAT_JSAPI：微信支付; WALLET_PAY：平台钱包支付;  ORG_SUB_WALLET_PAY：平台机构子钱包支付; CHANNEL_WALLET_PAY：渠道个人钱包支付;" +
            " CHANNEL_ORG_SUB_WALLET_PAY：渠道机构子钱包支付;  COUPON_ALL_PAY：优惠券全额支付; ")
    private String payType;

    /**
     * 支付渠道编码
     */
    @ApiModelProperty(name = "payChannelCode", value = "支付渠道编码（xc_pay：厦门银行，all_in_pay：通联支付）")
    private String payChannelCode;

    /**
     * 已支付账单id
     */
    private List<String> billIdList;

    /**
     * 是否使用优惠（1：使用，0：不使用）
     */
    @ApiModelProperty(name = "isUseCoupon", value = "是否使用优惠")
    private String isUseCoupon;
    /**
     * 开票状态 |  0 开票中 1 开票成功 9 未开票
     */
    @ApiModelProperty(name = "invoicingStatus", value = "开票状态 | 0 开票中 1 开票成功 9 未开票")
    private Integer invoicingStatus;

    /**
     * 退款状态 | 0 无退款 1 部分退款 2 全部退款
     */
    @ApiModelProperty(name = "refundStatus", value = "退款状态 | 0 无退款 1 部分退款 2 全部退款 ")
    private Integer refundStatus;
}
