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_session
 */
@Data
@TableName("chat_session")
public class ChatSession implements Serializable {

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

    /** 会话编号（业务唯一，例如 CS20260601001） */
    private String sessionNo;

    /** 发起用户 ID */
    private Long userId;

    /** 接待客服 ID，NULL=待分配 */
    private Long adminId;

    /** 状态：0-待处理 1-处理中 2-已解决 3-已关闭 */
    private Integer status;

    /** 用户未读消息数 */
    private Integer userUnread;

    /** 客服未读消息数 */
    private Integer adminUnread;

    /** 最后一条消息摘要 */
    private String lastMessage;

    /** 最后一条消息时间 */
    private LocalDateTime lastTime;

    /** 用户端最大已确认消息序号（用于断线补发） */
    private Long userSeq;

    /** 客服端最大已确认消息序号（用于断线补发） */
    private Long adminSeq;

    /** 关闭时间 */
    private LocalDateTime closeTime;

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

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
