40 lines
1.8 KiB
SQL
40 lines
1.8 KiB
SQL
CREATE TABLE IF NOT EXISTS notifications (
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
user_id BIGINT UNSIGNED NOT NULL,
|
|
type VARCHAR(80) NOT NULL,
|
|
title VARCHAR(160) NOT NULL,
|
|
body TEXT NULL,
|
|
report_id BIGINT UNSIGNED NULL,
|
|
read_at DATETIME NULL,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT notifications_user_fk FOREIGN KEY (user_id) REFERENCES users(id),
|
|
CONSTRAINT notifications_report_fk FOREIGN KEY (report_id) REFERENCES reports(id),
|
|
KEY notifications_user_read_created_idx (user_id, read_at, created_at),
|
|
KEY notifications_report_idx (report_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS moderation_flags (
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
content_type VARCHAR(30) NOT NULL,
|
|
report_id BIGINT UNSIGNED NOT NULL,
|
|
message_id BIGINT UNSIGNED NULL,
|
|
reason VARCHAR(120) NOT NULL,
|
|
details TEXT NULL,
|
|
status VARCHAR(30) NOT NULL DEFAULT 'OPEN',
|
|
created_by_user_id BIGINT UNSIGNED NOT NULL,
|
|
resolved_by_user_id BIGINT UNSIGNED NULL,
|
|
resolution_note TEXT NULL,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
resolved_at DATETIME NULL,
|
|
CONSTRAINT moderation_flags_report_fk FOREIGN KEY (report_id) REFERENCES reports(id),
|
|
CONSTRAINT moderation_flags_message_fk FOREIGN KEY (message_id) REFERENCES messages(id),
|
|
CONSTRAINT moderation_flags_created_by_fk FOREIGN KEY (created_by_user_id) REFERENCES users(id),
|
|
CONSTRAINT moderation_flags_resolved_by_fk FOREIGN KEY (resolved_by_user_id) REFERENCES users(id),
|
|
KEY moderation_flags_status_created_idx (status, created_at),
|
|
KEY moderation_flags_report_idx (report_id),
|
|
KEY moderation_flags_message_idx (message_id)
|
|
);
|
|
|
|
ALTER TABLE reward_events
|
|
ADD UNIQUE KEY reward_events_report_reason_unique (report_id, reason);
|