Added new moderator notes system.
This commit is contained in:
parent
8c52338751
commit
96f9ea7271
20 changed files with 918 additions and 61 deletions
46
database/2023_07_24_201010_add_moderator_notes_table.php
Normal file
46
database/2023_07_24_201010_add_moderator_notes_table.php
Normal file
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
use Index\Data\IDbConnection;
|
||||
use Index\Data\Migration\IDbMigration;
|
||||
|
||||
final class AddModeratorNotesTable_20230724_201010 implements IDbMigration {
|
||||
public function migrate(IDbConnection $conn): void {
|
||||
$conn->execute('
|
||||
CREATE TABLE msz_users_modnotes (
|
||||
note_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
user_id INT(10) UNSIGNED NOT NULL,
|
||||
author_id INT(10) UNSIGNED NULL DEFAULT NULL,
|
||||
note_created TIMESTAMP NOT NULL DEFAULT current_timestamp(),
|
||||
note_title VARCHAR(255) NOT NULL,
|
||||
note_body TEXT NOT NULL,
|
||||
PRIMARY KEY (note_id),
|
||||
KEY users_modnotes_user_foreign (user_id),
|
||||
KEY users_modnotes_author_foreign (author_id),
|
||||
KEY users_modnotes_created_index (note_created),
|
||||
CONSTRAINT users_modnotes_user_foreign
|
||||
FOREIGN KEY (user_id)
|
||||
REFERENCES msz_users (user_id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE,
|
||||
CONSTRAINT users_modnotes_author_foreign
|
||||
FOREIGN KEY (author_id)
|
||||
REFERENCES msz_users (user_id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE SET NULL
|
||||
) ENGINE=InnoDB COLLATE=utf8mb4_bin
|
||||
');
|
||||
|
||||
// migrate existing notes
|
||||
$conn->execute('
|
||||
INSERT INTO msz_users_modnotes (user_id, author_id, note_created, note_title, note_body)
|
||||
SELECT user_id, issuer_id, warning_created, warning_note, COALESCE(warning_note_private, "")
|
||||
FROM msz_user_warnings
|
||||
WHERE warning_type = 0
|
||||
');
|
||||
|
||||
// delete notes from the warnings table
|
||||
$conn->execute('DELETE FROM msz_user_warnings WHERE warning_type = 0');
|
||||
|
||||
// for good measure update silences to bans since i forgot to do that as a migration
|
||||
$conn->execute('UPDATE msz_user_warnings SET warning_type = 3 WHERE warning_type = 2');
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue