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

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

import java.util.Date;

/**
 * @author zhouhanwei
 * @create 2023/4/14 11:14
 */

@Data
public class WalletStreamBillDataVO {

    /**
     * 主体类型（1：个人，2：企业）
     */
    @ApiModelProperty(name = "subjectType", value = "主体类型（1：个人，2：企业）")
    private String subjectType;
    /**
     * 主体手机号
     */
    @ApiModelProperty(name = "subjectPhone", value = "主体手机号")
    private String subjectPhone;

    /**
     * 主体类型（1：个人，2：机构子钱包）
     */
    @ApiModelProperty(name = "walletAccountType", value = "主体类型（1：个人，2：机构子钱包）")
    private String walletAccountType;

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

    /**
     * 管理区id
     */
    @ApiModelProperty(name = "siteId", value = "管理区id")
    private Long siteId;

    /**
     * 管理区名称
     */
    @ApiModelProperty(name = "siteName", value = "管理区名称")
    private String siteName;

    /**
     * 业务类型
     */
    @ApiModelProperty(name = "orderCloseStatus", value = "业务类型（1：智慧停车，2：智慧充电，3：智慧物业）")
    private Integer businessType;

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

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

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

    /**
     * 钱包账户id
     */
    @ApiModelProperty(name = "walletId", value = "钱包账户id")
    private Long walletId;
    /**
     * 用户id
     */
    @ApiModelProperty(name = "walletUserId", value = "用户id")
    private Long walletUserId;
    /**
     * openId
     */
    @ApiModelProperty(name = "walletOpenId", value = "openId")
    private String walletOpenId;
    /**
     * 支付账单号
     */
    @ApiModelProperty(name = "walletBillNo", value = "支付账单号")
    private String walletBillNo;

    /**
     * 支付单id
     */
    @ApiModelProperty(name = "payId", value = "支付单id")
    private Long payId;

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

    /**
     * 账单来源类型（1：微信支付充值,2：后台支付充值，3：智慧充电缴费，4：智慧停车缴费
     * 5: 钱包退款， 6：充电费冻结， 7：充电费解冻）
     */
    @ApiModelProperty(name = "walletBillSourceType", value = "账单来源类型（1：微信支付充值,2：后台支付充值，3：智慧充电缴费，4：智慧停车缴费" +
            "5: 钱包退款， 6：充电费冻结， 7：充电费解冻...）")
    private String walletBillSourceType;
    /**
     * 车辆类型::0-其他，1-小型新能源车，2-大型新能源车
     */
    @ApiModelProperty(name = "vehicleType", value = "车辆类型::0-其他，1-小型新能源车，2-大型新能源车")
    private Integer vehicleType;
    /**
     * 账单金额（单位：分）
     */
    @ApiModelProperty(name = "walletBillCost", value = "账单金额（单位：分）")
    private Long walletBillCost;

    /**
     * 钱包当前余额（单位：分）
     */
    @ApiModelProperty(name = "walletCurrentCost", value = "钱包当前余额（单位：分）")
    private Long walletCurrentCost;

    /**
     * 钱包流水大类（1：钱包充值，2：充值退款，3：消费扣款， 4：消费退款, 5 :钱包扣款）
     */
    @ApiModelProperty(name = "walletStreamClassify", value = "钱包流水大类（1：钱包充值，2：充值退款，3：消费扣款， 4：消费退款, 5 :钱包扣款）")
    private String walletStreamClassify;
    /**
     * 账单备注
     */
    @ApiModelProperty(name = "remark", value = "账单备注")
    private String remark;
    /**
     * 是否同意充值协议（1：是，2：否不让进行充值）
     */
    @ApiModelProperty(name = "agreementFlag", value = "是否同意充值协议（1：是，2：否不让进行充值）")
    private String agreementFlag;
    /**
     * 协议来源
     */
    @ApiModelProperty(name = "agreementSource", value = "协议来源")
    private String agreementSource;

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

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

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

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


}
