diff --git a/migrations/0001_initialize.sql b/migrations/0001_initialize.sql new file mode 100644 index 0000000..7c5ee0c --- /dev/null +++ b/migrations/0001_initialize.sql @@ -0,0 +1,186 @@ +-- CreateTable +CREATE TABLE "appeals" ( + "approved" BOOLEAN, + "ban_reason" TEXT NOT NULL, + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "id" TEXT NOT NULL PRIMARY KEY, + "learned" TEXT NOT NULL, + "reason_for_unban" TEXT NOT NULL, + "user" JSONB NOT NULL +); + +-- CreateTable +CREATE TABLE "appeal_bans" ( + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT NOT NULL, + "user" TEXT NOT NULL PRIMARY KEY +); + +-- CreateTable +CREATE TABLE "et_members" ( + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT NOT NULL, + "id" TEXT NOT NULL PRIMARY KEY, + "is_management" BOOLEAN NOT NULL DEFAULT false, + "name" TEXT NOT NULL, + "points" INTEGER NOT NULL DEFAULT 0, + "roblox_id" INTEGER +); + +-- CreateTable +CREATE TABLE "et_strikes" ( + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT NOT NULL, + "id" TEXT NOT NULL PRIMARY KEY, + "reason" TEXT NOT NULL, + "user" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "events" ( + "answer" TEXT, + "answered_at" DATETIME, + "approved" BOOLEAN NOT NULL DEFAULT false, + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT NOT NULL, + "day" INTEGER NOT NULL, + "details" TEXT NOT NULL, + "id" TEXT NOT NULL PRIMARY KEY, + "month" INTEGER NOT NULL, + "pending" BOOLEAN NOT NULL DEFAULT true, + "performed_at" DATETIME, + "reached_minimum_player_count" BOOLEAN NOT NULL DEFAULT false, + "type" TEXT NOT NULL, + "year" INTEGER NOT NULL +); + +-- CreateTable +CREATE TABLE "game_appeals" ( + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "id" TEXT NOT NULL PRIMARY KEY, + "reason_for_unban" TEXT NOT NULL, + "roblox_id" INTEGER NOT NULL, + "roblox_username" TEXT NOT NULL, + "type" TEXT NOT NULL, + "what_happened" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "game_mod_logs" ( + "action" TEXT NOT NULL, + "evidence" TEXT NOT NULL, + "executed_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "executor" TEXT NOT NULL, + "id" TEXT NOT NULL PRIMARY KEY, + "target" INTEGER NOT NULL +); + +-- CreateTable +CREATE TABLE "game_mod_notes" ( + "content" TEXT NOT NULL, + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" TEXT NOT NULL, + "id" TEXT NOT NULL PRIMARY KEY, + "target" INTEGER NOT NULL +); + +-- CreateTable +CREATE TABLE "inactivity_notices" ( + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "decisions" JSONB NOT NULL, + "departments" JSONB NOT NULL DEFAULT [], + "end" TEXT NOT NULL, + "hiatus" BOOLEAN NOT NULL DEFAULT false, + "id" TEXT NOT NULL PRIMARY KEY, + "reason" TEXT NOT NULL, + "start" TEXT NOT NULL, + "user" JSONB NOT NULL +); + +-- CreateTable +CREATE TABLE "push_notifications" ( + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "event_id" TEXT NOT NULL, + "event_type" TEXT NOT NULL, + "token" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "reports" ( + "attachments" JSONB NOT NULL DEFAULT [], + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "id" TEXT NOT NULL PRIMARY KEY, + "open" BOOLEAN NOT NULL DEFAULT true, + "target_ids" JSONB NOT NULL DEFAULT [], + "target_usernames" JSONB NOT NULL DEFAULT [], + "type" TEXT NOT NULL DEFAULT 'exploit', + "user" JSONB +); + +-- CreateTable +CREATE TABLE "short_links" ( + "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + "destination" TEXT NOT NULL, + "path" TEXT NOT NULL PRIMARY KEY, + "user" TEXT NOT NULL +); + +-- CreateIndex +CREATE UNIQUE INDEX "appeals_id_key" ON "appeals"("id"); + +-- CreateIndex +CREATE INDEX "idx_appeals_approved_created_at" ON "appeals"("approved", "created_at"); + +-- CreateIndex +CREATE UNIQUE INDEX "appeal_bans_user_key" ON "appeal_bans"("user"); + +-- CreateIndex +CREATE UNIQUE INDEX "et_members_id_key" ON "et_members"("id"); + +-- CreateIndex +CREATE INDEX "idx_et_members_id_name" ON "et_members"("id", "name"); + +-- CreateIndex +CREATE UNIQUE INDEX "et_strikes_id_key" ON "et_strikes"("id"); + +-- CreateIndex +CREATE UNIQUE INDEX "events_id_key" ON "events"("id"); + +-- CreateIndex +CREATE INDEX "idx_events_month_year" ON "events"("month", "year"); + +-- CreateIndex +CREATE UNIQUE INDEX "game_appeals_id_key" ON "game_appeals"("id"); + +-- CreateIndex +CREATE INDEX "idx_game_appeals_created_at" ON "game_appeals"("created_at"); + +-- CreateIndex +CREATE UNIQUE INDEX "game_mod_logs_id_key" ON "game_mod_logs"("id"); + +-- CreateIndex +CREATE INDEX "idx_game_mod_logs_target" ON "game_mod_logs"("target"); + +-- CreateIndex +CREATE UNIQUE INDEX "game_mod_notes_id_key" ON "game_mod_notes"("id"); + +-- CreateIndex +CREATE INDEX "idx_game_mod_notes_target" ON "game_mod_notes"("target"); + +-- CreateIndex +CREATE UNIQUE INDEX "inactivity_notices_id_key" ON "inactivity_notices"("id"); + +-- CreateIndex +CREATE INDEX "idx_inactivity_notices_end_start" ON "inactivity_notices"("end", "start"); + +-- CreateIndex +CREATE UNIQUE INDEX "push_notifications_event_id_key" ON "push_notifications"("event_id"); + +-- CreateIndex +CREATE UNIQUE INDEX "reports_id_key" ON "reports"("id"); + +-- CreateIndex +CREATE INDEX "idx_reports_created_at_open" ON "reports"("created_at", "open"); + +-- CreateIndex +CREATE UNIQUE INDEX "short_links_path_key" ON "short_links"("path");