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

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.nest.springwrap.core.tenant.mp.TenantEntity;

import java.util.Date;
import java.util.List;

@Data
@TableName(value = "pmg_bat_park_pay_more_order_refund_record")
public class PmgBatParkPayMoreOrderRefundRecord extends TenantEntity {
    @JsonSerialize(
            using = ToStringSerializer.class
    )
    @ApiModelProperty(name = "userDetailId", value = "平台用户id")
    private Long userDetailId;
    @ApiModelProperty(name = "payMoreOrderRefundId", value = "多订单退款id")
    private Long payMoreOrderRefundId;

    @ApiModelProperty(name = "payId", value = "支付订单id")
    private String payId;

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

    @ApiModelProperty(name = "payNumber", value = "支付账单订单号")
    private String payNumber;

    @ApiModelProperty(name = "orderNumber", value = "月卡账单id")
    private String orderNumber;

    @ApiModelProperty(name = "orderRefundNumber", value = "退款订单号")
    private String orderRefundNumber;

    @ApiModelProperty(name = "orderCost", value = "订单实收金额")
    private Long orderCost;

    @ApiModelProperty(name = "refundCost", value = "退款金额 单位 分")
    private Long refundCost;

    /**
     * 退款状态 0：退款中、1：退款成功、2：退款失败
     */
    @ApiModelProperty(name = "refundState", value = "退款状态 0：退款中、1：退款成功、2：退款失败")
    private Integer refundState;

    @ApiModelProperty(name = "refundType", value = "退款类型（1：全部退款，2：部分退款）")
    private Integer refundType;

    @ApiModelProperty(name = "costType", value = "费用类型（1：停车卡费 2 ：停车费）")
    private Integer costType;

    /**
     * 退款账号
     */
    @ApiModelProperty(name = "refundAccount", value = "退款账号")
    private String refundAccount;

    /**
     * 退款方式
     */
    @ApiModelProperty(name = "refundMode", value = "退款方式")
    private Integer refundMode;

    /**
     * 退款时间
     */
    @ApiModelProperty(name = "refundTime", value = "退款时间")
    private Date refundTime;

    /**
     * 退款理由
     */
    @ApiModelProperty(name = "refundReason", value = "退款理由")
    private String refundReason;

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


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


    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;

    /**
     * 线下收款开户银行
     */
    @ApiModelProperty(name = "offlineOpeningBank", value = "线下收款开户银行")
    private String offlineOpeningBank;

    /**
     * 线下收款银行号
     */
    @ApiModelProperty(name = "offlineCollectionNo", value = "线下收款银行号")
    private String offlineCollectionNo;

    /**
     * 线下收款人
     */
    @ApiModelProperty(name = "offlineCollectionPeople", value = "线下收款人")
    private String offlineCollectionPeople;

    /**
     * 线下收款流水号
     */
    @ApiModelProperty(name = "offlineStreamNo", value = "线下收款流水号")
    private String offlineStreamNo;

    /**
     * 线下交易截图
     */
    @ApiModelProperty(name = "offlineTradingScreenshot", value = "线下交易截图")
    private String offlineTradingScreenshot;

    /**
     * 钱包id
     */
    @ApiModelProperty(name = "walletId", value = "钱包id")
    private Long walletId;

    /**
     * 钱包类型（1：个人钱包）
     */
    @ApiModelProperty(name = "walletType", value = "钱包类型（1：个人钱包, 2:渠道钱包）")
    private String walletType;

}
