-- CreateTable CREATE TABLE `MihomeAccount` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `key` VARCHAR(191) NOT NULL DEFAULT 'default', `userId` VARCHAR(191) NOT NULL DEFAULT '', `status` VARCHAR(191) NOT NULL DEFAULT 'unknown', `lastError` VARCHAR(191) NOT NULL DEFAULT '', `updatedAt` DATETIME(3) NOT NULL, UNIQUE INDEX `MihomeAccount_key_key`(`key`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `MihomeHome` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `homeId` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), UNIQUE INDEX `MihomeHome_homeId_key`(`homeId`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `MihomeDevice` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `did` VARCHAR(191) NOT NULL, `homeId` VARCHAR(191) NOT NULL, `model` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, `alias` VARCHAR(191) NULL, `tempSiid` INTEGER NOT NULL, `tempPiid` INTEGER NOT NULL, `humSiid` INTEGER NOT NULL, `humPiid` INTEGER NOT NULL, `battSiid` INTEGER NOT NULL, `battPiid` INTEGER NOT NULL, `battery` INTEGER NULL, `batteryAt` DATETIME(3) NULL, `enabled` BOOLEAN NOT NULL DEFAULT true, `lastSyncAt` DATETIME(3) NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), UNIQUE INDEX `MihomeDevice_did_key`(`did`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `MihomeEnvSample` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `deviceId` INTEGER NOT NULL, `date` DATETIME(3) NOT NULL, `temperature` DOUBLE NULL, `humidity` DOUBLE NULL, `temperatureAvg` DOUBLE NULL, `humidityAvg` DOUBLE NULL, `temperatureMin` DOUBLE NULL, `temperatureMax` DOUBLE NULL, `humidityMin` DOUBLE NULL, `humidityMax` DOUBLE NULL, `origin` VARCHAR(191) NOT NULL DEFAULT 'live', `sampledAt` DATETIME(3) NULL, `raw` JSON NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), INDEX `MihomeEnvSample_deviceId_date_idx`(`deviceId`, `date`), UNIQUE INDEX `MihomeEnvSample_deviceId_date_key`(`deviceId`, `date`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `MihomeEnvHour` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `deviceId` INTEGER NOT NULL, `hour` DATETIME(3) NOT NULL, `temperatureAvg` DOUBLE NULL, `humidityAvg` DOUBLE NULL, `raw` JSON NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), INDEX `MihomeEnvHour_deviceId_hour_idx`(`deviceId`, `hour`), UNIQUE INDEX `MihomeEnvHour_deviceId_hour_key`(`deviceId`, `hour`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- AddForeignKey ALTER TABLE `MihomeDevice` ADD CONSTRAINT `MihomeDevice_homeId_fkey` FOREIGN KEY (`homeId`) REFERENCES `MihomeHome`(`homeId`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `MihomeEnvSample` ADD CONSTRAINT `MihomeEnvSample_deviceId_fkey` FOREIGN KEY (`deviceId`) REFERENCES `MihomeDevice`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `MihomeEnvHour` ADD CONSTRAINT `MihomeEnvHour_deviceId_fkey` FOREIGN KEY (`deviceId`) REFERENCES `MihomeDevice`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;