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.NotBlank;
import java.util.List;

/**
 * @author zhouhanwei
 * @create 2023/11/1 14:10
 */
@Data
public class OrgWalletDetailDataListReqDTO extends Query {

    /**
     * 机构钱包账户id
     */
    @ApiModelProperty(name = "orgWalletId", value = "机构钱包账户id")
    private Long orgWalletId;

    /**
     * 机构钱包类型（1：平台机构钱包，2：渠道机构钱包）
     */
    @ApiModelProperty(name = "orgWalletType", value = "机构钱包类型（1：平台机构钱包，2：渠道机构钱包）")
    @NotBlank(message = "机构钱包类型不为空")
    private String orgWalletType;

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

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

    /**
     * 业务对应支付单号
     */
    @ApiModelProperty(name = "orgWalletDetailNo", value = "业务对应支付单号")
    private String orgWalletDetailNo;

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

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

    /**
     * 机构钱包明细类型（1:收入，2：支出）
     */
    @ApiModelProperty(name = "orgWalletDetailType", value = "机构钱包明细类型（1:收入，2：支出）")
    private String orgWalletDetailType;

    /**
     * 钱包流水大类（1：钱包充值，2：充值退款，3：消费扣款， 4：消费退款, 5 :钱包扣款）
     */
    @ApiModelProperty(name = "walletStreamClassify", value = "钱包流水大类（1：钱包充值，2：充值退款，3：消费扣款， 4：消费退款, 5 :钱包扣款）")
    private String orgWalletStreamClassify;

    /**
     * 机构钱包明细来源类型（1：微信支付充值,2：后台支付充值，3：智慧充电缴费，4：智慧停车缴费, 5:钱包退款...）
     */
    @ApiModelProperty(name = "orgWalletDetailSourceType", value = "机构钱包明细来源类型（1：微信支付充值,2：后台支付充值，3：智慧充电缴费，4：智慧停车缴费, 5:钱包退款...）")
    private String orgWalletDetailSourceType;

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

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

    /**
     * 机构流水类型（1：机构钱包流水，2：机构子钱包流水）
     */
    @ApiModelProperty(name = "orgWalletStreamType", value = "机构钱包流水类型（1：机构钱包流水，2：机构子钱包流水）")
    private String orgWalletStreamType;

    /**
     * 账户名称
     */
    @ApiModelProperty(name = "accountName", value = "账户名称")
    private String accountName;

    /**
     * 归属运营商
     */
    @ApiModelProperty(name = "ownershipOperatorId", value = "归属运营商")
    private Long ownershipOperatorId;


}
