Files
fquiz/migrations/add_system_messages.sql
chengkai3 1d11bf9fc3 [feat]:[FL-109][增加系统消息发送功能]
- 后端:创建system_messages表模型和Schema
- 后端:实现消息创建、查询、标记已读的服务层
- 后端:新增REST API接口(需admin.system_message权限)
- 前端:完善系统消息抽屉弹窗,显示消息列表
- 前端:自动加载未读数量,支持标记已读
- 数据库:新增迁移脚本建表

Co-authored-by: multica-agent <github@multica.ai>
2026-06-13 23:27:29 +08:00

26 lines
1.1 KiB
SQL

-- Migration: Add system_messages table for system notifications
-- Date: 2026-06-13
-- Description: Create system_messages table to support sending notifications to users
CREATE TABLE IF NOT EXISTS system_messages (
message_id VARCHAR(36) PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
message_type VARCHAR(32) NOT NULL DEFAULT 'info',
target_user_id VARCHAR(36),
is_read BOOLEAN NOT NULL DEFAULT FALSE,
created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
read_at TIMESTAMP WITHOUT TIME ZONE
);
CREATE INDEX idx_system_messages_target_user ON system_messages(target_user_id);
CREATE INDEX idx_system_messages_is_read ON system_messages(is_read);
CREATE INDEX idx_system_messages_created_at ON system_messages(created_at);
CREATE INDEX idx_system_messages_type ON system_messages(message_type);
-- Notes:
-- - target_user_id is NULL for broadcast messages (sent to all users)
-- - target_user_id references users.user_id for user-specific messages
-- - message_type values: 'info', 'warning', 'error', 'success'
-- - is_read tracks whether the message has been read by the target user