-- CreateTable CREATE TABLE `User` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `username` VARCHAR(191) NOT NULL, `password` VARCHAR(191) NOT NULL, UNIQUE INDEX `User_username_key`(`username`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `Character` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `userId` INTEGER NOT NULL, `name` VARCHAR(191) NOT NULL, `hitpoints` INTEGER NOT NULL DEFAULT 100, `mana` INTEGER NOT NULL DEFAULT 100, `level` INTEGER NOT NULL DEFAULT 1, `experience` INTEGER NOT NULL DEFAULT 0, `role` VARCHAR(191) NOT NULL DEFAULT 'player', `position_x` INTEGER NOT NULL, `position_y` INTEGER NOT NULL, `rotation` INTEGER NOT NULL, `zoneId` INTEGER NOT NULL, UNIQUE INDEX `Character_name_key`(`name`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `Zone` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `name` VARCHAR(191) NOT NULL, `width` INTEGER NOT NULL, `height` INTEGER NOT NULL, `tiles` JSON NOT NULL, `walls` JSON NOT NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updatedAt` DATETIME(3) NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `ZoneDecoration` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `zoneId` INTEGER NOT NULL, `type` INTEGER NOT NULL, `position_x` INTEGER NOT NULL, `position_y` INTEGER NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `Chat` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `characterId` INTEGER NOT NULL, `zoneId` INTEGER NOT NULL, `message` VARCHAR(191) NOT NULL, `createdAt` DATETIME(3) NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- AddForeignKey ALTER TABLE `Character` ADD CONSTRAINT `Character_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `User`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `Character` ADD CONSTRAINT `Character_zoneId_fkey` FOREIGN KEY (`zoneId`) REFERENCES `Zone`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `ZoneDecoration` ADD CONSTRAINT `ZoneDecoration_zoneId_fkey` FOREIGN KEY (`zoneId`) REFERENCES `Zone`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `Chat` ADD CONSTRAINT `Chat_characterId_fkey` FOREIGN KEY (`characterId`) REFERENCES `Character`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `Chat` ADD CONSTRAINT `Chat_zoneId_fkey` FOREIGN KEY (`zoneId`) REFERENCES `Zone`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;