-- 飞书群聊消息采集表
-- 参考 wechat_group_message 表结构设计

CREATE TABLE IF NOT EXISTS `feishu_group_message` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `chat_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '群聊 chat_id, 如 oc_xxx',
  `chat_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '群聊名称',
  `sender_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '发送者 open_id 或 user_id',
  `sender_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '发送者显示名称',
  `msg_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'text' COMMENT '消息类型: text/post/image/media/audio/file/sticker/system',
  `content` text COLLATE utf8mb4_unicode_ci COMMENT '消息文本内容或描述',
  `media_url` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '媒体文件 COS URL',
  `message_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '飞书消息 ID (om_xxx)',
  `parent_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '父消息 ID (thread 根消息)',
  `root_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '根消息 ID (thread 根消息)',
  `quote_message_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '引用消息 ID (reply 引用的消息)',
  `msg_time` datetime NOT NULL COMMENT '消息发送时间',
  `msg_timestamp` bigint NOT NULL DEFAULT '0' COMMENT '消息时间戳(毫秒)',
  `collected_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '采集入库时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_chat_message` (`chat_id`, `message_id`),
  KEY `idx_chat_time` (`chat_id`, `msg_timestamp`),
  KEY `idx_msg_time` (`msg_timestamp`),
  KEY `idx_sender` (`sender_id`),
  KEY `idx_message_id` (`message_id`),
  KEY `idx_quote_message_id` (`quote_message_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='飞书群聊消息采集表';
