package cn.iocoder.yudao.module.server.dal.dataobject.policycommunications;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 政策沟通交流 DO
 *
 * @author 超级管理员
 */
@TableName("trs_policy_communications")
@KeySequence("trs_policy_communications_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PolicyCommunicationsDO extends BaseDO {

    /**
     * ID
     */
    @TableId
    private Long id;
    /**
     * 政策ID
     */
    private Integer policyId;
    /**
     * 政策标题
     */
    private String policyTitle;
    /**
     * 答复单位
     */
    private String replyDept;
    /**
     * 处理部门id
     */
    private String replyDeptid;
    /**
     * 用户姓名
     */
    private String userName;
    /**
     * 用户ID
     */
    private String userId;
    /**
     * 提交用户信息
     */
    private String mobile;
    /**
     * 沟通类型：咨询、建议、投诉
     *
     * 枚举 {@link TODO trs_submit_type 对应的类}
     */
    private String submitType;
    /**
     * 沟通主题
     */
    private String title;
    /**
     * 沟通内容
     */
    private String content;
    /**
     * 沟通信息
     */
    private String msg;
    /**
     * 留言时间
     */
    private LocalDateTime submitTime;
    /**
     * 是否公开：1-是，0-否
     *
     * 枚举 {@link TODO trs_is_public 对应的类}
     */
    private Integer submitIsPublic;
    /**
     * 附件
     */
    private String attachment;
    /**
     * 状态：0-待处理，1-已回复，2-已公开
     *
     * 枚举 {@link TODO trs_status 对应的类}
     */
    private Integer dealStatus;
    /**
     * 回复内容
     */
    private String replayContent;
    /**
     * 回复时间
     */
    private LocalDateTime replayTime;
    /**
     * 是否公开：1-是，0-否
     *
     * 枚举 {@link TODO trs_is_public 对应的类}
     */
    private Integer replayIsPublic;

    /**
     * 排序
     */
    private Integer sortOrder;

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

    private String rejectReason;

    private String puburl;

    // 在 PolicyCommunicationsDO.java 中添加字段
    /**
     * 剩余工作日（计算字段，不在数据库存储）
     */
    @TableField(exist = false)
    private Integer remainingWorkdays;

    public Integer getRemainingWorkdays() {
        return remainingWorkdays;
    }
    public void setRemainingWorkdays(Integer remainingWorkdays) {
        this.remainingWorkdays = remainingWorkdays;
    }

}