From 3f4fe890dfe941a41e84a7f044df672a5a94bbc5 Mon Sep 17 00:00:00 2001 From: Nils-Johan Gynther Date: Thu, 16 Apr 2026 18:53:48 +0200 Subject: [PATCH] feat: update Recipe model to use TEXT type for description and add seed data for products --- .../migration.sql | 2 + backend/prisma/schema.prisma | 2 +- db/init/002-seed-products.sql | 198 ++++++++++++++++++ 3 files changed, 201 insertions(+), 1 deletion(-) create mode 100644 backend/prisma/migrations/20260416000000_recipe_description_text/migration.sql create mode 100644 db/init/002-seed-products.sql diff --git a/backend/prisma/migrations/20260416000000_recipe_description_text/migration.sql b/backend/prisma/migrations/20260416000000_recipe_description_text/migration.sql new file mode 100644 index 00000000..bf433c32 --- /dev/null +++ b/backend/prisma/migrations/20260416000000_recipe_description_text/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE `Recipe` MODIFY COLUMN `description` TEXT NULL; diff --git a/backend/prisma/schema.prisma b/backend/prisma/schema.prisma index 69888665..2d7dac8c 100644 --- a/backend/prisma/schema.prisma +++ b/backend/prisma/schema.prisma @@ -63,7 +63,7 @@ model InventoryConsumption { model Recipe { id Int @id @default(autoincrement()) name String - description String? + description String? @db.Text instructions String? @db.Text imageUrl String? createdAt DateTime @default(now()) diff --git a/db/init/002-seed-products.sql b/db/init/002-seed-products.sql new file mode 100644 index 00000000..bdb7dfb0 --- /dev/null +++ b/db/init/002-seed-products.sql @@ -0,0 +1,198 @@ +-- Seed: svenska matvaror +-- Körs automatiskt av MariaDB vid första start om databasen är tom. +-- INSERT IGNORE gör att befintliga rader (matchat på name+normalizedName) inte skrivs över. + +INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `isActive`, `createdAt`, `updatedAt`) VALUES +('Ananas', 'ananas', 1, NOW(), NOW()), +('Anka', 'anka', 1, NOW(), NOW()), +('Ankbröst', 'ankbrost', 1, NOW(), NOW()), +('Apelsin', 'apelsin', 1, NOW(), NOW()), +('Aubergine', 'aubergine', 1, NOW(), NOW()), +('Avokado', 'avokado', 1, NOW(), NOW()), +('Banan', 'banan', 1, NOW(), NOW()), +('Basilika', 'basilika', 1, NOW(), NOW()), +('Blandfärs', 'blandfars', 1, NOW(), NOW()), +('Blomkål', 'blomkal', 1, NOW(), NOW()), +('Bläckfisk', 'blackfisk', 1, NOW(), NOW()), +('Blåbär', 'blabar', 1, NOW(), NOW()), +('Broccoli', 'broccoli', 1, NOW(), NOW()), +('Bröd', 'brod', 1, NOW(), NOW()), +('Buljong', 'buljong', 1, NOW(), NOW()), +('Bönor', 'bonor', 1, NOW(), NOW()), +('Chiliflingor', 'chiliflingor', 1, NOW(), NOW()), +('Chilipulver', 'chilipulver', 1, NOW(), NOW()), +('Chips', 'chips', 1, NOW(), NOW()), +('Choklad', 'choklad', 1, NOW(), NOW()), +('Citron', 'citron', 1, NOW(), NOW()), +('Curry (mild)', 'currymild', 1, NOW(), NOW()), +('Curry (stark)', 'currystark', 1, NOW(), NOW()), +('Dill', 'dill', 1, NOW(), NOW()), +('Druvor', 'druvor', 1, NOW(), NOW()), +('Entrecote', 'entrecote', 1, NOW(), NOW()), +('Falukorv', 'falukorv', 1, NOW(), NOW()), +('Fasan', 'fasan', 1, NOW(), NOW()), +('Fil', 'fil', 1, NOW(), NOW()), +('Fisk', 'fisk', 1, NOW(), NOW()), +('Fläskfilé', 'flaskfile', 1, NOW(), NOW()), +('Fläskkarré', 'flaskkarre', 1, NOW(), NOW()), +('Fläskkotlett', 'flaskkotlett', 1, NOW(), NOW()), +('Fläskrevben', 'flaskrevben', 1, NOW(), NOW()), +('Fläsksidfläsk', 'flasksidflask', 1, NOW(), NOW()), +('Fläskytterfilé', 'flaskytterfile', 1, NOW(), NOW()), +('Fryst dill', 'frystdill', 1, NOW(), NOW()), +('Fryst persilja', 'frystpersilja', 1, NOW(), NOW()), +('Färsk basilika', 'farskbasilika', 1, NOW(), NOW()), +('Färsk chili', 'farskchili', 1, NOW(), NOW()), +('Färsk dill', 'farskdill', 1, NOW(), NOW()), +('Färsk ingefära', 'farskingefara', 1, NOW(), NOW()), +('Färsk koriander', 'farskkoriander', 1, NOW(), NOW()), +('Färsk oregano', 'farskoregano', 1, NOW(), NOW()), +('Färsk persilja', 'farskpersilja', 1, NOW(), NOW()), +('Färsk rosmarin', 'farskrosmarin', 1, NOW(), NOW()), +('Färsk timjan', 'farsktimjan', 1, NOW(), NOW()), +('Glass', 'glass', 1, NOW(), NOW()), +('Grädde', 'gradde', 1, NOW(), NOW()), +('Gräddfil', 'graddfil', 1, NOW(), NOW()), +('Grönkål', 'gronkal', 1, NOW(), NOW()), +('Gurka', 'gurka', 1, NOW(), NOW()), +('Gås', 'gas', 1, NOW(), NOW()), +('Hallon', 'hallon', 1, NOW(), NOW()), +('Havregryn', 'havregryn', 1, NOW(), NOW()), +('Ingefärspulver', 'ingefarspulver', 1, NOW(), NOW()), +('Jordgubbar', 'jordgubbar', 1, NOW(), NOW()), +('Juice', 'juice', 1, NOW(), NOW()), +('Kaffe', 'kaffe', 1, NOW(), NOW()), +('Kakor', 'kakor', 1, NOW(), NOW()), +('Kalkon', 'kalkon', 1, NOW(), NOW()), +('Kalkonfilé', 'kalkonfile', 1, NOW(), NOW()), +('Kalkonfärs', 'kalkonfars', 1, NOW(), NOW()), +('Kalvfilé', 'kalvfile', 1, NOW(), NOW()), +('Kalvkotlett', 'kalvkotlett', 1, NOW(), NOW()), +('Kanelstång', 'kanelstang', 1, NOW(), NOW()), +('Ketchup', 'ketchup', 1, NOW(), NOW()), +('Kex', 'kex', 1, NOW(), NOW()), +('Kikärter', 'kikarter', 1, NOW(), NOW()), +('Kiwi', 'kiwi', 1, NOW(), NOW()), +('Korianderfrön', 'korianderfron', 1, NOW(), NOW()), +('Korv', 'korv', 1, NOW(), NOW()), +('Kryddor', 'kryddor', 1, NOW(), NOW()), +('Kumminsfrön', 'kumminsfron', 1, NOW(), NOW()), +('Kyckling', 'kyckling', 1, NOW(), NOW()), +('Kycklingben', 'kycklingben', 1, NOW(), NOW()), +('Kycklingben (lårben)', 'kycklingbenlarben', 1, NOW(), NOW()), +('Kycklingben (vingben)', 'kycklingbenvingben', 1, NOW(), NOW()), +('Kycklingbröst', 'kycklingbrost', 1, NOW(), NOW()), +('Kycklingfilé', 'kycklingfile', 1, NOW(), NOW()), +('Kycklingfärs', 'kycklingfars', 1, NOW(), NOW()), +('Kycklinggrund', 'kycklinggrund', 1, NOW(), NOW()), +('Kycklinghals', 'kycklinghals', 1, NOW(), NOW()), +('Kycklinghel', 'kycklinghel', 1, NOW(), NOW()), +('Kycklinghjärta', 'kycklinghjarta', 1, NOW(), NOW()), +('Kycklingkarré', 'kycklingkarre', 1, NOW(), NOW()), +('Kycklingklubba', 'kycklingklubba', 1, NOW(), NOW()), +('Kycklingkropp', 'kycklingkropp', 1, NOW(), NOW()), +('Kycklinglever', 'kycklinglever', 1, NOW(), NOW()), +('Kycklinglår', 'kycklinglar', 1, NOW(), NOW()), +('Kycklingmälta', 'kycklingmalta', 1, NOW(), NOW()), +('Kycklingrevben', 'kycklingrevben', 1, NOW(), NOW()), +('Kycklingvinge', 'kycklingvinge', 1, NOW(), NOW()), +('Kålrot', 'kalrot', 1, NOW(), NOW()), +('Köttbullar', 'kottbullar', 1, NOW(), NOW()), +('Köttfärs', 'kottfars', 1, NOW(), NOW()), +('Lammbog', 'lammbog', 1, NOW(), NOW()), +('Lammfärs', 'lammfars', 1, NOW(), NOW()), +('Lammhals', 'lammhals', 1, NOW(), NOW()), +('Lammkotlett', 'lammkotlett', 1, NOW(), NOW()), +('Lammrack', 'lammrack', 1, NOW(), NOW()), +('Lammrevben', 'lammrevben', 1, NOW(), NOW()), +('Lammstek', 'lammstek', 1, NOW(), NOW()), +('Lasagne', 'lasagne', 1, NOW(), NOW()), +('Lax', 'lax', 1, NOW(), NOW()), +('Lime', 'lime', 1, NOW(), NOW()), +('Linser', 'linser', 1, NOW(), NOW()), +('Läsk', 'lask', 1, NOW(), NOW()), +('Lök', 'lok', 1, NOW(), NOW()), +('Macka', 'macka', 1, NOW(), NOW()), +('Majonnäs', 'majonnas', 1, NOW(), NOW()), +('Malen kanel', 'malenkanel', 1, NOW(), NOW()), +('Malet kummin', 'maletkummin', 1, NOW(), NOW()), +('Mango', 'mango', 1, NOW(), NOW()), +('Mjöl', 'mjol', 1, NOW(), NOW()), +('Mjölk', 'mjolk', 1, NOW(), NOW()), +('Morot', 'morot', 1, NOW(), NOW()), +('Musslor', 'musslor', 1, NOW(), NOW()), +('Must', 'must', 1, NOW(), NOW()), +('Müsli', 'musli', 1, NOW(), NOW()), +('Nötfärs', 'notfars', 1, NOW(), NOW()), +('Nötter', 'notter', 1, NOW(), NOW()), +('Nötterrin', 'notterrin', 1, NOW(), NOW()), +('Olivolja', 'olivolja', 1, NOW(), NOW()), +('Oregano', 'oregano', 1, NOW(), NOW()), +('Ost', 'ost', 1, NOW(), NOW()), +('Ostskivor', 'ostskivor', 1, NOW(), NOW()), +('Oxfile', 'oxfile', 1, NOW(), NOW()), +('Oxhjärta', 'oxhjarta', 1, NOW(), NOW()), +('Oxlever', 'oxlever', 1, NOW(), NOW()), +('Palsternacka', 'palsternacka', 1, NOW(), NOW()), +('Paprikapulver', 'paprikapulver', 1, NOW(), NOW()), +('Pasta', 'pasta', 1, NOW(), NOW()), +('Persilja', 'persilja', 1, NOW(), NOW()), +('Pizza', 'pizza', 1, NOW(), NOW()), +('Potatis', 'potatis', 1, NOW(), NOW()), +('Proteinpulver', 'proteinpulver', 1, NOW(), NOW()), +('Purjolök', 'purjolok', 1, NOW(), NOW()), +('Päron', 'paron', 1, NOW(), NOW()), +('Quorn', 'quorn', 1, NOW(), NOW()), +('Renkött', 'renkott', 1, NOW(), NOW()), +('Rimmat kött', 'rimmatkott', 1, NOW(), NOW()), +('Ris', 'ris', 1, NOW(), NOW()), +('Rosmarin', 'rosmarin', 1, NOW(), NOW()), +('Russin', 'russin', 1, NOW(), NOW()), +('Räkor', 'rakor', 1, NOW(), NOW()), +('Råbiff', 'rabiff', 1, NOW(), NOW()), +('Rödbeta', 'rodbeta', 1, NOW(), NOW()), +('Rödlök', 'rodlok', 1, NOW(), NOW()), +('Rökt paprikapulver', 'roktpaprikapulver', 1, NOW(), NOW()), +('Saft', 'saft', 1, NOW(), NOW()), +('Sallad', 'sallad', 1, NOW(), NOW()), +('Salt', 'salt', 1, NOW(), NOW()), +('Selleri', 'selleri', 1, NOW(), NOW()), +('Sill', 'sill', 1, NOW(), NOW()), +('Skinka', 'skinka', 1, NOW(), NOW()), +('Smör', 'smor', 1, NOW(), NOW()), +('Socker', 'socker', 1, NOW(), NOW()), +('Spaghetti', 'spaghetti', 1, NOW(), NOW()), +('Spenat', 'spenat', 1, NOW(), NOW()), +('Stark paprikapulver', 'starkpaprikapulver', 1, NOW(), NOW()), +('Strömming', 'stromming', 1, NOW(), NOW()), +('Svartpeppar', 'svartpeppar', 1, NOW(), NOW()), +('Söt paprikapulver', 'sotpaprikapulver', 1, NOW(), NOW()), +('Sötpotatis', 'sotpotatis', 1, NOW(), NOW()), +('Tartar', 'tartar', 1, NOW(), NOW()), +('Te', 'te', 1, NOW(), NOW()), +('Timjan', 'timjan', 1, NOW(), NOW()), +('Tofu', 'tofu', 1, NOW(), NOW()), +('Tomat', 'tomat', 1, NOW(), NOW()), +('Torkad basilika', 'torkadbasilika', 1, NOW(), NOW()), +('Torkad chili', 'torkadchili', 1, NOW(), NOW()), +('Torkad dill', 'torkaddill', 1, NOW(), NOW()), +('Torkad ingefära', 'torkadingefara', 1, NOW(), NOW()), +('Torkad koriander', 'torkadkoriander', 1, NOW(), NOW()), +('Torkad oregano', 'torkadoregano', 1, NOW(), NOW()), +('Torkad persilja', 'torkadpersilja', 1, NOW(), NOW()), +('Torkad rosmarin', 'torkadrosmarin', 1, NOW(), NOW()), +('Torkad timjan', 'torkadtimjan', 1, NOW(), NOW()), +('Torskrygg', 'torskrygg', 1, NOW(), NOW()), +('Vatten', 'vatten', 1, NOW(), NOW()), +('Vegebullar', 'vegebullar', 1, NOW(), NOW()), +('Vegobitar', 'vegobitar', 1, NOW(), NOW()), +('Vegofärs', 'vegofars', 1, NOW(), NOW()), +('Vegokorv', 'vegokorv', 1, NOW(), NOW()), +('Vildsvin', 'vildsvin', 1, NOW(), NOW()), +('Viltkött', 'viltkott', 1, NOW(), NOW()), +('Vinäger', 'vinager', 1, NOW(), NOW()), +('Vitkål', 'vitkal', 1, NOW(), NOW()), +('Vitlök', 'vitlok', 1, NOW(), NOW()), +('Vitpeppar', 'vitpeppar', 1, NOW(), NOW()), +('Ägg', 'agg', 1, NOW(), NOW()), +('Älgkött', 'algkott', 1, NOW(), NOW());