93 lines
3.4 KiB
SQL
93 lines
3.4 KiB
SQL
-- CreateTable
|
|
CREATE TABLE `Product` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(191) NOT NULL,
|
|
`normalizedName` VARCHAR(191) NOT NULL,
|
|
`category` VARCHAR(191) NULL,
|
|
`canonicalName` VARCHAR(191) NULL,
|
|
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
`deletedAt` DATETIME(3) NULL,
|
|
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updatedAt` DATETIME(3) NOT NULL,
|
|
|
|
UNIQUE INDEX `Product_normalizedName_key`(`normalizedName`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `InventoryItem` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`productId` INTEGER NOT NULL,
|
|
`quantity` DECIMAL(10, 2) NOT NULL,
|
|
`unit` VARCHAR(191) NOT NULL,
|
|
`brand` VARCHAR(191) NULL,
|
|
`location` VARCHAR(191) NULL,
|
|
`priority` INTEGER NULL,
|
|
`purchaseDate` DATETIME(3) NULL,
|
|
`opened` BOOLEAN NULL,
|
|
`shelfNote` VARCHAR(191) NULL,
|
|
`suitableFor` VARCHAR(191) NULL,
|
|
`isOnSale` BOOLEAN NULL,
|
|
`priceLevel` INTEGER NULL,
|
|
`bestBeforeDate` DATETIME(3) NULL,
|
|
`proteinType` VARCHAR(191) NULL,
|
|
`isLeftover` BOOLEAN NULL,
|
|
`comment` VARCHAR(191) NULL,
|
|
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
`updatedAt` DATETIME(3) NOT NULL,
|
|
|
|
INDEX `InventoryItem_productId_idx`(`productId`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `InventoryConsumption` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`inventoryItemId` INTEGER NOT NULL,
|
|
`amountUsed` DECIMAL(10, 2) NOT NULL,
|
|
`comment` VARCHAR(191) NULL,
|
|
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `Recipe` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`name` VARCHAR(191) NOT NULL,
|
|
`description` VARCHAR(191) NULL,
|
|
`instructions` TEXT NULL,
|
|
`imageUrl` VARCHAR(191) 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 `RecipeIngredient` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`recipeId` INTEGER NOT NULL,
|
|
`productId` INTEGER NOT NULL,
|
|
`quantity` DECIMAL(10, 2) NOT NULL,
|
|
`unit` VARCHAR(191) NOT NULL,
|
|
`note` VARCHAR(191) 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;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `InventoryItem` ADD CONSTRAINT `InventoryItem_productId_fkey` FOREIGN KEY (`productId`) REFERENCES `Product`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `InventoryConsumption` ADD CONSTRAINT `InventoryConsumption_inventoryItemId_fkey` FOREIGN KEY (`inventoryItemId`) REFERENCES `InventoryItem`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `RecipeIngredient` ADD CONSTRAINT `RecipeIngredient_recipeId_fkey` FOREIGN KEY (`recipeId`) REFERENCES `Recipe`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `RecipeIngredient` ADD CONSTRAINT `RecipeIngredient_productId_fkey` FOREIGN KEY (`productId`) REFERENCES `Product`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|