package com.hdkj.lt.bf.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 用户问题反馈信息表
 * </p>
 *
 * @author luorui
 * @since 2025-08-29
 */
@Setter
@Getter
@TableName("fhzg_user_feedback")
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class UserFeedback implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主建ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 业务主键ID，计划/故障/运行调优id
     */
    @TableField("business_id")
    @NotNull(message = "业务主键ID不能为空")
    private Long businessId;

    /**
     * 方案ID
     */
    @TableField("scheme_id")
    private Long schemeId;

    /**
     * 业务类型，01-计划，02-故障，03-运行调优
     */
    @TableField("business_type")
    @NotBlank(message = "业务类型不能为空")
    private String businessType;

    /**
     * 页面标签页类型，01-对侧联络线路承载力分析，02-开关动作顺序
     */
    @TableField("tab_type")
    @NotBlank(message = "页面标签页类型不能为空")
    private String tabType;

    /**
     * 是否数据问题，0-否，1-是
     */
    @TableField("is_data_feedback")
    private String isDataFeedback;

    /**
     * 是否图形问题，0-否，1-是
     */
    @TableField("is_graph_feedback")
    private String isGraphFeedback;

    /**
     * 问题描述
     */
    @TableField("feedback_content")
    @NotBlank(message = "问题描述不能为空")
    private String feedbackContent;

    /**
     * 创建人
     */
    @TableField("creator")
    private Long creator;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 最后一次修改人
     */
    @TableField("last_editor")
    private Long lastEditor;

    /**
     * 最后一次修改时间
     */
    @TableField("last_time")
    private LocalDateTime lastTime;


}
