package cn.iocoder.yudao.module.server.controller.admin.policycommunications.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@Schema(description = "管理后台 - 政策沟通交流 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PolicyCommunicationsRespAdminVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13003")
    /*@ExcelProperty("ID")*/
    private Long id;

    @Schema(description = "政策ID", example = "27119")
//    @ExcelProperty("政策ID")
    private Integer policyId;

    @Schema(description = "政策标题")
    @ExcelProperty("政策标题")
    private String policyTitle;

    @Schema(description = "答复单位")
    @ExcelProperty("答复单位")
    private String replyDept;

    @Schema(description = "处理部门id", example = "25396")
//    @ExcelProperty("处理部门id")
    private String replyDeptid;

    @Schema(description = "用户姓名", example = "张三")
    @ExcelProperty("用户姓名")
    private String userName;

    @Schema(description = "用户ID", example = "31743")
//    @ExcelProperty("用户ID")
    private String userId;

    @Schema(description = "用户联系方式")
    @ExcelProperty("提交用户信息")
    private String mobile;

    @Schema(description = "沟通类型：咨询、建议、投诉", example = "1")
    @ExcelProperty(value = "沟通类型：咨询、建议、投诉", converter = DictConvert.class)
    @DictFormat("trs_submit_type") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private String submitType;

    @Schema(description = "沟通主题")
    @ExcelProperty("沟通主题")
    private String title;

    @Schema(description = "沟通内容")
    @ExcelProperty("沟通内容")
    private String content;

    @Schema(description = "沟通信息")
//    @ExcelProperty("沟通信息")
    private String msg;
    @Schema(description = "留言时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("留言时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")  // 或者根据需要设置格式
    private LocalDateTime submitTime;



    @Schema(description = "是否公开：1-是，0-否")
//    @ExcelProperty(value = "是否公开：1-是，0-否", converter = DictConvert.class)
    @DictFormat("trs_is_public") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer submitIsPublic;

    @Schema(description = "附件")
    @ExcelProperty("附件")
    private String attachment;

    @Schema(description = "状态：0-待处理，1-已回复，2-已公开", example = "2")
    @ExcelProperty(value = "状态：0-待处理，1-已回复，2-已公开", converter = DictConvert.class)
    @DictFormat("trs_status") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer dealStatus;

    @Schema(description = "回复内容")
    @ExcelProperty("回复内容")
    private String replayContent;

    @Schema(description = "回复时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("回复时间")
    private LocalDateTime replayTime;


    @Schema(description = "是否公开：1-是，0-否")
    @ExcelProperty(value = "是否公开：1-是，0-否", converter = DictConvert.class)
    @DictFormat("trs_is_public") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer replayIsPublic;

    /**
     * 处理部门id
     */
    private Long departmentId;
    private Long departmentIdT;

    @Schema(description = "拒绝理由")
    private String rejectReason;

    private Integer remainingWorkdays;

    @Schema(description = "政策发布地址")
    @ExcelProperty("政策发布地址")
    private String puburl;



}