| 1234567891011121314151617181920212223242526272829303132 |
- CREATE TABLE IF NOT EXISTS messages (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- sender_id INT DEFAULT NULL COMMENT 'Sender User ID',
- receiver_id INT NOT NULL COMMENT 'Receiver User ID',
- app_id INT DEFAULT NULL COMMENT 'Source Application ID',
- type VARCHAR(20) NOT NULL COMMENT 'MESSAGE or NOTIFICATION',
- content_type VARCHAR(20) NOT NULL DEFAULT 'TEXT' COMMENT 'TEXT, IMAGE, VIDEO, FILE',
- title VARCHAR(255) NOT NULL COMMENT 'Message Title',
- content TEXT NOT NULL COMMENT 'Message Content or JSON',
- action_url VARCHAR(1000) DEFAULT NULL COMMENT 'SSO Jump URL',
- action_text VARCHAR(50) DEFAULT NULL COMMENT 'Button Text',
- is_read TINYINT(1) NOT NULL DEFAULT 0 COMMENT 'Is Read',
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- read_at TIMESTAMP NULL DEFAULT NULL,
- INDEX idx_receiver_id (receiver_id),
- INDEX idx_sender_id (sender_id),
- INDEX idx_app_id (app_id),
- FOREIGN KEY (receiver_id) REFERENCES users(id) ON DELETE CASCADE,
- FOREIGN KEY (sender_id) REFERENCES users(id) ON DELETE SET NULL,
- FOREIGN KEY (app_id) REFERENCES applications(id) ON DELETE SET NULL
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Messages Table';
- CREATE TABLE IF NOT EXISTS user_devices (
- id INT AUTO_INCREMENT PRIMARY KEY,
- user_id INT NOT NULL,
- device_token VARCHAR(255) NOT NULL COMMENT 'Push Token',
- platform VARCHAR(20) NOT NULL COMMENT 'ios, android, harmony',
- device_name VARCHAR(100) DEFAULT NULL,
- last_active TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uq_user_device (user_id, device_token),
- FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='User Push Devices';
|