Исправление багов авторизации, корзины и админки

- Исправлено выпадающее меню профиля (hover-баг с margin-top)
- Исправлена авторизация: правильные пути к API (api/auth.php)
- Исправлены ссылки на админку (admin/index.php вместо admin_panel.php)
- Исправлены пути API корзины в catalog.php и checkout.php
- Добавлена форма добавления/редактирования товаров в админке
- Исправлены кнопки +/- в корзине (улучшена обработка AJAX)
- Исправлена регистрация: правильные пути и обработка boolean в PostgreSQL
- Добавлена миграция для назначения прав админа пользователю admin@mail.ru
- Удален тестовый блок 'Быстрый вход' для неавторизованных пользователей
- Улучшена обработка ошибок во всех API-эндпоинтах
This commit is contained in:
kirill.khorkov
2025-12-16 02:58:44 +03:00
parent 3f257120fa
commit 29b9aaac50
388 changed files with 15312 additions and 3220 deletions

65
migrations/seed_data.sql Normal file
View File

@@ -0,0 +1,65 @@
-- seed_data.sql
-- Начальные данные для AETERNA
-- Администратор (пароль: admin123)
INSERT INTO users (email, password_hash, full_name, phone, city, is_admin, is_active)
VALUES (
'admin@aeterna.ru',
'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', -- admin123
'Администратор AETERNA',
'+79129991223',
'Москва',
TRUE,
TRUE
) ON CONFLICT (email) DO NOTHING;
-- Тестовый пользователь (пароль: user123)
INSERT INTO users (email, password_hash, full_name, phone, city, is_admin, is_active)
VALUES (
'user@test.com',
'$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', -- user123
'Тестовый Пользователь',
'+79111234567',
'Санкт-Петербург',
FALSE,
TRUE
) ON CONFLICT (email) DO NOTHING;
-- Категории
INSERT INTO categories (name, slug, description, sort_order, is_active) VALUES
('Диваны', 'divany', 'Прямые и угловые диваны для гостиной', 1, TRUE),
('Кресла', 'kresla', 'Кресла для гостиной и офиса', 2, TRUE),
('Кровати', 'krovati', 'Односпальные и двуспальные кровати', 3, TRUE),
('Столы', 'stoly', 'Обеденные и рабочие столы', 4, TRUE),
('Стулья', 'stulya', 'Стулья для кухни и офиса', 5, TRUE),
('Светильники', 'svetilniki', 'Торшеры, люстры и настольные лампы', 6, TRUE)
ON CONFLICT (slug) DO NOTHING;
-- Товары
INSERT INTO products (category_id, name, slug, description, price, old_price, sku, stock_quantity, is_available, image_url, color, material, card_size) VALUES
(1, 'Светильник MINNIGHT', 'svetilnik-minnight', 'Настольный светильник в современном стиле', 7999, 9999, 'LAMP-MIN-001', 15, TRUE, 'img2/1_2.png', 'Черный', 'Металл', 'small'),
(3, 'Кровать MODER', 'krovat-moder', 'Двуспальная кровать с мягким изголовьем', 45999, 55999, 'BED-MOD-001', 5, TRUE, 'img2/3_3.png', 'Серый', 'Дерево/Ткань', 'large'),
(6, 'Торшер MARCIA', 'torsher-marcia', 'Напольный торшер с регулируемой высотой', 11999, 14999, 'LAMP-MAR-001', 8, TRUE, 'img2/2_2.png', 'Золотой', 'Металл', 'tall'),
(6, 'Светильник POLET', 'svetilnik-polet', 'Подвесной светильник для гостиной', 5499, NULL, 'LAMP-POL-001', 20, TRUE, 'img2/4.jpg', 'Белый', 'Стекло', 'wide'),
(4, 'Стол NORD', 'stol-nord', 'Обеденный стол в скандинавском стиле', 23999, 28999, 'TABLE-NOR-001', 7, TRUE, 'img2/5_5.png', 'Натуральный', 'Дерево', 'small1'),
(1, 'Диван ROYALTY', 'divan-royalty', 'Роскошный угловой диван с велюровой обивкой', 78999, 95999, 'SOFA-ROY-001', 3, TRUE, 'img2/6_6.png', 'Зеленый', 'Велюр', 'wide2'),
(2, 'Кресло MINIMAL', 'kreslo-minimal', 'Кресло в минималистичном стиле', 29999, 35999, 'ARM-MIN-001', 10, TRUE, 'img2/7_7.png', 'Бежевый', 'Ткань', 'wide3'),
(4, 'Стол LONKI', 'stol-lonki', 'Журнальный столик с мраморной столешницей', 34999, NULL, 'TABLE-LON-001', 12, TRUE, 'img2/8_8.png', 'Белый мрамор', 'Мрамор/Металл', 'wide2_1'),
(1, 'Диван HEMMINS', 'divan-hemmins', 'Большой модульный диван для всей семьи', 89999, 110000, 'SOFA-HEM-001', 2, TRUE, 'img2/9_9.png', 'Темно-серый', 'Ткань', 'full-width')
ON CONFLICT (slug) DO NOTHING;
-- Выводим статистику
DO $$
DECLARE
users_count INTEGER;
categories_count INTEGER;
products_count INTEGER;
BEGIN
SELECT COUNT(*) INTO users_count FROM users;
SELECT COUNT(*) INTO categories_count FROM categories;
SELECT COUNT(*) INTO products_count FROM products;
RAISE NOTICE 'Загружено: % пользователей, % категорий, % товаров',
users_count, categories_count, products_count;
END $$;