package com.propertyManagement.business.domain.vo;

import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.propertyManagement.common.annotation.ExcelDictFormat;
import com.propertyManagement.common.convert.ExcelDictConvert;
import com.propertyManagement.common.core.validate.AddGroup;
import com.propertyManagement.common.core.validate.EditGroup;
import lombok.Data;

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

import java.io.Serializable;

/**
 * 缴费记录视图对象 wx_pay_record
 *
 * @author liushuai
 * @date 2025-05-14
 */
@Data
@ExcelIgnoreUnannotated
public class WxPayRecordVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户名称
     */
    @ExcelProperty(value = "用户名称")
    private String userName;

    /**
     * 小区ID
     */
    private Long communityId;

    /**
     * 小区名称
     */
    @ExcelProperty(value = "小区名称")
    private String communityName;

    /**
     * 业主ID
     */
    private Long proprietorId;

    /**
     * 业主名称
     */
    @ExcelProperty(value = "业主名称")
    private String proprietorName;

    /**
     * 业主房间
     */
    @ExcelProperty(value = "业主房间")
    private String room;

    /**
     * 登记车牌
     */
    @ExcelProperty(value = "登记车牌")
    private String plateNumber;

    /**
     * 订单类型
     */
    @ExcelProperty(value = "订单类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "wx_pay_record_type")
    private Integer orderType;

    /**
     * 支付渠道
     */
    @ExcelProperty(value = "支付渠道")
    private String payChannelCode;

    /**
     * 支付商户code
     */
    @ExcelProperty(value = "支付商户code")
    private String payMchCode;

    /**
     * 支付类型
     */
    @ExcelProperty(value = "支付类型")
    private String payTradeType;

    /**
     * 支付应用
     */
    @ExcelProperty(value = "支付应用")
    private String payAppCode;

    /**
     * 支付业务
     */
    @ExcelProperty(value = "支付业务")
    private String payBizCode;

    /**
     * 订单金额
     */
    @ExcelProperty(value = "订单金额")
    private BigDecimal payAmount;

    /**
     * 支付状态
     */
    @ExcelProperty(value = "支付状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "wx_pay_record_state")
    private Integer payState;

    /**
     * 平台支付流水号
     */
    @ExcelProperty(value = "平台支付流水号")
    private String outTradeNo;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "更新时间")
    private Date updateTime;


}
