package com.ylx.order.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户评论实体类
 * <p>
 * 对应数据库表 t_comment_user，用于存储用户对技师的评论信息。
 * 继承自 MyBatis-Plus 的 Model 类，支持 ActiveRecord 模式操作。
 * 使用 Lombok 的 @Data 注解自动生成 getter/setter 等方法。
 * 启用逻辑删除功能，isDelete 字段标记记录是否已删除（0-有效，1-已删除）。
 * </p>
 *
 * @author ylx
 * @version 1.0
 * @since 2024-08-08
 */
@Data
@ApiModel(value = "TCommentUser", description = "用户评论")
@TableName("t_comment_user")
public class TCommentUser {

    /**
     * 主键ID
     * 唯一标识一条评论记录
     */
    @ApiModelProperty("主键")
    private String id;

    /**
     * 用户id
     * 微信用户的唯一标识，用于关联评论发布者
     */
    @ApiModelProperty("用户id")
    private String userId;

    /**
     * 昵称
     */
    @ApiModelProperty("昵称")
    private String nickName;

    /**
     * 用户头像地址
     */
    @TableField("user_icon")
    @ApiModelProperty("用户头像地址")
    private String userIcon;

    /**
     * 订单id
     */
    @ApiModelProperty("订单id")
    private Long orderId;

    /**
     * 评论内容
     * 用户对本次服务评价的文本内容
     */
    @ApiModelProperty("评论内容")
    private String text;

    /**
     * 是否敏感词
     * 0-无敏感词，1-包含敏感词
     */
    @ApiModelProperty("是否敏感词")
    private Integer sensitiveWord;

    /**
     * 商户id
     * 被评论技师的唯一标识
     */
    @ApiModelProperty("商户id")
    private Integer merchantId;

    /**
     * 商户姓名
     * 冗余字段，存储被评论技师的姓名，便于查询展示
     */
    @ApiModelProperty("商户姓名")
    private String merchantName;

    /**
     * 评论时间
     * 用户发布评论的时间戳
     */
    @ApiModelProperty("评论时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date commentTime;

    /**
     * 体验评价等级1-5
     */
    @ApiModelProperty("体验评价等级1-5")
    private Integer experienceComment;

    /**
     * 价格评价等级1-5
     */
    @ApiModelProperty("价格评价等级1-5")
    private Integer priceComment;

    /**
     * 态度评价等级1-5
     */
    @ApiModelProperty("态度评价等级1-5")
    private Integer attitudeComment;

    /**
     * 仪表仪容等级1-5
     */
    @ApiModelProperty("仪表仪容等级1-5")
    private Integer groomingComment;

    /**
     * 订单的综合评分
     */
    @ApiModelProperty("订单的综合评分")
    private BigDecimal score;

    /**
     * 审核状态：0待审核 1通过 2拒绝
     */
    @TableField(exist = false)
    private Integer auditStatus;

    /**
     * 审核人姓名
     */
    @TableField(exist = false)
    private String auditorName;

    /**
     * 审核时间
     */
    @TableField(exist = false)
    private String auditTime;

    /**
     * 系统创建时间
     * 记录创建的时间戳，由系统自动生成
     */
    @ApiModelProperty("系统创建时间")
    private Date createTime;

    /**
     * 系统修改时间
     * 记录最后更新的时间戳，由系统自动维护
     */
    @ApiModelProperty("系统修改时间")
    private Date updateTime;

    /**
     * 逻辑删除标记
     * 0-未删除（有效记录），1-已删除
     * 使用 @TableLogic 注解实现逻辑删除功能
     */
    @ApiModelProperty("是否删除0否1是")
    @TableLogic
    private Integer isDelete;
}

