﻿-- ============================================================
-- seed_all.sql — Komplett seed för kategorier + produkter
--
-- Seeden är ensam sanningskälla för kategorier.
-- Den rensar Category-tabellen och bygger upp allt från scratch.
-- Product.categoryId nollställs och sätts om av STEG 3.
--
-- 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
-- ============================================================


-- ============================================================
-- RESET: Rensa kategorier och koppla bort produkter
-- ============================================================
SET foreign_key_checks = 0;
TRUNCATE TABLE `Category`;
SET foreign_key_checks = 1;
UPDATE `Product` SET `categoryId` = NULL;


-- ============================================================
-- STEG 1: KATEGORIER (komplett träd — enda sanningskällan)
-- ============================================================

-- ── NIVÅ 1: Toppkategorier ───────────────────────────────────
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Bröd & Kakor',         NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Dryck',                NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Färdigmat',            NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Fryst',                NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Frukt & Grönt',        NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Glass, godis & snacks', NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Kött, chark & fågel',  NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Mejeri, ost & ägg',    NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Skafferi',             NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Fisk & Skaldjur',      NULL);
INSERT INTO `Category` (`name`, `parentId`) VALUES ('Vegetariskt',          NULL);

-- ── NIVÅ 2: under Bröd & Kakor ──────────────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bröd',               id FROM `Category` WHERE name = 'Bröd & Kakor'         AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Fastfoodbröd',       id FROM `Category` WHERE name = 'Bröd & Kakor'         AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kex & Kakor',        id FROM `Category` WHERE name = 'Bröd & Kakor'         AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Knäckebröd & Skorpor', id FROM `Category` WHERE name = 'Bröd & Kakor'       AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kondis & fika',      id FROM `Category` WHERE name = 'Bröd & Kakor'         AND parentId IS NULL;

-- ── NIVÅ 2: under Dryck ─────────────────────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Öl & cider',           id FROM `Category` WHERE name = 'Dryck'              AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Läsk och Energidryck', id FROM `Category` WHERE name = 'Dryck'              AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Juice, fruktdryck & smoothie', id FROM `Category` WHERE name = 'Dryck'   AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Te & choklad',         id FROM `Category` WHERE name = 'Dryck'              AND parentId IS NULL;

-- ── NIVÅ 2: under Färdigmat ─────────────────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Såser, grytbaser & övriga smaksättare', id FROM `Category` WHERE name = 'Färdigmat' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Gratäng & Röror mm',   id FROM `Category` WHERE name = 'Färdigmat'          AND parentId IS NULL;

-- ── NIVÅ 2: under Fryst ─────────────────────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bageri',              id FROM `Category` WHERE name = 'Fryst'               AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Grönsaker & kryddor', id FROM `Category` WHERE name = 'Fryst'               AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Frukt & Bär',         id FROM `Category` WHERE name = 'Fryst'               AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Potatis',             id FROM `Category` WHERE name = 'Fryst'               AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Färdigmat',           id FROM `Category` WHERE name = 'Fryst'               AND parentId IS NULL;

-- ── NIVÅ 2: under Frukt & Grönt ─────────────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Potatis & rotsaker',  id FROM `Category` WHERE name = 'Frukt & Grönt'       AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kryddor & smaksättare', id FROM `Category` WHERE name = 'Frukt & Grönt'     AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Grönsaker',           id FROM `Category` WHERE name = 'Frukt & Grönt'       AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Frukt',               id FROM `Category` WHERE name = 'Frukt & Grönt'       AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Färska bär',          id FROM `Category` WHERE name = 'Frukt & Grönt'       AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Svamp',               id FROM `Category` WHERE name = 'Frukt & Grönt'       AND parentId IS NULL;

-- ── NIVÅ 2: under Glass, godis & snacks ─────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Chips, snacks & dip', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Choklad',             id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Godis',               id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL;

-- ── NIVÅ 2: under Kött, chark & fågel ───────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Pålägg',              id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Chark',               id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Korv',                id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kött',                id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Fågel',               id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Delikatesschark',    id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;

-- ── NIVÅ 2: under Mejeri, ost & ägg ─────────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Ost',                  id FROM `Category` WHERE name = 'Mejeri, ost & ägg'  AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Allergi mejeri',       id FROM `Category` WHERE name = 'Mejeri, ost & ägg'  AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Mjölk',                id FROM `Category` WHERE name = 'Mejeri, ost & ägg'  AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Filmjölk & Yoghurt',   id FROM `Category` WHERE name = 'Mejeri, ost & ägg'  AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Matlagning',           id FROM `Category` WHERE name = 'Mejeri, ost & ägg'  AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Smör, margarin & jäst', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Havre-, Soja-, Risdryck mm', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kvarg & Cottage cheese', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Mellanmål & desserter', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Ägg',                  id FROM `Category` WHERE name = 'Mejeri, ost & ägg'  AND parentId IS NULL;

-- ── NIVÅ 2: under Skafferi ──────────────────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kryddor & smaksättare', id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Pasta, ris & matgryn',  id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Oliver & delikatesser', id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Konserver & burkar',    id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Asien',                 id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torkad frukt',          id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torra baljväxter',      id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Flingor, gryner & musli', id FROM `Category` WHERE name = 'Skafferi'       AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torr färdigmat',        id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Sylt, mos & marmelad',  id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bakning',               id FROM `Category` WHERE name = 'Skafferi'          AND parentId IS NULL;

-- ── NIVÅ 2: under Fisk & Skaldjur ────────────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Fisk',                 id FROM `Category` WHERE name = 'Fisk & Skaldjur'   AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Sill, Ansjovis & Sardiner', id FROM `Category` WHERE name = 'Fisk & Skaldjur' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Skaldjur & Havsdelikatesser', id FROM `Category` WHERE name = 'Fisk & Skaldjur' AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Lakeprodukter',       id FROM `Category` WHERE name = 'Fisk & Skaldjur'   AND parentId IS NULL;

-- ── NIVÅ 2: under Vegetariskt ──────────────────────────────────
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Fryst',                id FROM `Category` WHERE name = 'Vegetariskt'       AND parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Tofu',                 id FROM `Category` WHERE name = 'Vegetariskt'       AND parentId IS NULL;

-- ── NIVÅ 3: under Bröd & Kakor > Bröd ──────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Matbröd', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bröd'
  WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Rostbröd', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bröd'
  WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Bröd & Kakor > Kondis & fika ────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Kaffebröd', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kondis & fika'
  WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Bröd & Kakor > Fastfoodbröd ─────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Hamburgerbröd', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fastfoodbröd'
  WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Korvbröd', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fastfoodbröd'
  WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Bröd & Kakor > Kex & Kakor ───────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Matkex', 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;
INSERT 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;

-- ── NIVÅ 3: under Bröd & Kakor > Knäckebröd & Skorpor ──────
INSERT 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;
-- ── NIVÅ 3: under Dryck > Juice, fruktdryck & smoothie ─────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Kyld juice & nektar', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Juice, fruktdryck & smoothie'
  WHERE c1.name = 'Dryck' AND c1.parentId IS NULL;
-- ── NIVÅ 3: under Dryck > Te & choklad ──────────────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Te', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Te & choklad'
  WHERE c1.name = 'Dryck' AND c1.parentId IS NULL;
-- ── NIVÅ 3: under Färdigmat > Såser, grytbaser... ───────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Dressing & övriga smaksättare', 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;
INSERT 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;

-- ── NIVÅ 3: under Färdigmat > Gratäng & Röror mm ────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Krämiga sallader', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Gratäng & Röror mm'
  WHERE c1.name = 'Färdigmat' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Fryst > Bageri ────────────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Bröd & fikabröd', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bageri'
  WHERE c1.name = 'Fryst' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Fryst > Grönsaker & kryddor ───────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Kryddor', 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;
INSERT 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;

-- ── NIVÅ 3: under Fryst > Färdigmat ─────────────────────────
INSERT 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;

-- ── NIVÅ 3: under Frukt & Grönt > Potatis & rotsaker ────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Lök', 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;
INSERT 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;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Potatis', 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;

-- ── NIVÅ 3: under Frukt & Grönt > Kryddor & smaksättare ─────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Smaksättare', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare'
  WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Kryddor & örter', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare'
  WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
-- ── NIVÅ 3: under Frukt & Grönt > Grönsaker ─────────────────
INSERT 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 INTO `Category` (`name`, `parentId`)  SELECT 'Sallad & Kål', 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 INTO `Category` (`name`, `parentId`)
  SELECT 'Auberginer & Zucchini', 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 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 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 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 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;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Gurka', 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;

-- ── NIVÅ 3: under Frukt & Grönt > Frukt ─────────────────────
INSERT 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 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;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Äpplen', 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
    AND NOT EXISTS (
      SELECT 1 FROM `Category` existing
      WHERE existing.parentId = c2.id AND existing.name = 'Äpplen'
    );

-- ── NIVÅ 3: under Glass > Chips, snacks & dip ───────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Chips', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Chips, snacks & dip'
  WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Nötter & tilltugg', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Chips, snacks & dip'
  WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Glass > Godis ─────────────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Godispåsar', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Godis'
  WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Glass > Choklad ───────────────────────────
INSERT 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;

-- ── NIVÅ 3: under Kött, chark & fågel > Pålägg ──────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Korv & salami', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pålägg'
  WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Skivat pålägg', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pålägg'
  WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Kött, chark & fågel > Chark ─────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Köttbullar & färsprodukter', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Chark'
  WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Kött, chark & fågel > Korv ───────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Ölkorv', 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;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Grill, kok- & kryddkorv', 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;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Vegetarisk korv', 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;

-- ── NIVÅ 3: under Kött, chark & fågel > Kött ────────────────
INSERT 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 INTO `Category` (`name`, `parentId`)
  SELECT 'Nöt & kalv', 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 INTO `Category` (`name`, `parentId`)
  SELECT 'Köttfärs', 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 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;

-- ── NIVÅ 3: under Kött, chark & fågel > Fågel ───────────────
INSERT INTO `Category` (`name`, `parentId`)  SELECT 'Färsk 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;
INSERT 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;
-- ── NIVÅ 3: under Kött, chark & fågel > Delikatesschark ──────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Delikatesser', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Delikatesschark'
  WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;
-- ── NIVÅ 3: under Mejeri, ost & ägg > Ost ───────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Färskost', 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;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Dessertost', 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;
INSERT 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;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Hårdost lagrad', 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;

-- ── NIVÅ 3: under Mejeri, ost & ägg > Mjölk ─────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Standardmjölk', 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;

-- ── NIVÅ 3: under Mejeri, ost & ägg > Allergi mejeri ────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Laktosfri mjölk', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Allergi mejeri'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Filmjölk & Yoghurt', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Allergi mejeri'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Kvarg & Cottage cheese', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Allergi mejeri'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Matfett', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Allergi mejeri'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Mejeri, ost & ägg > Matlagning ──────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Gräddfil & creme fraiche', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Matlagning'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Matlagningsyoghurt', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Matlagning'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Grädde', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Matlagning'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Allergi matlagning', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Matlagning'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Mejeri, ost & ägg > Smör, margarin & jäst ────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Matfett', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Smör, margarin & jäst'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Mejeri, ost & ägg > Filmjölk & Yoghurt ────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Filmjölk', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Filmjölk & Yoghurt'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Smaksatt yoghurt', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Filmjölk & Yoghurt'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Mejeri, ost & ägg > Kvarg & Cottage cheese ────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Kvarg & Cottage cheese', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kvarg & Cottage cheese'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Kvarg', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kvarg & Cottage cheese'
  WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Skafferi > Kryddor & smaksättare ──────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Sås, dressing & majonnäs', 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;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Kryddor', 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;
INSERT 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;

-- ── NIVÅ 3: under Skafferi > Pasta, ris & matgryn ───────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Färsk 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;
INSERT 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;

-- ── NIVÅ 3: under Skafferi > Oliver & delikatesser ──────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Delikatesser', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Oliver & delikatesser'
  WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Skafferi > Konserver & burkar ─────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Tomatkonserver', 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 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 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 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;

-- ── NIVÅ 3: under Skafferi > Asien ──────────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Såser & grytbaser', 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;
INSERT 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;

-- ── NIVÅ 3: under Skafferi > Torra baljväxter ───────────────
INSERT 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;

-- ── NIVÅ 3: under Skafferi > Flingor, gryner & musli ──────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Granola', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Flingor, gryner & musli'
  WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Fryst > Potatis ──────────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Pommes frites & strips', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis'
  WHERE c1.name = 'Fryst' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Fryst > Färdigmat ────────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Övrig färdigmat', 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;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Färdigmat enportioner', 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;

-- ── NIVÅ 3: under Skafferi > Bakning ────────────────────────
INSERT 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;

-- ── NIVÅ 3: under Skafferi > Sylt, mos & marmelad ──────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Marmelad', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Sylt, mos & marmelad'
  WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Sylt', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Sylt, mos & marmelad'
  WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Mos', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Sylt, mos & marmelad'
  WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Fisk & Skaldjur > Fisk ────────────────────
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Fryst fisk', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fisk'
  WHERE c1.name = 'Fisk & Skaldjur' AND c1.parentId IS NULL;
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Rökt & gravat', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fisk'
  WHERE c1.name = 'Fisk & Skaldjur' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Fisk & Skaldjur > Sill, Ansjovis & Sardiner 
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Sill', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Sill, Ansjovis & Sardiner'
  WHERE c1.name = 'Fisk & Skaldjur' AND c1.parentId IS NULL;

-- ── NIVÅ 3: under Fisk & Skaldjur > Skaldjur & Havsdelikatesser
INSERT INTO `Category` (`name`, `parentId`)
  SELECT 'Frysta skaldjur & havsdelikatesser', c2.id FROM `Category` c1
  JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Skaldjur & Havsdelikatesser'
  WHERE c1.name = 'Fisk & Skaldjur' AND c1.parentId IS NULL;


-- ============================================================
-- STEG 3: KATEGORISEED SLUTFÖRD
-- ============================================================
-- Gamla kolumner (Product.category, Product.subcategory) finns
-- inte längre — dessa togs bort i migrationen
-- 20260509000000_remove_product_category_and_add_indexes
--
-- All produktkategorisering görs nu via categoryId direkt.
-- ============================================================

SELECT COUNT(*) AS products_with_category_id
FROM `Product`
WHERE `categoryId` IS NOT NULL;

SELECT COUNT(*) AS products_without_category_id
FROM `Product`
WHERE `categoryId` IS NULL;
