Veronika Smirnova 35cbbac504 security: полная интеграция системы безопасности для кабинета поставщика
Критические изменения для соответствия новым правилам безопасности SFERA:

🔒 Backend безопасность:
- Интеграция SupplyDataFilter в резолвер mySupplyOrders
- Обновление мутаций поставщика (approve/reject/ship) с полной системой безопасности
- Проверка ролей WHOLESALE на уровне GraphQL
- Валидация доступа через ParticipantIsolation.validateAccess
- Аудит коммерческих данных через CommercialDataAudit
- Проверка партнерских отношений validatePartnerAccess
- Фильтрация возвращаемых данных по ролям

🔒 Frontend безопасность:
- Скрытие колонок "Услуги ФФ", "Расходники ФФ", "Расходники селлера", "Логистика" для WHOLESALE
- Отображение только стоимости товаров поставщика (не общую сумму)
- Адаптивная таблица с правильными colSpan для скрытых колонок
- Переименование колонки "Итого" в "Мои товары" для WHOLESALE

🔒 Система типов:
- Расширение SecurityContext для обратной совместимости
- Добавление req (IP, User-Agent) в Context для аудита
- Расширение CommercialAccessType для действий поставщика
- Добавление RULE_VIOLATION в SecurityAlertType

🎯 Соответствие правилам:
- WHOLESALE видят только свои товары и цены
- НЕ видят рецептуру, услуги ФФ, логистику
- Все действия логируются в аудит
- Изоляция между участниками цепочки поставок

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-22 21:23:32 +03:00

Sfera V - Управление бизнесом

Платформа для управления различными типами бизнеса: фулфилмент, селлеры, логистика, оптовики.

Новые возможности

🏪 Склад Wildberries для селлеров

Новый раздел для селлеров, позволяющий:

  • Просмотр остатков товаров на всех складах WB в реальном времени
  • Статистика по складам - общее количество товаров, остатки, товары в пути
  • Фильтрация и поиск товаров по названию, артикулу, бренду
  • Детальная информация по каждому складу отдельно
  • Красивые карточки товаров с изображениями и статусами остатков

Как использовать:

  1. Настройте API ключ Wildberries в разделе "Настройки" → "API"
  2. Перейдите в раздел "Склад ВБ" в боковом меню
  3. Система автоматически загрузит актуальные остатки с вашего аккаунта WB

Технические особенности:

  • Интеграция с официальным API Wildberries
  • Поддержка всех типов складов WB
  • Кэширование данных для быстрой работы
  • Адаптивный дизайн в стиле платформы

База данных и инициализация

🛠 Команды для работы с БД

  • npm run db:seed - Инициализация БД (создание админа и категорий)
  • npm run db:reset - Полный сброс БД и пересоздание данных
  • npm run postinstall - Генерация Prisma Client

👤 Администратор по умолчанию

При первом запуске автоматически создается админ:

  • Логин: admin
  • Пароль: admin123
  • Email: admin@sferav.com

⚠️ Обязательно смените пароль после первого входа!

📂 Категории товаров

Автоматически создается 20 базовых категорий:

  • Одежда и обувь, Косметика и парфюмерия, Дом и сад
  • Детские товары, Спорт и отдых, Электроника
  • И другие популярные категории...

🔄 Автоматическая инициализация

База данных инициализируется автоматически при:

  • Первом запуске приложения
  • Запуске команды npm run db:seed
  • Сбросе БД через npm run db:reset

Система умно проверяет существующие данные и не создает дубликаты.

Структура проекта

  • src/app/wb-warehouse/ - Страница склада WB
  • prisma/seed.js - Скрипт инициализации БД
  • src/lib/seed-init.ts - Автоматическая инициализация
  • src/components/wb-warehouse/ - Компоненты интерфейса склада
  • src/services/wildberries-service.ts - Интеграция с API WB

Технологии

  • Next.js 15
  • React 18
  • TypeScript
  • GraphQL
  • Prisma
  • TailwindCSS
  • Shadcn/ui

Установка и запуск

npm install
npm run dev

API интеграции

  • Wildberries API для получения остатков и информации о складах
  • DaData для работы с организациями
  • SMS Aero для отправки SMS

Доступ к разделу "Склад ВБ" имеют только пользователи с типом организации "SELLER".

Description
No description provided
Readme 13 MiB
Languages
TypeScript 96.4%
JavaScript 2.9%
CSS 0.3%
HTML 0.3%