package com.snack.server.module.chat.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
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.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 客服消息
 *
 * 对应数据库表：chat_message
 */
@Data
@TableName("chat_message")
public class ChatMessage implements Serializable {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 所属会话 ID */
    private Long sessionId;

    /** 消息在会话内的递增序号（用于断线补发和排序） */
    private Long seq;

    /** 发送者 ID（用户/客服） */
    private Long senderId;

    /** 发送者类型：0-用户 1-客服 2-系统 */
    private Integer senderType;

    /** 消息类型：text / image / file / product / system */
    private String type;

    /** 消息内容（文字 / JSON / 图片 URL） */
    private String content;

    /** 扩展字段（商品卡片等结构化数据） */
    private String extra;

    /** 是否撤回：0-否 1-是 */
    private Integer isRecalled;

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
}
