package com.njcn.rdms.module.system.dal.dataobject.feedback;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.rdms.framework.mybatis.core.dataobject.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 用户意见反馈 DO
 */
@TableName("system_feedback")
@Data
@EqualsAndHashCode(callSuper = true)
public class FeedbackDO extends BaseDO {

    @TableId
    private Long id;
    /** 反馈分类：字典 {@link com.njcn.rdms.module.system.enums.DictTypeConstants#FEEDBACK_TYPE}（1缺陷 2体验问题 3功能建议） */
    private Integer type;
    /** 标题 */
    private String title;
    /** 详细描述 */
    private String content;
    /** 附件列表（JSON 数组字符串），可空。PUT 全量替换语义下前端传 null 需真正清空，故用 ALWAYS 跳过全局 NOT_NULL 策略（见 CLAUDE.md「接口语义」节） */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String attachmentUrls;
    /** 联系方式，可空。同上：PUT 传 null 需落库清空 */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String contact;
    /** 处理状态：字典 {@link com.njcn.rdms.module.system.enums.DictTypeConstants#FEEDBACK_STATUS}（1待处理 2处理中 3已处理 4已忽略） */
    private Integer status;

}
