-- CreateTable CREATE TABLE "User" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "uuid" TEXT NOT NULL, "email" TEXT NOT NULL, "name" TEXT, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "language" TEXT DEFAULT 'en' ); -- CreateTable CREATE TABLE "UserSession" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "uuid" TEXT NOT NULL, "userId" INTEGER NOT NULL, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "expiresAt" DATETIME NOT NULL, CONSTRAINT "UserSession_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE ); -- CreateTable CREATE TABLE "Game" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "uuid" TEXT NOT NULL, "title" TEXT NOT NULL, "system" TEXT NOT NULL, "genre" TEXT, "publisher" TEXT, "developer" TEXT, "description" TEXT ); -- CreateTable CREATE TABLE "GameSave" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "uuid" TEXT NOT NULL, "data" BLOB NOT NULL, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "gameId" INTEGER NOT NULL, "userId" INTEGER NOT NULL, CONSTRAINT "GameSave_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game" ("id") ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT "GameSave_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE ); -- CreateIndex CREATE UNIQUE INDEX "User_uuid_key" ON "User"("uuid"); -- CreateIndex CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); -- CreateIndex CREATE UNIQUE INDEX "UserSession_uuid_key" ON "UserSession"("uuid"); -- CreateIndex CREATE UNIQUE INDEX "Game_uuid_key" ON "Game"("uuid"); -- CreateIndex CREATE UNIQUE INDEX "GameSave_uuid_key" ON "GameSave"("uuid");