From e7a16068164cf3326d842f3d620f5e3d4370cbb6 Mon Sep 17 00:00:00 2001 From: Nils-Johan Gynther Date: Sun, 19 Apr 2026 22:46:10 +0200 Subject: [PATCH] Refactor code structure for improved readability and maintainability --- data/matvaror_sverige.csv | 194 ------- data/seed_products.sql | 205 ------- db/init/002-seed-products.sql.disabled | 198 ------- db/seeds/categories_supplement.sql | 311 ---------- db/seeds/products_seed.sql | 537 ----------------- db/seeds/seed_all.sql | 772 +++++++++++++++++++++++++ db/seeds/seed_product_categories.sql | 392 ------------- 7 files changed, 772 insertions(+), 1837 deletions(-) delete mode 100644 data/matvaror_sverige.csv delete mode 100644 data/seed_products.sql delete mode 100644 db/init/002-seed-products.sql.disabled delete mode 100644 db/seeds/categories_supplement.sql delete mode 100644 db/seeds/products_seed.sql create mode 100644 db/seeds/seed_all.sql delete mode 100644 db/seeds/seed_product_categories.sql diff --git a/data/matvaror_sverige.csv b/data/matvaror_sverige.csv deleted file mode 100644 index 09d3f631..00000000 --- a/data/matvaror_sverige.csv +++ /dev/null @@ -1,194 +0,0 @@ -Matvara -Ananas -Anka -Ankbröst -Apelsin -Aubergine -Avokado -Banan -Basilika -Blandfärs -Blomkål -Bläckfisk -Blåbär -Broccoli -Bröd -Buljong -Bönor -Chiliflingor -Chilipulver -Chips -Choklad -Citron -Curry (mild) -Curry (stark) -Dill -Druvor -Entrecote -Falukorv -Fasan -Fil -Fisk -Fläskfilé -Fläskkarré -Fläskkotlett -Fläskrevben -Fläsksidfläsk -Fläskytterfilé -Fryst dill -Fryst persilja -Färsk basilika -Färsk chili -Färsk dill -Färsk ingefära -Färsk koriander -Färsk oregano -Färsk persilja -Färsk rosmarin -Färsk timjan -Glass -Grädde -Gräddfil -Grönkål -Gurka -Gås -Hallon -Havregryn -Ingefärspulver -Jordgubbar -Juice -Kaffe -Kakor -Kalkon -Kalkonfilé -Kalkonfärs -Kalvfilé -Kalvkotlett -Kanelstång -Ketchup -Kex -Kikärter -Kiwi -Korianderfrön -Korv -Kryddor -Kumminsfrön -Kyckling -Kycklingben -Kycklingben (lårben) -Kycklingben (vingben) -Kycklingbröst -Kycklingfilé -Kycklingfärs -Kycklinggrund -Kycklinghals -Kycklinghel -Kycklinghjärta -Kycklingkarré -Kycklingklubba -Kycklingkropp -Kycklinglever -Kycklinglår -Kycklingmälta -Kycklingrevben -Kycklingvinge -Kålrot -Köttbullar -Köttfärs -Lammbog -Lammfärs -Lammhals -Lammkotlett -Lammrack -Lammrevben -Lammstek -Lasagne -Lax -Lime -Linser -Läsk -Lök -Macka -Majonnäs -Malen kanel -Malet kummin -Mango -Mjöl -Mjölk -Morot -Musslor -Must -Müsli -Nötfärs -Nötter -Nötterrin -Olivolja -Oregano -Ost -Ostskivor -Oxfile -Oxhjärta -Oxlever -Palsternacka -Paprikapulver -Pasta -Persilja -Pizza -Potatis -Proteinpulver -Purjolök -Päron -Quorn -Renkött -Rimmat kött -Ris -Rosmarin -Russin -Räkor -Råbiff -Rödbeta -Rödlök -Rökt paprikapulver -Saft -Sallad -Salt -Selleri -Sill -Skinka -Smör -Socker -Spaghetti -Spenat -Stark paprikapulver -Strömming -Svartpeppar -Söt paprikapulver -Sötpotatis -Tartar -Te -Timjan -Tofu -Tomat -Torkad basilika -Torkad chili -Torkad dill -Torkad ingefära -Torkad koriander -Torkad oregano -Torkad persilja -Torkad rosmarin -Torkad timjan -Torskrygg -Vatten -Vegebullar -Vegobitar -Vegofärs -Vegokorv -Vildsvin -Viltkött -Vinäger -Vitkål -Vitlök -Vitpeppar -Ägg -Älgkött diff --git a/data/seed_products.sql b/data/seed_products.sql deleted file mode 100644 index 70140299..00000000 --- a/data/seed_products.sql +++ /dev/null @@ -1,205 +0,0 @@ --- Seed: svenska matvaror --- Kör med: docker exec recipe-app-recipe-db-1 mariadb -uroot -p"LÖSENORD" recipe_app < /opt/containers/recipe-app/data/seed_products.sql --- normalizedName genereras med samma logik som backend/src/common/utils/normalize-name.ts - -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()), -('Crème fraiche', 'cremefraiche', 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()), -('Gröna druvor', 'gronadruvor', 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ättmjölk', 'lattmjolk', 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()), -('Marmelad', 'marmelad', 1, NOW(), NOW()), -('Mellanmjölk', 'mellanmjolk', 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öda druvor', 'rodadruvor', 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()), -('Standardmjölk', 'standardmjolk', 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()); diff --git a/db/init/002-seed-products.sql.disabled b/db/init/002-seed-products.sql.disabled deleted file mode 100644 index bdb7dfb0..00000000 --- a/db/init/002-seed-products.sql.disabled +++ /dev/null @@ -1,198 +0,0 @@ --- 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()); diff --git a/db/seeds/categories_supplement.sql b/db/seeds/categories_supplement.sql deleted file mode 100644 index 732f4338..00000000 --- a/db/seeds/categories_supplement.sql +++ /dev/null @@ -1,311 +0,0 @@ --- ============================================================ --- Supplement: Kategorier från produktfilen --- Använder INSERT IGNORE + subqueries — säkert att köra flera gånger. --- --- Kör på servern: --- DB_PASS=$(grep MARIADB_ROOT_PASSWORD .env | cut -d= -f2) --- docker exec -i recipe-db mariadb -uroot -p"$DB_PASS" recipe_app < db/seeds/categories_supplement.sql --- ============================================================ - --- ============================================================ --- LEVEL 1 — Toppkategorier (nya) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) VALUES - ('Dryck', NULL); - --- ============================================================ --- LEVEL 2 — under Dryck --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Öl & cider', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Läsk och Energidryck', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL; - --- ============================================================ --- LEVEL 2 — under Bröd & Kakor (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Knäckebröd & Skorpor', id FROM `Category` WHERE name = 'Bröd & Kakor' AND parentId IS NULL; - --- ============================================================ --- LEVEL 2 — under Färdigmat (tillägg) --- ============================================================ --- (Kylda såser hanteras på L3 — Såser, grytbaser... finns redan) - --- ============================================================ --- LEVEL 2 — under Fryst (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Frukt & Bär', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Färdigmat', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; - --- ============================================================ --- LEVEL 2 — under Frukt & Grönt (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Grönsaker', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Frukt', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Färska bär', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Svamp', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; - --- ============================================================ --- LEVEL 2 — under Glass, godis & snacks (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Choklad', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL; - --- ============================================================ --- LEVEL 2 — under Kött, chark & fågel (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Kött', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fågel', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; - --- ============================================================ --- LEVEL 2 — under Mejeri, ost & ägg (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Mellanmål & desserter', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL; - --- ============================================================ --- LEVEL 2 — under Skafferi (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Torkad frukt', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Torra baljväxter', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Bakning', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Bröd & Kakor > Knäckebröd & Skorpor --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Knäckebröd', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Knäckebröd & Skorpor' - WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Bröd & Kakor > Kex & Kakor (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Söta kex & kakor', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kex & Kakor' - WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Färdigmat > Såser, grytbaser & övriga smaksättare (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Kylda såser', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Såser, grytbaser & övriga smaksättare' - WHERE c1.name = 'Färdigmat' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Fryst > Färdigmat --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Pizza, paj & piroger', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färdigmat' - WHERE c1.name = 'Fryst' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Fryst > Grönsaker & kryddor (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Grönsaker', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker & kryddor' - WHERE c1.name = 'Fryst' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Frukt & Grönt > Grönsaker --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Bönor & Groddar', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Paprika', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Övriga grönsaker', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Tomater', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Färdigskuret', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Frukt & Grönt > Potatis & rotsaker (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Rotsaker', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Frukt & Grönt > Frukt --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Druvor', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Citrusfrukt', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Glass, godis & snacks > Choklad --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Chokladkakor & rullar', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Choklad' - WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Kött, chark & fågel > Kött --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Färdiglagat & pannfärdigt', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' - WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fläsk', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' - WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Kött, chark & fågel > Fågel --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fryst fågel', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fågel' - WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Mejeri, ost & ägg > Ost (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Matlagningsost', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Ost' - WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Skafferi > Torra baljväxter --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fröer & kärnor', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Torra baljväxter' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Skafferi > Bakning --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Baktillbehör', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bakning' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Skafferi > Kryddor & smaksättare (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Övriga smaksättare', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Skafferi > Pasta, ris & matgryn (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Pasta', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pasta, ris & matgryn' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Skafferi > Konserver & burkar (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fruktkonserver', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Grönsakskonserver', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fisk-& skaldjurskonserver', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 3 — under Skafferi > Asien (tillägg) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Nudlar', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Asien' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; - --- ============================================================ --- LEVEL 1 — Övrigt (ny toppkategori) --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) VALUES - ('Övrigt', NULL); - --- ============================================================ --- LEVEL 2 — under Övrigt --- ============================================================ -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Frukt och grönt', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Kött och fågel', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fisk', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Mejeri', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fryst', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Skafferi', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Barn och Godis', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Dryck', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; diff --git a/db/seeds/products_seed.sql b/db/seeds/products_seed.sql deleted file mode 100644 index eedd923b..00000000 --- a/db/seeds/products_seed.sql +++ /dev/null @@ -1,537 +0,0 @@ --- ============================================================ --- Generisk produktseed baserad på matvaror_sverige.csv --- Placerar varje produkt i djupaste möjliga befintliga kategori. --- --- normalizedName = trim + lowercase + strip diacritics + strip non-alphanum + no spaces --- Säkert att köra flera gånger tack vare INSERT IGNORE (unik på normalizedName). --- --- Kör på servern: --- DB_PASS=$(grep MARIADB_ROOT_PASSWORD .env | cut -d= -f2) --- docker exec -i recipe-db mariadb -uroot -p"$DB_PASS" recipe_app < db/seeds/products_seed.sql --- ============================================================ - --- ============================================================ --- FRUKT (L2 under Frukt & Grönt) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Ananas', 'ananas', (SELECT id FROM `Category` WHERE name = 'Frukt' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Banan', 'banan', (SELECT id FROM `Category` WHERE name = 'Frukt' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kiwi', 'kiwi', (SELECT id FROM `Category` WHERE name = 'Frukt' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Mango', 'mango', (SELECT id FROM `Category` WHERE name = 'Frukt' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Päron', 'paron', (SELECT id FROM `Category` WHERE name = 'Frukt' LIMIT 1)); - --- ============================================================ --- CITRUSFRUKT (L3 under Frukt & Grönt > Frukt) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Apelsin', 'apelsin', (SELECT id FROM `Category` WHERE name = 'Citrusfrukt' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Citron', 'citron', (SELECT id FROM `Category` WHERE name = 'Citrusfrukt' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lime', 'lime', (SELECT id FROM `Category` WHERE name = 'Citrusfrukt' LIMIT 1)); - --- ============================================================ --- DRUVOR (L3 under Frukt & Grönt > Frukt) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Druvor', 'druvor', (SELECT id FROM `Category` WHERE name = 'Druvor' LIMIT 1)); - --- ============================================================ --- FÄRSKA BÄR (L2 under Frukt & Grönt) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Blåbär', 'blabar', (SELECT id FROM `Category` WHERE name = 'Färska bär' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Hallon', 'hallon', (SELECT id FROM `Category` WHERE name = 'Färska bär' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Jordgubbar','jordgubbar',(SELECT id FROM `Category` WHERE name = 'Färska bär' LIMIT 1)); - --- ============================================================ --- PAPRIKA (L3 under Frukt & Grönt > Grönsaker) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Paprika', 'paprika', (SELECT id FROM `Category` WHERE name = 'Paprika' LIMIT 1)); - --- ============================================================ --- TOMATER (L3 under Frukt & Grönt > Grönsaker) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Tomat', 'tomat', (SELECT id FROM `Category` WHERE name = 'Tomater' LIMIT 1)); - --- ============================================================ --- ÖVRIGA GRÖNSAKER (L3 under Frukt & Grönt > Grönsaker) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Aubergine', 'aubergine', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Avokado', 'avokado', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Blomkål', 'blomkal', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Broccoli', 'broccoli', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Grönkål', 'gronkal', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Gurka', 'gurka', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lök', 'lok', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Purjolök', 'purjolok', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Rödlök', 'rodlok', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Sallad', 'sallad', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Selleri', 'selleri', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Spenat', 'spenat', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vitlök', 'vitlok', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vitkål', 'vitkal', (SELECT id FROM `Category` WHERE name = 'Övriga grönsaker' LIMIT 1)); - --- ============================================================ --- ROTSAKER (L3 under Frukt & Grönt > Potatis & rotsaker) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kålrot', 'kalrot', (SELECT id FROM `Category` WHERE name = 'Rotsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Morot', 'morot', (SELECT id FROM `Category` WHERE name = 'Rotsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Palsternacka', 'palsternacka', (SELECT id FROM `Category` WHERE name = 'Rotsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Rödbeta', 'rodbeta', (SELECT id FROM `Category` WHERE name = 'Rotsaker' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Sötpotatis', 'sotpotatis', (SELECT id FROM `Category` WHERE name = 'Rotsaker' LIMIT 1)); - --- ============================================================ --- POTATIS & ROTSAKER (L2 under Frukt & Grönt) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Potatis', 'potatis', (SELECT id FROM `Category` WHERE name = 'Potatis & rotsaker' LIMIT 1)); - --- ============================================================ --- FLÄSK (L3 under Kött, chark & fågel > Kött) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fläskfilé', 'flaskfile', (SELECT id FROM `Category` WHERE name = 'Fläsk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fläskkarré', 'flaskkarre', (SELECT id FROM `Category` WHERE name = 'Fläsk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fläskkotlett', 'flaskkotlett', (SELECT id FROM `Category` WHERE name = 'Fläsk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fläskrevben', 'flaskrevben', (SELECT id FROM `Category` WHERE name = 'Fläsk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fläsksidfläsk', 'flasksidflask', (SELECT id FROM `Category` WHERE name = 'Fläsk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fläskytterfilé', 'flaskytterfile', (SELECT id FROM `Category` WHERE name = 'Fläsk' LIMIT 1)); - --- ============================================================ --- FÄRDIGLAGAT & PANNFÄRDIGT (L3 under Kött, chark & fågel > Kött) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Köttbullar', 'kottbullar', (SELECT id FROM `Category` WHERE name = 'Färdiglagat & pannfärdigt' LIMIT 1)); - --- ============================================================ --- KÖTT (L2 under Kött, chark & fågel) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Blandfärs', 'blandfars', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Entrecote', 'entrecote', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kalvfilé', 'kalvfile', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kalvkotlett', 'kalvkotlett', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Köttfärs', 'kottfars', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lammbog', 'lammbog', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lammfärs', 'lammfars', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lammhals', 'lammhals', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lammkotlett', 'lammkotlett', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lammrack', 'lammrack', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lammrevben', 'lammrevben', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lammstek', 'lammstek', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Nötfärs', 'notfars', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Oxfile', 'oxfile', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Oxhjärta', 'oxhjarta', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Oxlever', 'oxlever', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Råbiff', 'rabiff', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Renkött', 'renkott', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Rimmat kött', 'rimmatkott', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Skinka', 'skinka', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Tartar', 'tartar', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vildsvin', 'vildsvin', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Viltkött', 'viltkott', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Älgkött', 'algkott', (SELECT id FROM `Category` WHERE name = 'Kött' LIMIT 1)); - --- ============================================================ --- KORV (befintlig kategori under Kött, chark & fågel) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Falukorv', 'falukorv', (SELECT id FROM `Category` WHERE name = 'Korv' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Korv', 'korv', (SELECT id FROM `Category` WHERE name = 'Korv' LIMIT 1)); - --- ============================================================ --- FÅGEL (L2 under Kött, chark & fågel) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Anka', 'anka', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Ankbröst', 'ankbrost', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fasan', 'fasan', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Gås', 'gas', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kalkon', 'kalkon', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kalkonfilé', 'kalkonfile', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kalkonfärs', 'kalkonfars', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kyckling', 'kyckling', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingben', 'kycklingben', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingben (lårben)', 'kycklingbenlarben', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingben (vingben)', 'kycklingbenvingben', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingbröst', 'kycklingbrost', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingfilé', 'kycklingfile', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingfärs', 'kycklingfars', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklinggrund', 'kycklinggrund', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklinghals', 'kycklinghals', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklinghel', 'kycklinghel', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklinghjärta', 'kycklinghjarta', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingkarré', 'kycklingkarre', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingklubba', 'kycklingklubba', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingkropp', 'kycklingkropp', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklinglever', 'kycklinglever', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklinglår', 'kycklinglar', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingmälta', 'kycklingmalta', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingrevben', 'kycklingrevben', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kycklingvinge', 'kycklingvinge', (SELECT id FROM `Category` WHERE name = 'Fågel' LIMIT 1)); - --- ============================================================ --- FISK (L2 under Övrigt — eller befintlig Fisk & skaldjur) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Bläckfisk', 'blackfisk', (SELECT id FROM `Category` WHERE name = 'Fisk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fisk', 'fisk', (SELECT id FROM `Category` WHERE name = 'Fisk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lax', 'lax', (SELECT id FROM `Category` WHERE name = 'Fisk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Musslor', 'musslor', (SELECT id FROM `Category` WHERE name = 'Fisk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Räkor', 'rakor', (SELECT id FROM `Category` WHERE name = 'Fisk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Sill', 'sill', (SELECT id FROM `Category` WHERE name = 'Fisk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Strömming', 'stromming', (SELECT id FROM `Category` WHERE name = 'Fisk' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torskrygg', 'torskrygg', (SELECT id FROM `Category` WHERE name = 'Fisk' LIMIT 1)); - --- ============================================================ --- MEJERI, OST & ÄGG (L1 — ingen mer specifik L2/L3 för dessa) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Ägg', 'agg', (SELECT id FROM `Category` WHERE name = 'Mejeri, ost & ägg' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fil', 'fil', (SELECT id FROM `Category` WHERE name = 'Mejeri, ost & ägg' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Grädde', 'gradde', (SELECT id FROM `Category` WHERE name = 'Mejeri, ost & ägg' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Gräddfil', 'graddfil', (SELECT id FROM `Category` WHERE name = 'Mejeri, ost & ägg' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Mjölk', 'mjolk', (SELECT id FROM `Category` WHERE name = 'Mejeri, ost & ägg' LIMIT 1)); - --- ============================================================ --- OST (L2 under Mejeri, ost & ägg) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Ost', 'ost', (SELECT id FROM `Category` WHERE name = 'Ost' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Ostskivor', 'ostskivor', (SELECT id FROM `Category` WHERE name = 'Ost' LIMIT 1)); - --- ============================================================ --- MELLANMÅL & DESSERTER (L2 under Mejeri, ost & ägg) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Glass', 'glass', (SELECT id FROM `Category` WHERE name = 'Mellanmål & desserter' LIMIT 1)); - --- ============================================================ --- KRYDDOR & SMAKSÄTTARE (L2 under Skafferi) — torkade kryddor --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Chiliflingor', 'chiliflingor', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Chilipulver', 'chilipulver', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Curry (mild)', 'currymild', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Curry (stark)', 'currystark', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Dill', 'dill', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Ingefärspulver', 'ingefarspulver', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kanelstång', 'kanelstang', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Korianderfrön', 'korianderfron', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kryddor', 'kryddor', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kumminsfrön', 'kumminsfron', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Malen kanel', 'malenkanel', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Malet kummin', 'maletkummin', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Oregano', 'oregano', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Paprikapulver', 'paprikapulver', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Persilja', 'persilja', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Rosmarin', 'rosmarin', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Rökt paprikapulver', 'roktpaprikapulver', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Salt', 'salt', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Stark paprikapulver', 'starkpaprikapulver',(SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Svartpeppar', 'svartpeppar', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Söt paprikapulver', 'sotpaprikapulver', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Timjan', 'timjan', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vitpeppar', 'vitpeppar', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torkad basilika', 'torkadbasilika', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torkad chili', 'torkadchili', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torkad dill', 'torkaddill', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torkad ingefära', 'torkadingefara', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torkad koriander', 'torkadkoriander', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torkad oregano', 'torkadoregano', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torkad persilja', 'torkadpersilja', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torkad rosmarin', 'torkadrosmarin', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Torkad timjan', 'torkadtimjan', (SELECT id FROM `Category` WHERE name = 'Kryddor & smaksättare' LIMIT 1)); - --- ============================================================ --- ÖVRIGA SMAKSÄTTARE (L3 under Kryddor & smaksättare) — färska kryddor --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Basilika', 'basilika', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Färsk basilika', 'farskbasilika', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Färsk chili', 'farskchili', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Färsk dill', 'farskdill', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Färsk ingefära', 'farskingefara', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Färsk koriander', 'farskkoriander',(SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Färsk oregano', 'farskoregano', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Färsk persilja', 'farskpersilja', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Färsk rosmarin', 'farskrosmarin', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Färsk timjan', 'farsktimjan', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fryst dill', 'frystdill', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Fryst persilja', 'frystpersilja', (SELECT id FROM `Category` WHERE name = 'Övriga smaksättare' LIMIT 1)); - --- ============================================================ --- PASTA (L3 under Skafferi > Pasta, ris & matgryn) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Lasagne', 'lasagne', (SELECT id FROM `Category` WHERE name = 'Pasta' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Pasta', 'pasta', (SELECT id FROM `Category` WHERE name = 'Pasta' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Spaghetti', 'spaghetti', (SELECT id FROM `Category` WHERE name = 'Pasta' LIMIT 1)); - --- ============================================================ --- PASTA, RIS & MATGRYN (L2 under Skafferi) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Ris', 'ris', (SELECT id FROM `Category` WHERE name = 'Pasta, ris & matgryn' LIMIT 1)); - --- ============================================================ --- BAKNING (L2 under Skafferi) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Havregryn', 'havregryn', (SELECT id FROM `Category` WHERE name = 'Bakning' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Mjöl', 'mjol', (SELECT id FROM `Category` WHERE name = 'Bakning' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Müsli', 'musli', (SELECT id FROM `Category` WHERE name = 'Bakning' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Socker', 'socker', (SELECT id FROM `Category` WHERE name = 'Bakning' LIMIT 1)); - --- ============================================================ --- TORRA BALJVÄXTER (L2 under Skafferi) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Bönor', 'bonor', (SELECT id FROM `Category` WHERE name = 'Torra baljväxter' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kikärter', 'kikarter', (SELECT id FROM `Category` WHERE name = 'Torra baljväxter' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Linser', 'linser', (SELECT id FROM `Category` WHERE name = 'Torra baljväxter' LIMIT 1)); - --- ============================================================ --- FRÖER & KÄRNOR (L3 under Torra baljväxter) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Nötter', 'notter', (SELECT id FROM `Category` WHERE name = 'Fröer & kärnor' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Nötterrin', 'notterrin', (SELECT id FROM `Category` WHERE name = 'Fröer & kärnor' LIMIT 1)); - --- ============================================================ --- TORKAD FRUKT (L2 under Skafferi) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Russin', 'russin', (SELECT id FROM `Category` WHERE name = 'Torkad frukt' LIMIT 1)); - --- ============================================================ --- BRÖD & KAKOR (L1) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Bröd', 'brod', (SELECT id FROM `Category` WHERE name = 'Bröd & Kakor' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Macka', 'macka', (SELECT id FROM `Category` WHERE name = 'Bröd & Kakor' LIMIT 1)); - --- ============================================================ --- SÖTA KEX & KAKOR (L3 under Bröd & Kakor > Kex & Kakor) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kakor', 'kakor', (SELECT id FROM `Category` WHERE name = 'Söta kex & kakor' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kex', 'kex', (SELECT id FROM `Category` WHERE name = 'Söta kex & kakor' LIMIT 1)); - --- ============================================================ --- DRYCK (L1 — filtrerar på parentId IS NULL pga Dryck även finns under Övrigt) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Juice', 'juice', (SELECT id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Kaffe', 'kaffe', (SELECT id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Must', 'must', (SELECT id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Saft', 'saft', (SELECT id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Te', 'te', (SELECT id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vatten', 'vatten', (SELECT id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL LIMIT 1)); - --- ============================================================ --- LÄSK OCH ENERGIDRYCK (L2 under Dryck) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Läsk', 'lask', (SELECT id FROM `Category` WHERE name = 'Läsk och Energidryck' LIMIT 1)); - --- ============================================================ --- GLASS, GODIS & SNACKS (L1 — inget L3 för chips) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Chips', 'chips', (SELECT id FROM `Category` WHERE name = 'Glass, godis & snacks' LIMIT 1)); - --- ============================================================ --- CHOKLADKAKOR & RULLAR (L3 under Glass, godis & snacks > Choklad) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Choklad', 'choklad', (SELECT id FROM `Category` WHERE name = 'Chokladkakor & rullar' LIMIT 1)); - --- ============================================================ --- PIZZA, PAJ & PIROGER (L3 under Fryst > Färdigmat) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Pizza', 'pizza', (SELECT id FROM `Category` WHERE name = 'Pizza, paj & piroger' LIMIT 1)); - --- ============================================================ --- KÖTT, CHARK & FÅGEL (L1) — vego-alternativ utan mer specifik kategori --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Quorn', 'quorn', (SELECT id FROM `Category` WHERE name = 'Kött, chark & fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Tofu', 'tofu', (SELECT id FROM `Category` WHERE name = 'Kött, chark & fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vegebullar', 'vegebullar', (SELECT id FROM `Category` WHERE name = 'Kött, chark & fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vegobitar', 'vegobitar', (SELECT id FROM `Category` WHERE name = 'Kött, chark & fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vegofärs', 'vegofars', (SELECT id FROM `Category` WHERE name = 'Kött, chark & fågel' LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vegokorv', 'vegokorv', (SELECT id FROM `Category` WHERE name = 'Kött, chark & fågel' LIMIT 1)); - --- ============================================================ --- SKAFFERI (L1 — övrigt utan djupare kategori) --- ============================================================ -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Buljong', 'buljong', (SELECT id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Ketchup', 'ketchup', (SELECT id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Majonnäs', 'majonnas', (SELECT id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Olivolja', 'olivolja', (SELECT id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Proteinpulver', 'proteinpulver', (SELECT id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL LIMIT 1)); -INSERT IGNORE INTO `Product` (`name`, `normalizedName`, `categoryId`) - VALUES ('Vinäger', 'vinager', (SELECT id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL LIMIT 1)); \ No newline at end of file diff --git a/db/seeds/seed_all.sql b/db/seeds/seed_all.sql new file mode 100644 index 00000000..16099000 --- /dev/null +++ b/db/seeds/seed_all.sql @@ -0,0 +1,772 @@ +-- ============================================================ +-- seed_all.sql — Komplett seed för kategorier + produkter +-- +-- Slår ihop: +-- categories_supplement.sql (INSERT IGNORE kategorier) +-- 002-seed-products.sql (INSERT IGNORE produkter utan categoryId) +-- seed_product_categories.sql (UPDATE categoryId via exakta 3-nivå-joins) +-- +-- Säkert att köra flera gånger (idempotent). +-- +-- Kör på servern: +-- DB_PASS=$(grep MARIADB_ROOT_PASSWORD .env | cut -d= -f2) +-- docker exec -i recipe-db mariadb -uroot -p"$DB_PASS" recipe_app < db/seeds/seed_all.sql +-- ============================================================ + + +-- ============================================================ +-- STEG 1: KATEGORIER +-- (från categories_supplement.sql) +-- ============================================================ + +-- LEVEL 1 — Toppkategorier (nya) +INSERT IGNORE INTO `Category` (`name`, `parentId`) VALUES ('Dryck', NULL); +INSERT IGNORE INTO `Category` (`name`, `parentId`) VALUES ('Övrigt', NULL); + +-- LEVEL 2 — under Dryck +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Öl & cider', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Läsk och Energidryck', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL; + +-- LEVEL 2 — under Bröd & Kakor +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Knäckebröd & Skorpor', id FROM `Category` WHERE name = 'Bröd & Kakor' AND parentId IS NULL; + +-- LEVEL 2 — under Fryst +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Frukt & Bär', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Färdigmat', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; + +-- LEVEL 2 — under Frukt & Grönt +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Grönsaker', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Frukt', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Färska bär', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Svamp', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; + +-- LEVEL 2 — under Glass, godis & snacks +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Choklad', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL; + +-- LEVEL 2 — under Kött, chark & fågel +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Kött', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Fågel', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; + +-- LEVEL 2 — under Mejeri, ost & ägg +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Mellanmål & desserter', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL; + +-- LEVEL 2 — under Skafferi +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Torkad frukt', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Torra baljväxter', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Bakning', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; + +-- LEVEL 2 — under Övrigt +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Frukt och grönt', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Kött och fågel', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Fisk', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Mejeri', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Fryst', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Skafferi', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Barn och Godis', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Dryck', id FROM `Category` WHERE name = 'Övrigt' AND parentId IS NULL; + +-- LEVEL 3 — under Bröd & Kakor > Knäckebröd & Skorpor +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Knäckebröd', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Knäckebröd & Skorpor' + WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Bröd & Kakor > Kex & Kakor +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Söta kex & kakor', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kex & Kakor' + WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Färdigmat > Såser, grytbaser & övriga smaksättare +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Kylda såser', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Såser, grytbaser & övriga smaksättare' + WHERE c1.name = 'Färdigmat' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Fryst > Färdigmat +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Pizza, paj & piroger', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färdigmat' + WHERE c1.name = 'Fryst' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Fryst > Grönsaker & kryddor +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Grönsaker', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker & kryddor' + WHERE c1.name = 'Fryst' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Frukt & Grönt > Grönsaker +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Bönor & Groddar', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Paprika', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Övriga grönsaker', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Tomater', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Färdigskuret', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Frukt & Grönt > Potatis & rotsaker +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Rotsaker', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Frukt & Grönt > Frukt +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Druvor', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Citrusfrukt', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Glass, godis & snacks > Choklad +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Chokladkakor & rullar', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Choklad' + WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Kött, chark & fågel > Kött +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Färdiglagat & pannfärdigt', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Fläsk', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Kött, chark & fågel > Fågel +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Fryst fågel', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fågel' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Mejeri, ost & ägg > Ost +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Matlagningsost', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Ost' + WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Skafferi > Torra baljväxter +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Fröer & kärnor', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Torra baljväxter' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Skafferi > Bakning +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Baktillbehör', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bakning' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Skafferi > Kryddor & smaksättare +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Övriga smaksättare', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Skafferi > Pasta, ris & matgryn +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Pasta', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pasta, ris & matgryn' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Skafferi > Konserver & burkar +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Fruktkonserver', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Grönsakskonserver', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Fisk-& skaldjurskonserver', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; + +-- LEVEL 3 — under Skafferi > Asien +INSERT IGNORE INTO `Category` (`name`, `parentId`) + SELECT 'Nudlar', c2.id + FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Asien' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; + + +-- ============================================================ +-- STEG 2: PRODUKTER (INSERT IGNORE — hoppar över befintliga) +-- (från 002-seed-products.sql.disabled) +-- ============================================================ + +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()), +('Marmelad', 'marmelad', 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()), +('Paprika', 'paprika', 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()); + + +-- ============================================================ +-- STEG 3: KATEGORITILLDELNING (UPDATE — körs alltid, oavsett om produkten är ny eller gammal) +-- (från seed_product_categories.sql) +-- ============================================================ + +-- Frukt & Grönt > Frukt > Druvor +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Druvor' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ('Druvor', 'Gröna druvor', 'Röda druvor'); + +-- Frukt & Grönt > Frukt > Citrusfrukt +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Citrusfrukt' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ('Apelsin', 'Citron', 'Lime'); + +-- Frukt & Grönt > Frukt +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ('Ananas', 'Banan', 'Kiwi', 'Mango', 'Päron'); + +-- Frukt & Grönt > Färska bär +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färska bär' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ('Blåbär', 'Hallon', 'Jordgubbar'); + +-- Frukt & Grönt > Grönsaker > Tomater +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Tomater' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ('Tomat'); + +-- Frukt & Grönt > Grönsaker > Paprika +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Paprika' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ('Paprika'); + +-- Frukt & Grönt > Grönsaker > Övriga grönsaker +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Övriga grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ( + 'Aubergine', 'Avokado', 'Blomkål', 'Broccoli', 'Grönkål', 'Gurka', + 'Sallad', 'Selleri', 'Spenat', 'Vitkål' +); + +-- Frukt & Grönt > Potatis & rotsaker > Lök +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Lök' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ('Lök', 'Purjolök', 'Rödlök', 'Vitlök'); + +-- Frukt & Grönt > Potatis & rotsaker > Rotsaker +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Rotsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ('Kålrot', 'Morot', 'Palsternacka', 'Rödbeta'); + +-- Frukt & Grönt > Potatis & rotsaker +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ('Potatis', 'Sötpotatis'); + +-- Frukt & Grönt > Kryddor & smaksättare > Smaksättare (färska örter) +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Smaksättare' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL +) WHERE `name` IN ( + 'Färsk basilika', 'Färsk chili', 'Färsk dill', 'Färsk ingefära', + 'Färsk koriander', 'Färsk oregano', 'Färsk persilja', + 'Färsk rosmarin', 'Färsk timjan' +); + +-- Mejeri, ost & ägg > Mjölk +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Mjölk' + WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL +) WHERE `name` IN ('Mjölk'); + +-- Mejeri, ost & ägg > Filmjölk & Yoghurt > Filmjölk +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Filmjölk & Yoghurt' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Filmjölk' + WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL +) WHERE `name` IN ('Fil'); + +-- Mejeri, ost & ägg (ingen djupare nivå) +UPDATE `Product` SET `categoryId` = ( + SELECT id FROM `Category` + WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL +) WHERE `name` IN ('Ägg', 'Grädde', 'Gräddfil', 'Smör'); + +-- Kött, chark & fågel > Fågel +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fågel' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL +) WHERE `name` IN ( + 'Anka', 'Ankbröst', 'Fasan', 'Gås', + 'Kalkon', 'Kalkonfilé', 'Kalkonfärs', + 'Kyckling', 'Kycklingben', 'Kycklingben (lårben)', 'Kycklingben (vingben)', + 'Kycklingbröst', 'Kycklingfilé', 'Kycklingfärs', 'Kycklinggrund', + 'Kycklinghals', 'Kycklinghel', 'Kycklinghjärta', 'Kycklingkarré', + 'Kycklingklubba', 'Kycklingkropp', 'Kycklinglever', 'Kycklinglår', + 'Kycklingmälta', 'Kycklingrevben', 'Kycklingvinge' +); + +-- Kött, chark & fågel > Kött > Fläsk +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Fläsk' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL +) WHERE `name` IN ( + 'Fläskfilé', 'Fläskkarré', 'Fläskkotlett', + 'Fläskrevben', 'Fläsksidfläsk', 'Fläskytterfilé' +); + +-- Kött, chark & fågel > Kött > Färdiglagat & pannfärdigt +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Färdiglagat & pannfärdigt' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL +) WHERE `name` IN ('Köttbullar'); + +-- Kött, chark & fågel > Kött +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL +) WHERE `name` IN ( + 'Blandfärs', 'Entrecote', + 'Kalvfilé', 'Kalvkotlett', + 'Köttfärs', 'Lammbog', 'Lammfärs', 'Lammhals', 'Lammkotlett', + 'Lammrack', 'Lammrevben', 'Lammstek', + 'Nötfärs', 'Oxfile', 'Oxhjärta', 'Oxlever', + 'Råbiff', 'Renkött', 'Rimmat kött', 'Tartar', + 'Vildsvin', 'Viltkött', 'Älgkött' +); + +-- Kött, chark & fågel > Korv +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Korv' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL +) WHERE `name` IN ('Falukorv', 'Korv'); + +-- Kött, chark & fågel > Pålägg > Skivat pålägg +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pålägg' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Skivat pålägg' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL +) WHERE `name` IN ('Skinka'); + +-- Glass, godis & snacks > Choklad +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Choklad' + WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL +) WHERE `name` IN ('Choklad'); + +-- Glass, godis & snacks > Chips, snacks & dip > Chips +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Chips, snacks & dip' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Chips' + WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL +) WHERE `name` IN ('Chips'); + +-- Dryck > Läsk och Energidryck +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Läsk och Energidryck' + WHERE c1.name = 'Dryck' AND c1.parentId IS NULL +) WHERE `name` IN ('Läsk'); + +-- Dryck (toppnivå) +UPDATE `Product` SET `categoryId` = ( + SELECT id FROM `Category` + WHERE name = 'Dryck' AND parentId IS NULL +) WHERE `name` IN ('Juice', 'Kaffe', 'Must', 'Saft', 'Te', 'Vatten'); + +-- Fryst > Färdigmat > Pizza, paj & piroger +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färdigmat' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Pizza, paj & piroger' + WHERE c1.name = 'Fryst' AND c1.parentId IS NULL +) WHERE `name` IN ('Pizza'); + +-- Fryst > Grönsaker & kryddor > Grönsaker +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker & kryddor' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Grönsaker' + WHERE c1.name = 'Fryst' AND c1.parentId IS NULL +) WHERE `name` IN ('Fryst dill', 'Fryst persilja'); + +-- Skafferi > Pasta, ris & matgryn > Pasta +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pasta, ris & matgryn' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Pasta' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ('Lasagne', 'Pasta', 'Spaghetti'); + +-- Skafferi > Pasta, ris & matgryn +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pasta, ris & matgryn' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ('Havregryn', 'Müsli', 'Ris'); + +-- Skafferi > Kryddor & smaksättare > Kryddor (torkade örter och malda kryddor) +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Kryddor' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ( + 'Basilika', 'Chiliflingor', 'Chilipulver', 'Dill', + 'Ingefärspulver', 'Kanelstång', 'Korianderfrön', 'Kryddor', 'Kumminsfrön', + 'Malen kanel', 'Malet kummin', 'Oregano', + 'Paprikapulver', 'Persilja', 'Rosmarin', 'Salt', + 'Stark paprikapulver', 'Svartpeppar', 'Söt paprikapulver', + 'Rökt paprikapulver', 'Timjan', 'Vitpeppar', + 'Torkad basilika', 'Torkad chili', 'Torkad dill', + 'Torkad ingefära', 'Torkad koriander', 'Torkad oregano', + 'Torkad persilja', 'Torkad rosmarin', 'Torkad timjan' +); + +-- Skafferi > Kryddor & smaksättare > Sås, dressing & majonnäs +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Sås, dressing & majonnäs' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ('Ketchup', 'Majonnäs', 'Vinäger'); + +-- Skafferi > Kryddor & smaksättare > Övriga smaksättare +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Övriga smaksättare' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ('Olivolja'); + +-- Skafferi > Kryddor & smaksättare (ingen djupare nivå) +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ('Buljong'); + +-- Skafferi > Torra baljväxter +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Torra baljväxter' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ('Bönor', 'Kikärter', 'Linser'); + +-- Skafferi > Torkad frukt +UPDATE `Product` SET `categoryId` = ( + SELECT c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Torkad frukt' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ('Russin'); + +-- Skafferi > Bakning > Baktillbehör +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bakning' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Baktillbehör' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ('Mjöl', 'Socker'); + +-- Skafferi > Konserver & burkar > Fruktkonserver +UPDATE `Product` SET `categoryId` = ( + SELECT c3.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' + JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Fruktkonserver' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL +) WHERE `name` IN ('Marmelad'); diff --git a/db/seeds/seed_product_categories.sql b/db/seeds/seed_product_categories.sql deleted file mode 100644 index bc862b04..00000000 --- a/db/seeds/seed_product_categories.sql +++ /dev/null @@ -1,392 +0,0 @@ --- ============================================================ --- Seed: Koppla produkter till kategorier --- Kör efter categories_supplement.sql --- Använder UPDATE + subqueries — säkert att köra flera gånger. --- Berör bara produkter vi är säkra på hamnar rätt. --- --- Kör på servern: --- DB_PASS=$(grep MARIADB_ROOT_PASSWORD .env | cut -d= -f2) --- docker exec -i recipe-db mariadb -uroot -p"$DB_PASS" recipe_app < db/seeds/seed_product_categories.sql --- ============================================================ - --- ============================================================ --- Frukt & Grönt > Frukt > Druvor --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Druvor' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ('Druvor', 'Gröna druvor', 'Röda druvor'); - --- ============================================================ --- Frukt & Grönt > Frukt > Citrusfrukt --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Citrusfrukt' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ('Apelsin', 'Citron', 'Lime'); - --- ============================================================ --- Frukt & Grönt > Frukt (inga djupare underkategorier) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ('Ananas', 'Banan', 'Kiwi', 'Mango', 'Päron'); - --- ============================================================ --- Frukt & Grönt > Färska bär --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färska bär' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ('Blåbär', 'Hallon', 'Jordgubbar'); - --- ============================================================ --- Frukt & Grönt > Grönsaker > Tomater --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Tomater' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ('Tomat'); - --- ============================================================ --- Frukt & Grönt > Grönsaker > Övriga grönsaker --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Övriga grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ( - 'Aubergine', 'Blomkål', 'Broccoli', 'Grönkål', 'Gurka', - 'Sallad', 'Selleri', 'Spenat', 'Vitkål' -); - --- ============================================================ --- Frukt & Grönt > Potatis & rotsaker > Lök --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Lök' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ('Lök', 'Purjolök', 'Rödlök', 'Vitlök'); - --- ============================================================ --- Frukt & Grönt > Potatis & rotsaker > Rotsaker --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Rotsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ('Kålrot', 'Morot', 'Palsternacka', 'Rödbeta'); - --- ============================================================ --- Frukt & Grönt > Potatis & rotsaker (ingen djupare nivå) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ('Potatis', 'Sötpotatis'); - --- ============================================================ --- Frukt & Grönt > Kryddor & smaksättare > Smaksättare --- (färska örter säljs i grönsaksdisken) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Smaksättare' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL -) WHERE `name` IN ( - 'Färsk basilika', 'Färsk chili', 'Färsk dill', 'Färsk ingefära', - 'Färsk koriander', 'Färsk oregano', 'Färsk persilja', - 'Färsk rosmarin', 'Färsk timjan' -); - --- ============================================================ --- Mejeri, ost & ägg > Mjölk > Standardmjölk --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Mjölk' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Standardmjölk' - WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL -) WHERE `name` IN ('Standardmjölk'); - --- ============================================================ --- Mejeri, ost & ägg > Mjölk (ingen djupare nivå) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Mjölk' - WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL -) WHERE `name` IN ('Lättmjölk', 'Mellanmjölk', 'Mjölk'); - --- ============================================================ --- Mejeri, ost & ägg > Filmjölk & Yoghurt > Filmjölk --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Filmjölk & Yoghurt' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Filmjölk' - WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL -) WHERE `name` IN ('Fil'); - --- ============================================================ --- Mejeri, ost & ägg (ingen djupare nivå — Ägg, Grädde, Smör etc.) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT id FROM `Category` - WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL -) WHERE `name` IN ('Ägg', 'Crème fraiche', 'Grädde', 'Gräddfil', 'Smör'); - --- ============================================================ --- Kött, chark & fågel > Fågel --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fågel' - WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL -) WHERE `name` IN ( - 'Anka', 'Ankbröst', 'Fasan', 'Gås', - 'Kalkon', 'Kalkonfilé', 'Kalkonfärs', - 'Kyckling', 'Kycklingben', 'Kycklingben (lårben)', 'Kycklingben (vingben)', - 'Kycklingbröst', 'Kycklingfilé', 'Kycklingfärs', 'Kycklinggrund', - 'Kycklinghals', 'Kycklinghel', 'Kycklinghjärta', 'Kycklingkarré', - 'Kycklingklubba', 'Kycklingkropp', 'Kycklinglever', 'Kycklinglår', - 'Kycklingmälta', 'Kycklingrevben', 'Kycklingvinge' -); - --- ============================================================ --- Kött, chark & fågel > Kött > Fläsk --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Fläsk' - WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL -) WHERE `name` IN ( - 'Fläskfilé', 'Fläskkarré', 'Fläskkotlett', - 'Fläskrevben', 'Fläsksidfläsk', 'Fläskytterfilé' -); - --- ============================================================ --- Kött, chark & fågel > Kött > Färdiglagat & pannfärdigt --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Färdiglagat & pannfärdigt' - WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL -) WHERE `name` IN ('Köttbullar'); - --- ============================================================ --- Kött, chark & fågel > Kött (ingen djupare nivå) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' - WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL -) WHERE `name` IN ( - 'Blandfärs', 'Entrecote', - 'Kalvfilé', 'Kalvkotlett', - 'Köttfärs', 'Lammbog', 'Lammfärs', 'Lammhals', 'Lammkotlett', - 'Lammrack', 'Lammrevben', 'Lammstek', - 'Nötfärs', 'Oxfile', 'Oxhjärta', 'Oxlever', - 'Råbiff', 'Renkött', 'Rimmat kött', 'Tartar', - 'Vildsvin', 'Viltkött', 'Älgkött' -); - --- ============================================================ --- Kött, chark & fågel > Korv --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Korv' - WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL -) WHERE `name` IN ('Falukorv', 'Korv'); - --- ============================================================ --- Kött, chark & fågel > Pålägg > Skivat pålägg --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pålägg' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Skivat pålägg' - WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL -) WHERE `name` IN ('Skinka'); - --- ============================================================ --- Glass, godis & snacks > Choklad --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Choklad' - WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL -) WHERE `name` IN ('Choklad'); - --- ============================================================ --- Glass, godis & snacks > Chips, snacks & dip > Chips --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Chips, snacks & dip' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Chips' - WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL -) WHERE `name` IN ('Chips'); - --- ============================================================ --- Dryck > Läsk och Energidryck --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Läsk och Energidryck' - WHERE c1.name = 'Dryck' AND c1.parentId IS NULL -) WHERE `name` IN ('Läsk'); - --- ============================================================ --- Dryck (toppnivå — ingen passande underkategori) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT id FROM `Category` - WHERE name = 'Dryck' AND parentId IS NULL -) WHERE `name` IN ('Juice', 'Kaffe', 'Must', 'Saft', 'Te', 'Vatten'); - --- ============================================================ --- Fryst > Färdigmat > Pizza, paj & piroger --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färdigmat' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Pizza, paj & piroger' - WHERE c1.name = 'Fryst' AND c1.parentId IS NULL -) WHERE `name` IN ('Pizza'); - --- ============================================================ --- Fryst > Grönsaker & kryddor > Grönsaker --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker & kryddor' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Grönsaker' - WHERE c1.name = 'Fryst' AND c1.parentId IS NULL -) WHERE `name` IN ('Fryst dill', 'Fryst persilja'); - --- ============================================================ --- Skafferi > Pasta, ris & matgryn > Pasta --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pasta, ris & matgryn' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Pasta' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ('Lasagne', 'Pasta', 'Spaghetti'); - --- ============================================================ --- Skafferi > Pasta, ris & matgryn (ingen djupare nivå) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pasta, ris & matgryn' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ('Havregryn', 'Müsli', 'Ris'); - --- ============================================================ --- Skafferi > Kryddor & smaksättare > Kryddor --- (torkade örter och malda kryddor) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Kryddor' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ( - 'Basilika', 'Chiliflingor', 'Chilipulver', 'Dill', - 'Ingefärspulver', 'Kanelstång', 'Korianderfrön', 'Kumminsfrön', - 'Malen kanel', 'Malet kummin', 'Oregano', - 'Paprikapulver', 'Persilja', 'Rosmarin', 'Salt', - 'Stark paprikapulver', 'Svartpeppar', 'Söt paprikapulver', - 'Rökt paprikapulver', 'Timjan', 'Vitpeppar', - 'Torkad basilika', 'Torkad chili', 'Torkad dill', - 'Torkad ingefära', 'Torkad koriander', 'Torkad oregano', - 'Torkad persilja', 'Torkad rosmarin', 'Torkad timjan' -); - --- ============================================================ --- Skafferi > Kryddor & smaksättare > Sås, dressing & majonnäs --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Sås, dressing & majonnäs' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ('Ketchup', 'Majonnäs', 'Vinäger'); - --- ============================================================ --- Skafferi > Kryddor & smaksättare > Övriga smaksättare --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Övriga smaksättare' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ('Olivolja'); - --- ============================================================ --- Skafferi > Torra baljväxter --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Torra baljväxter' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ('Bönor', 'Kikärter', 'Linser'); - --- ============================================================ --- Skafferi > Torkad frukt --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Torkad frukt' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ('Russin'); - --- ============================================================ --- Skafferi > Bakning > Baktillbehör --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bakning' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Baktillbehör' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ('Mjöl', 'Socker'); - --- ============================================================ --- Skafferi > Kryddor & smaksättare (ingen djupare nivå) --- (buljong används som smaksättare/matlagningsingrediens) --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c2.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ('Buljong'); - --- ============================================================ --- Skafferi > Konserver & burkar > Fruktkonserver --- ============================================================ -UPDATE `Product` SET `categoryId` = ( - SELECT c3.id FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' - JOIN `Category` c3 ON c3.parentId = c2.id AND c3.name = 'Fruktkonserver' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL -) WHERE `name` IN ('Marmelad');