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

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

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

/**
 * @author zhouhanwei
 * @create 2023/4/14 14:35
 */
@Data
public class PageUserWalletBillReqDTO extends Query {

    /**
     * 操作人手机号
     */
    @ApiModelProperty(name = "useUserPhone", value = "操作人手机号")
    private String useUserPhone;

    /**
     * 操作人id列表
     */
    @ApiModelProperty(name = "userIdList", value = "操作人手机号")
    private List<Long> userIdList;

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

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

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

    /**
     * 查询日期
     */
    @ApiModelProperty(name = "billDate", value = "查询日期")
    private String billDate;

    /**
     * 钱包id
     */
    @NotNull(message = "钱包ID不能为空")
    @ApiModelProperty(name = "walletId", value = "钱包id")
    private Long walletId;

    /**
     * 查询开始时间
     */
    @ApiModelProperty(name = "startTime", value = "查询开始时间")
    private String startTime;

    /**
     * 查询结束时间
     */
    @ApiModelProperty(name = "endTime", value = "查询结束时间")
    private String endTime;

    /**
     * 钱包流水对象
     */
    @ApiModelProperty(name = "walletStreamObject", value = "钱包流水对象")
    private String walletStreamObject;

    /**
     * 钱包流水号
     */
    @ApiModelProperty(name = "walletStreamNo", value = "钱包流水对象")
    private String walletStreamNo;

    /**
     * 账单来源类型（1：微信支付充值,2：后台支付充值，3：智慧充电缴费，4：智慧停车缴费，5: 钱包退款， 6：充电费冻结， 7：充电费解冻...）
     */
    @ApiModelProperty(name = "walletBillSourceType", value = "账单来源类型（1：微信支付充值,2：后台支付充值，3：智慧充电缴费，4：智慧停车缴费" +
            "5: 钱包退款， 6：充电费冻结， 7：充电费解冻...）")
    private String walletBillSourceType;
    /**
     * 钱包流水大类（1：钱包充值，2：充值退款，3：消费扣款， 4：消费退款, 5 :钱包扣款）
     */
    @ApiModelProperty(name = "walletStreamClassify", value = "钱包流水大类（1：钱包充值，2：充值退款，3：消费扣款， 4：消费退款, 5 :钱包扣款）")
    private String walletStreamClassify;

    /**
     * 钱包账单类型（1:收入，2：支出）
     */
    @ApiModelProperty(name = "walletBillType", value = "钱包账单类型（1:收入，2：支出）")
    private String walletBillType;
}
