Files
recipe-app/db/seeds/categories_supplement.sql
T

312 lines
16 KiB
SQL

-- ============================================================
-- 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', 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;