package org.dromara.domain.complaintSuggestion.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.domain.complaintSuggestion.ComplaintSuggestion;
import org.dromara.domain.suggestionFj.vo.SuggestionFjVo;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 投诉建议视图对象 complaint_suggestion
 *
 * @author boman
 * @date 2025-04-11
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ComplaintSuggestion.class)
public class ComplaintSuggestionVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 投诉建议ID
     */
    @ExcelProperty(value = "投诉建议ID")
    private Long suggestionId;

    /**
     * 投诉建议标题，简要描述投诉或建议内容
     */
    @ExcelProperty(value = "投诉建议标题，简要描述投诉或建议内容")
    private String title;

    /**
     * 投诉建议的具体内容，详细描述问题或建议
     */
    @ExcelProperty(value = "投诉建议的具体内容，详细描述问题或建议")
    private String content;

    /**
     * 投诉照片，存储图片路径或URL（可多张，建议用JSON格式存储）
     */
    @ExcelProperty(value = "投诉照片，存储图片路径或URL", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "可=多张，建议用JSON格式存储")
    private String images;

    /**
     * 投诉建议提交时间
     */
    @ExcelProperty(value = "投诉建议提交时间")
    private Date createdTime;

    /**
     * 投诉建议状态：1（待回复）、2（已回复）
     */
    @ExcelProperty(value = "投诉建议状态：1", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "待=回复")
    private String status;

    /**
     * 投诉建议的回复内容，记录管理员或相关人员的回复
     */
    @ExcelProperty(value = "投诉建议的回复内容，记录管理员或相关人员的回复")
    private String replyContent;

    /**
     * 投诉建议类型：1:投诉建议
     */
    @ExcelProperty(value = "投诉建议类型：1:投诉建议")
    private String type;

    /**
     * 投诉建议是否公开：Y（公开）、N（不公开）
     */
    @ExcelProperty(value = "投诉建议是否公开：Y", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "公=开")
    private String isPublic;

    /**
     * 投诉用户id
     */
    @ExcelProperty(value = "投诉用户id")
    private Long userId;

    /**
     * 投诉建议是否已读：Y（已读）、N（未读）
     */
    @ExcelProperty(value = "投诉建议是否已读：Y", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "已=读")
    private String isRead;

    /**
     * 是否删除：Y（删除）、N（不删除）
     */
    @ExcelProperty(value = "是否删除：Y", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "删=除")
    private String isDel;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;


    /**
     * 回复附件表
     */
    private List<SuggestionFjVo> suggestionFjList;


}
