package com.propertyManagement.business.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
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_repairs
 *
 * @author liushuai
 * @date 2025-05-14
 */
@Data
@ExcelIgnoreUnannotated
public class WxRepairsVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private Long repairsId;

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

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

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

    /**
     * 业主电话
     */
    @ExcelProperty(value = "业主电话")
    private String proprietorPhone;

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

    /**
     * 报修描述
     */
    @ExcelProperty(value = "报修描述")
    private String repairsDescription;

    /**
     * 报修图片
     */
    @ExcelProperty(value = "报修图片")
    private String repairsImg;

    /**
     * 报修时间
     */
    @ExcelProperty(value = "报修时间")
    private Date repairsTime;

    /**
     * 完成时间
     */
    @ExcelProperty(value = "完成时间")
    private Date completeTime;

    /**
     * 关闭时间
     */
    @ExcelProperty(value = "关闭时间")
    private Date closeTime;

    /**
     * 报修状态
     */
    @ExcelProperty(value = "报修状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "wx_repairs_state")
    private Integer state;

    /**
     * 报修类型
     */
    @ExcelProperty(value = "报修类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "wx_repairs_type")
    private Integer type;

    /**
     * 维修人员ID
     */
    private Long accountId;
    /**
     * 维修人员姓名
     */
    @ExcelProperty(value = "维修人员姓名")
    private String accountName;
    /**
     * 维修人员电话
     */
    @ExcelProperty(value = "维修人员电话")
    private String accountMobile;

    /**
     * 维修费用
     */
    @ExcelProperty(value = "维修费用不能为空")
    private BigDecimal money;

}
