package org.shop.crop.dao;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import org.apache.ibatis.annotations.Mapper;
import org.shop.crop.dto.Message;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

@Data
@TableName("crop_messages")
public class CropMessage {

    /**
     * 主键 ID（自增）
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 消息唯一标识（全局 ID）
     */
    @TableField("msg_id")
    private String msgId;

    /**
     *
     */
    @TableField("cropid")
    private String cropId;

    /**
     * 消息动作（如 send, reply, delete）
     */
    @TableField("action")
    private String action;

    /**
     * 发送方 ID
     */
    @TableField("from_id")
    private String from; // 注意：'from' 是关键字，不能直接写，所以用注解指定

    /**
     * 接收方列表（JSON 或逗号分隔）
     */
    @TableField("tolist")
    private String tolist;

    /**
     * 接收方列表（JSON 或逗号分隔）
     */
    @TableField("to_id")
    private String toId;

    /**
     * 群聊消息的房间 ID
     */
    @TableField("roomid")
    private String roomid;

    /**
     * 消息序号（用于排序）
     */
    @TableField("seq")
    private Long seq;

    /**
     * 消息类型（如 text, image, voice）
     */
    @TableField("msgtype")
    private String msgtype;

    /**
     * 解密后的明文内容（TEXT 类型）
     */
    @TableField("content")
    private String content;

    @TableField("keyword")
    private String keyword;

    /**
     * 消息发送时间
     */
    @TableField("msgtime")
    private String msgtime;

    /**
     * 消息状态（是否已处理）
     */
    @TableField("status")
    private Integer status;

    /**
     * 逻辑删除标志（0:正常，1:已删除）
     */
    @TableLogic
    @TableField("is_deleted")
    private Integer isDeleted;

    /**
     * 创建时间（备用字段，可选）
     */
    @TableField("created_at")
    private LocalDateTime createdAt;

    /**
     * 修改时间（自动填充）
     */
    @TableField("updated_at")
    private LocalDateTime updatedAt;



}
