package com.propertyManagement.business.domain.vo;

import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
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;

    /**
     * 登记车牌
     */
    private String plateNumber;

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

    /**
     * 支付渠道
     */
    private String payChannelCode;

    /**
     * 支付商户code
     */
    private String payMchCode;

    /**
     * 支付类型
     */
    private String payTradeType;

    /**
     * 支付应用
     */
    private String payAppCode;

    /**
     * 支付业务
     */
    private String payBizCode;

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

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

    /**
     * 支付时间
     */
    @ExcelProperty(value = "支付时间")
    @ColumnWidth(18)
    private Date createTime;

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

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 缴费开始日期
     */
    private Date startTime;

    /**
     * 缴费结束日期
     */
    private Date endTime;



}
