1.1 НАПОЛНЯЕМ ТАБЛИЦУ С ПЕРЕЧНЕМ КАТЕГОРИЙ

-- Вставка корневых категорий (уровень 1)
INSERT INTO public.categories (categori_name, code, description, level, sort_order) VALUES
('Электроника', 'electronics', 'Электронные устройства и гаджеты', 1, 10),
('Одежда', 'clothing', 'Одежда и аксессуары', 1, 20),
('Книги', 'books', 'Книги и литература', 1, 30),
('Мебель', 'furniture', 'Мебель для дома и офиса', 1, 40),
('Спорт', 'sports', 'Спортивные товары', 1, 50);

-- Вставка подкатегорий для Электроники (уровень 2)
INSERT INTO public.categories (categori_name, code, description, parent_id, level, sort_order) VALUES
('Смартфоны', 'smartphones', 'Смартфоны и мобильные телефоны', 1, 2, 5),
('Ноутбуки', 'laptops', 'Ноутбуки и ультрабуки', 1, 2, 10),
('Телевизоры', 'tvs', 'Телевизоры и мониторы', 1, 2, 15),
('Наушники', 'headphones', 'Наушники и гарнитуры', 1, 2, 20);

-- Вставка подкатегорий для Одежды (уровень 2)
INSERT INTO public.categories (categori_name, code, description, parent_id, level, sort_order) VALUES
('Мужская одежда', 'mens-clothing', 'Одежда для мужчин', 2, 2, 5),
('Женская одежда', 'womens-clothing', 'Одежда для женщин', 2, 2, 10),
('Детская одежда', 'kids-clothing', 'Одежда для детей', 2, 2, 15);

-- Вставка подкатегорий для Книг (уровень 2)
INSERT INTO public.categories (categori_name, code, description, parent_id, level, sort_order) VALUES
('Художественная литература', 'fiction', 'Романы, рассказы, поэзия', 3, 2, 5),
('Научная литература', 'science', 'Научные и учебные издания', 3, 2, 10),
('Детские книги', 'children-books', 'Книги для детей', 3, 2, 15);

1.2 НАПОЛНЯЕМ ТАБЛИЦУ С ПЕРЕЧНЕМ ТОВАРОВ

-- Электроника: Смартфоны
INSERT INTO public.products (product_name, sku, description, category, unit) VALUES
('iPhone 15 Pro', 'IPH15PRO256', 'Смартфон Apple iPhone 15 Pro 256GB, титановый корпус', 6, 'шт'),
('Samsung Galaxy S24', 'SGS24U512', 'Смартфон Samsung Galaxy S24 Ultra 512GB, стилус S-Pen', 6, 'шт'),
('Xiaomi Redmi Note 13', 'XRN13128', 'Смартфон Xiaomi Redmi Note 13 128GB, AMOLED дисплей', 6, 'шт');

-- Электроника: Ноутбуки
INSERT INTO public.products (product_name, sku, description, category, unit) VALUES
('MacBook Air M2', 'MBAM213', 'Ноутбук Apple MacBook Air 13" с чипом M2, 8GB/256GB', 7, 'шт'),
('Dell XPS 15', 'DXPS15930', 'Ноутбук Dell XPS 15 9530, Intel i7, 16GB/512GB, RTX 4050', 7, 'шт'),
('Lenovo ThinkPad X1', 'LTPX1C9', 'Ноутбук Lenovo ThinkPad X1 Carbon Gen 9, 14" FHD', 7, 'шт');

-- Электроника: Наушники
INSERT INTO public.products (product_name, sku, description, category, unit) VALUES
('Sony WH-1000XM5', 'SONYWHXM5', 'Беспроводные наушники Sony WH-1000XM5, шумоподавление', 9, 'шт'),
('Apple AirPods Pro', 'APPAP2', 'Наушники Apple AirPods Pro 2 поколения, MagSafe', 9, 'шт'),
('Samsung Galaxy Buds2', 'SGBUDS2B', 'Беспроводные наушники Samsung Galaxy Buds2 Pro', 9, 'шт');

-- Одежда: Мужская одежда
INSERT INTO public.products (product_name, sku, description, category, unit) VALUES
('Джинсы классические', 'JEANSM32', 'Мужские джинсы классического кроя, синие, размер 32', 10, 'шт'),
('Футболка хлопковая', 'TSHIRTMXL', 'Мужская футболка из 100% хлопка, черная, размер XL', 10, 'шт'),
('Куртка зимняя', 'JACKETML', 'Мужская зимняя куртка с утеплителем, размер L', 10, 'шт');

-- Одежда: Женская одежда
INSERT INTO public.products (product_name, sku, description, category, unit) VALUES
('Платье вечернее', 'DRESSBLK38', 'Женское вечернее платье, черное, размер 38', 11, 'шт'),
('Блузка офисная', 'BLOUSEWS', 'Женская блузка для офиса, белая, размер S', 11, 'шт'),
('Юбка карандаш', 'SKIRTG36', 'Женская юбка-карандаш, серая, размер 36', 11, 'шт');

-- Книги: Художественная литература
INSERT INTO public.products (product_name, sku, description, category, unit) VALUES
('Мастер и Маргарита', 'BOOKMIM', 'Роман Михаила Булгакова "Мастер и Маргарита"', 13, 'шт'),
('1984', 'BOOK1984', 'Антиутопия Джорджа Оруэлла "1984"', 13, 'шт'),
('Преступление и наказание', 'BOOKPIN', 'Роман Ф.М. Достоевского "Преступление и наказание"', 13, 'шт');

-- Книги: Научная литература
INSERT INTO public.products (product_name, sku, description, category, unit) VALUES
('Краткая история времени', 'BOOKKHT', 'Стивен Хокинг "Краткая история времени"', 14, 'шт'),
('Python для начинающих', 'BOOKPYB', 'Учебник по программированию на Python для новичков', 14, 'шт'),
('Экономика для всех', 'BOOKECON', 'Основы экономики в простом изложении', 14, 'шт');

-- Товары с разными единицами измерения
INSERT INTO public.products (product_name, sku, description, category, unit) VALUES
('Кофе в зернах', 'COFFEEBRA1', 'Кофе в зернах Brazil Santos, 1 кг', 1, 'кг'),
('Оливковое масло', 'OLIVEOILEX', 'Оливковое масло Extra Virgin, 1 литр', 1, 'л'),
('Кабель HDMI', 'CABLEHD2', 'Кабель HDMI 2.0, 2 метра', 1, 'м');

1.3. ПРОВЕРКА

-- Проверка вставленных категорий с иерархией
SELECT 
    c1.categori_name as "Родительская категория",
    c2.categori_name as "Подкатегория",
    c2.level as "Уровень"
FROM categories c1 
RIGHT JOIN categories c2 ON c1.categori_id = c2.parent_id
ORDER BY c1.sort_order, c2.sort_order;

-- Проверка товаров с категориями
SELECT 
    p.product_name as "Товар",
    p.sku as "Артикул",
    c.categori_name as "Категория",
    p.unit as "Единица"
FROM products p
JOIN categories c ON p.category = c.categori_id
WHERE p.is_active = true
ORDER BY c.categori_name, p.product_name;

-- Количество товаров по категориям
SELECT 
    c.categori_name as "Категория",
    COUNT(p.product_id) as "Количество товаров"
FROM categories c
LEFT JOIN products p ON c.categori_id = p.category AND p.is_active = true
GROUP BY c.categori_id, c.categori_name
ORDER BY COUNT(p.product_id) DESC;

1.4. ИТОГ ВЫПОЛНЕНИЯ ПРОВЕРКИ (1.3)