CREATE TABLE IF NOT EXISTS `la_private_chat_session` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `user_a_id` int unsigned NOT NULL DEFAULT 0 COMMENT '较小用户ID',
  `user_b_id` int unsigned NOT NULL DEFAULT 0 COMMENT '较大用户ID',
  `last_message_id` bigint unsigned NOT NULL DEFAULT 0 COMMENT '最后消息ID',
  `last_message_type` varchar(20) NOT NULL DEFAULT 'text' COMMENT '最后消息类型 text/image',
  `last_message_content` varchar(500) NOT NULL DEFAULT '' COMMENT '最后消息内容',
  `last_sender_id` int unsigned NOT NULL DEFAULT 0 COMMENT '最后发送者',
  `user_a_unread` int unsigned NOT NULL DEFAULT 0 COMMENT '用户A未读数',
  `user_b_unread` int unsigned NOT NULL DEFAULT 0 COMMENT '用户B未读数',
  `last_active_time` int unsigned NOT NULL DEFAULT 0 COMMENT '最后活跃时间',
  `create_time` int unsigned NOT NULL DEFAULT 0,
  `update_time` int unsigned NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_pair` (`user_a_id`, `user_b_id`),
  KEY `idx_user_a_active` (`user_a_id`, `last_active_time`),
  KEY `idx_user_b_active` (`user_b_id`, `last_active_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户私聊会话表';

CREATE TABLE IF NOT EXISTS `la_private_chat_message` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `session_id` bigint unsigned NOT NULL DEFAULT 0 COMMENT '会话ID',
  `sender_id` int unsigned NOT NULL DEFAULT 0 COMMENT '发送者',
  `receiver_id` int unsigned NOT NULL DEFAULT 0 COMMENT '接收者',
  `message_type` varchar(20) NOT NULL DEFAULT 'text' COMMENT '消息类型 text/image',
  `content` text NULL COMMENT '消息内容',
  `read_time` int unsigned NOT NULL DEFAULT 0 COMMENT '接收者阅读时间',
  `create_time` int unsigned NOT NULL DEFAULT 0,
  `update_time` int unsigned NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  KEY `idx_session_id` (`session_id`, `id`),
  KEY `idx_receiver_read` (`receiver_id`, `read_time`),
  KEY `idx_sender_time` (`sender_id`, `create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户私聊消息表';
