持久化设备留言待收听状态并支持重启恢复

This commit is contained in:
stu2not
2026-05-19 14:06:16 +08:00
parent 3164d81bb0
commit 6e104201fb
21 changed files with 1147 additions and 68 deletions

View File

@@ -190,6 +190,28 @@ CREATE TABLE IF NOT EXISTS im_messages (
CREATE INDEX idx_im_msg_sender ON im_messages(sender_type, sender_id, created_at);
CREATE INDEX idx_im_msg_receiver ON im_messages(receiver_type, receiver_id, created_at);
-- device_pending_voice_messages
CREATE TABLE IF NOT EXISTS device_pending_voice_messages (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
target_device_id VARCHAR(64) NOT NULL,
sender_device_id VARCHAR(64),
im_message_id BIGINT NOT NULL,
media_file_key VARCHAR(255) NOT NULL,
audio_url VARCHAR(512),
source VARCHAR(32) NOT NULL DEFAULT 'unknown',
status VARCHAR(32) NOT NULL DEFAULT 'pending',
delivery_count INT NOT NULL DEFAULT 0,
delivered_at DATETIME,
listened_at DATETIME,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT uq_device_pending_voice_target_msg UNIQUE (target_device_id, im_message_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE INDEX idx_device_pending_voice_target_status_created ON device_pending_voice_messages(target_device_id, status, created_at);
CREATE INDEX idx_device_pending_voice_sender ON device_pending_voice_messages(sender_device_id);
CREATE INDEX idx_device_pending_voice_im_message ON device_pending_voice_messages(im_message_id);
-- child_location_current
CREATE TABLE IF NOT EXISTS child_location_current (
child_id BIGINT UNSIGNED PRIMARY KEY,