from tortoise import BaseDBAsyncClient async def upgrade(db: BaseDBAsyncClient) -> str: return """ CREATE TABLE IF NOT EXISTS "ingame_coordinates" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "x" INT NOT NULL, "y" INT NOT NULL, "z" INT NOT NULL ); CREATE TABLE IF NOT EXISTS "players" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "username" VARCHAR(20) NOT NULL UNIQUE, "is_dead" INT NOT NULL DEFAULT 0 ) /* */; CREATE TABLE IF NOT EXISTS "player_deaths" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "cause" VARCHAR(32) NOT NULL, "timestamp" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, "coordinates_id" INT NOT NULL REFERENCES "ingame_coordinates" ("id") ON DELETE CASCADE, "player_id" INT NOT NULL REFERENCES "players" ("id") ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS "player_session" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "connected_at" TIMESTAMP NOT NULL, "disconnected_at" TIMESTAMP NOT NULL, "connected_coords_id" INT NOT NULL REFERENCES "ingame_coordinates" ("id") ON DELETE CASCADE, "disconnected_coords_id" INT REFERENCES "ingame_coordinates" ("id") ON DELETE CASCADE, "player_id" INT NOT NULL REFERENCES "players" ("id") ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS "steam_profile_summary" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "steam_id" VARCHAR(20) NOT NULL UNIQUE, "profile_name" VARCHAR(32) NOT NULL, "url" VARCHAR(128) NOT NULL, "avatar_url" VARCHAR(128) NOT NULL, "last_update" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, "player_id" INT NOT NULL REFERENCES "players" ("id") ON DELETE CASCADE ); CREATE TABLE IF NOT EXISTS "aerich" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "version" VARCHAR(255) NOT NULL, "app" VARCHAR(100) NOT NULL, "content" JSON NOT NULL );""" async def downgrade(db: BaseDBAsyncClient) -> str: return """ """