package com.boyue.hasfj.domain;

import java.util.Date;

import com.boyue.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.boyue.common.annotation.Excel;

/**
 * 用户留言对象 user_feedback
 * 
 * @author boyue
 * @date 2025-07-04
 */
@Schema(description = "用户留言对象")
public class UserFeedback extends BaseEntity
{
    private static final long serialVersionUID = 1L;


    /** 主键ID */
    @Schema(title = "主键ID")
    @Excel(name = "主键ID")
    private Long id;

    /** 留言查询编号，用于用户查询 */
    @Schema(title = "留言查询编号，用于用户查询")
    @Excel(name = "留言查询编号，用于用户查询")
    private String feedbackNo;

    /** 有问题的法律条例或案例 */
    @Schema(title = "有问题的法律条例或案例")
    @Excel(name = "有问题的法律条例或案例")
    private String legalArticle;

    /** 问题描述 */
    @Schema(title = "问题描述")
    @Excel(name = "问题描述")
    private String issueDescription;

    /** 用户姓名 */
    @Schema(title = "用户姓名")
    @Excel(name = "用户姓名")
    private String userName;

    /** 手机号 */
    @Schema(title = "手机号")
    @Excel(name = "手机号")
    private String phoneNumber;

    /** 身份证号 */
    @Schema(title = "身份证号")
    @Excel(name = "身份证号")
    private String idCardNumber;

    /** 联系方式类型：1-手机号，2-身份证号，3-姓名 */
    @Schema(title = "联系方式类型：1-手机号，2-身份证号，3-姓名")
    @Excel(name = "联系方式类型：1-手机号，2-身份证号，3-姓名")
    private Long contactInfoType;

    /** 留言状态：0-待处理，1-已回复，2-已关闭 */
    @Schema(title = "留言状态：0-待处理，1-已回复，2-已关闭")
    @Excel(name = "留言状态：0-待处理，1-已回复，2-已关闭")
    private Long status;

    /** 管理员回复内容 */
    @Schema(title = "管理员回复内容")
    @Excel(name = "管理员回复内容")
    private String adminReplyContent;

    /** 管理员回复时间 */
    @Schema(title = "管理员回复时间")
    @Excel(name = "管理员回复时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date adminReplyTime;

    /** 回复的管理员ID */
    @Schema(title = "回复的管理员ID")
    @Excel(name = "回复的管理员ID")
    private Long adminId;
    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }


    public void setFeedbackNo(String feedbackNo) 
    {
        this.feedbackNo = feedbackNo;
    }

    public String getFeedbackNo() 
    {
        return feedbackNo;
    }


    public void setLegalArticle(String legalArticle) 
    {
        this.legalArticle = legalArticle;
    }

    public String getLegalArticle() 
    {
        return legalArticle;
    }


    public void setIssueDescription(String issueDescription) 
    {
        this.issueDescription = issueDescription;
    }

    public String getIssueDescription() 
    {
        return issueDescription;
    }


    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String getUserName() 
    {
        return userName;
    }


    public void setPhoneNumber(String phoneNumber) 
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() 
    {
        return phoneNumber;
    }


    public void setIdCardNumber(String idCardNumber) 
    {
        this.idCardNumber = idCardNumber;
    }

    public String getIdCardNumber() 
    {
        return idCardNumber;
    }


    public void setContactInfoType(Long contactInfoType) 
    {
        this.contactInfoType = contactInfoType;
    }

    public Long getContactInfoType() 
    {
        return contactInfoType;
    }


    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }


    public void setAdminReplyContent(String adminReplyContent) 
    {
        this.adminReplyContent = adminReplyContent;
    }

    public String getAdminReplyContent() 
    {
        return adminReplyContent;
    }


    public void setAdminReplyTime(Date adminReplyTime) 
    {
        this.adminReplyTime = adminReplyTime;
    }

    public Date getAdminReplyTime() 
    {
        return adminReplyTime;
    }


    public void setAdminId(Long adminId) 
    {
        this.adminId = adminId;
    }

    public Long getAdminId() 
    {
        return adminId;
    }



    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("feedbackNo", getFeedbackNo())
            .append("legalArticle", getLegalArticle())
            .append("issueDescription", getIssueDescription())
            .append("userName", getUserName())
            .append("phoneNumber", getPhoneNumber())
            .append("idCardNumber", getIdCardNumber())
            .append("contactInfoType", getContactInfoType())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .append("adminReplyContent", getAdminReplyContent())
            .append("adminReplyTime", getAdminReplyTime())
            .append("adminId", getAdminId())
            .toString();
    }
}
