"use client"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Separator } from "@/components/ui/separator"; import { ShoppingCart, Package, Truck, Warehouse, CheckCircle, Clock, AlertCircle, ArrowRight, Users, FileText, MapPin, DollarSign, MessageSquare, Building2, Settings, Handshake, MessageCircle, Store, } from "lucide-react"; export function BusinessProcessesDemo() { const processSteps = [ { id: 1, title: "Селлер заходит в маркет", description: "Пользователь входит в систему и переходит в раздел маркета", actor: "Селлер", status: "completed", icon: ShoppingCart, location: "Кабинет селлера → Маркет", }, { id: 2, title: "Выбор категории", description: "Селлер выбирает нужную категорию товаров", actor: "Селлер", status: "completed", icon: Package, location: "Маркет → Категории", }, { id: 3, title: "Выбор товара", description: "Выбор конкретного товара из каталога", actor: "Селлер", status: "completed", icon: Package, location: "Каталог товаров", }, { id: 4, title: "Заказ количества", description: "Указание необходимого количества товара", actor: "Селлер", status: "completed", icon: FileText, location: "Форма заказа", }, { id: 5, title: "Выбор услуг фулфилмента", description: "Выбор услуг фулфилмента и расходников для каждого товара", actor: "Селлер", status: "completed", icon: Warehouse, location: "Настройки заказа", }, { id: 6, title: "Создание заявки", description: "Нажатие кнопки 'Создать заявку' и формирование заявки на поставку", actor: "Селлер", status: "in-progress", icon: FileText, location: "Форма заказа", }, { id: 7, title: "Сохранение в кабинете селлера", description: "Заявка сохраняется в разделе 'Мои поставки' → 'Поставки на ФФ' → 'Товар'", actor: "Система", status: "pending", icon: Package, location: "Кабинет селлера → Мои поставки", }, { id: 8, title: "Дублирование поставщику", description: "Заявка дублируется в кабинет поставщика чей товар заказали", actor: "Система", status: "pending", icon: Users, location: "Кабинет поставщика → Заявки", }, { id: 9, title: "Одобрение поставщиком", description: "Поставщик должен одобрить заявку на поставку", actor: "Поставщик", status: "pending", icon: CheckCircle, location: "Кабинет поставщика → Заявки", }, { id: 10, title: "Изменение статуса у селлера", description: "После одобрения меняется статус поставки в кабинете селлера", actor: "Система", status: "pending", icon: AlertCircle, location: "Кабинет селлера → Мои поставки", }, { id: 11, title: "Появление в кабинете фулфилмента", description: "Поставка появляется в разделе 'Входящие поставки' → 'Поставки на фулфилмент' → 'Товар' → 'Новые'", actor: "Система", status: "pending", icon: Warehouse, location: "Кабинет фулфилмент → Входящие поставки", }, { id: 12, title: "Назначение ответственного", description: "Менеджер выбирает ответственного, логистику и нажимает 'Приёмка'", actor: "Менеджер фулфилмента", status: "pending", icon: Users, location: "Кабинет фулфилмент → Управление", }, { id: 13, title: "Перенос в приёмку", description: "Поставка переносится в подраздел 'Поставка на фулфилмент' → 'Товар' → 'Приёмка'", actor: "Система", status: "pending", icon: Package, location: "Кабинет фулфилмент → Приёмка", }, { id: 14, title: "Появление в логистике", description: "Заявка появляется в кабинете логистики в разделе 'Заявки'", actor: "Система", status: "pending", icon: Truck, location: "Кабинет логистика → Заявки", }, { id: 15, title: "Подтверждение логистикой", description: "Менеджер логистики подтверждает заявку, статусы меняются во всех кабинетах", actor: "Менеджер логистики", status: "pending", icon: CheckCircle, location: "Кабинет логистика → Заявки", }, { id: 16, title: "Доставка товара", description: "Логистика доставляет товар на фулфилмент", actor: "Логистика", status: "pending", icon: Truck, location: "Физическая доставка", }, { id: 17, title: "Ввод данных о хранении", description: "Менеджер фулфилмента вводит данные о месте хранения и нажимает 'Принято'", actor: "Менеджер фулфилмента", status: "pending", icon: MapPin, location: "Кабинет фулфилмент → Приёмка", }, { id: 18, title: "Обновление статусов", description: "Статусы меняются во всех кабинетах", actor: "Система", status: "pending", icon: AlertCircle, location: "Все кабинеты", }, { id: 19, title: "Перенос в подготовку", description: "Поставка переносится в раздел 'Подготовка'", actor: "Система", status: "pending", icon: Package, location: "Кабинет фулфилмент → Подготовка", }, { id: 20, title: "Обновление места хранения", description: "Вносятся данные о новом месте хранения товара-продукта", actor: "Менеджер фулфилмента", status: "pending", icon: MapPin, location: "Кабинет фулфилмент → Подготовка", }, { id: 21, title: "Перенос в работу", description: "Поставка переносится в подраздел 'В работе'", actor: "Система", status: "pending", icon: Clock, location: "Кабинет фулфилмент → В работе", }, { id: 22, title: "Контроль качества", description: "Вносятся данные о факте количества товара и о браке товара", actor: "Менеджер фулфилмента", status: "pending", icon: CheckCircle, location: "Кабинет фулфилмент → В работе", }, { id: 23, title: "Завершение работ", description: "При нажатии 'Выполнено' поставка переносится в подраздел 'Выполнено'", actor: "Менеджер фулфилмента", status: "pending", icon: CheckCircle, location: "Кабинет фулфилмент → Выполнено", }, { id: 24, title: "Обновление статуса у селлера", description: "В кабинете селлера меняется статус поставки", actor: "Система", status: "pending", icon: AlertCircle, location: "Кабинет селлера → Мои поставки", }, { id: 25, title: "Появление кнопки счёта", description: "В поставке появляется кнопка 'Выставить счёт'", actor: "Система", status: "pending", icon: DollarSign, location: "Кабинет селлера → Мои поставки", }, { id: 26, title: "Отправка счёта", description: "В сообщения селлеру отправляется счёт на оплату", actor: "Система", status: "pending", icon: MessageSquare, location: "Мессенджер селлера", }, ]; const getStatusColor = (status: string) => { switch (status) { case "completed": return "bg-green-500/20 text-green-400 border-green-500/30"; case "in-progress": return "bg-blue-500/20 text-blue-400 border-blue-500/30"; case "pending": return "bg-yellow-500/20 text-yellow-400 border-yellow-500/30"; default: return "bg-gray-500/20 text-gray-400 border-gray-500/30"; } }; const getStatusText = (status: string) => { switch (status) { case "completed": return "Выполнено"; case "in-progress": return "В процессе"; case "pending": return "Ожидает"; default: return "Неизвестно"; } }; const actors = [ { name: "Селлер", color: "bg-blue-500/20 text-blue-400", count: 5 }, { name: "Поставщик", color: "bg-green-500/20 text-green-400", count: 1 }, { name: "Менеджер фулфилмента", color: "bg-purple-500/20 text-purple-400", count: 5, }, { name: "Менеджер логистики", color: "bg-orange-500/20 text-orange-400", count: 1, }, { name: "Логистика", color: "bg-red-500/20 text-red-400", count: 1 }, { name: "Система", color: "bg-gray-500/20 text-gray-400", count: 13 }, ]; // Данные о кабинетах const cabinets = [ { id: "admin", name: "Админ", description: "Управление системой", icon: Settings, color: "bg-indigo-500/20 text-indigo-400 border-indigo-500/30", features: ["UI Kit", "Пользователи", "Категории"], role: "Администрирование системы", }, { id: "market", name: "Маркет", description: "Центральная площадка", icon: Store, color: "bg-emerald-500/20 text-emerald-400 border-emerald-500/30", features: ["Поиск партнёров", "Каталог товаров", "Заявки"], role: "Объединение всех участников", }, { id: "seller", name: "Селлер", description: "Продажи на маркетплейсах", icon: ShoppingCart, color: "bg-purple-500/20 text-purple-400 border-purple-500/30", features: ["Мои поставки", "Склад WB", "Статистика"], role: "Заказчик товаров и услуг", }, { id: "fulfillment", name: "Фулфилмент", description: "Склады и логистика", icon: Warehouse, color: "bg-red-500/20 text-red-400 border-red-500/30", features: [ "Входящие поставки", "Склад", "Услуги", "Сотрудники", "Статистика", ], role: "Обработка и хранение товаров", }, { id: "logistics", name: "Логистика", description: "Логистические решения", icon: Truck, color: "bg-orange-500/20 text-orange-400 border-orange-500/30", features: ["Перевозки", "Заявки"], role: "Доставка товаров", }, { id: "wholesale", name: "Оптовик", description: "Оптовые продажи", icon: Building2, color: "bg-cyan-500/20 text-cyan-400 border-cyan-500/30", features: ["Отгрузки", "Склад"], role: "Поставщик товаров", }, ]; const commonModules = [ { name: "Мессенджер", description: "Общение между участниками", icon: MessageCircle, features: ["Чаты", "Файлы", "Голосовые сообщения"], connectedTo: ["Все кабинеты"], }, { name: "Партнёры", description: "Управление контрагентами", icon: Handshake, features: ["Заявки", "Партнёрская сеть"], connectedTo: ["Все кабинеты кроме Админа"], }, { name: "Настройки", description: "Профиль организации", icon: Settings, features: ["API ключи", "Данные компании"], connectedTo: ["Все кабинеты кроме Админа"], }, ]; return (
{/* Заголовок */} Бизнес-процессы

Схема всего проекта по кабинетам со связями между ними и детальная визуализация бизнес-процесса поставки товаров

{/* Общая схема проекта */} 🏗️ Схема всего проекта по кабинетам

Полная архитектура системы с типами кабинетов и их взаимосвязями

{/* Mermaid диаграмма */}

Архитектурная схема проекта

Кабинеты, модули и связи между ними

{`graph TB %% Основные кабинеты A["🏢 Админ
Управление системой
UI Kit, Пользователи, Категории"] --> B["🏪 Маркет
Центральная площадка
Поиск партнёров"] %% Типы кабинетов C["🛒 Селлер
Продажи на маркетплейсах
• Мои поставки
• Склад WB
• Статистика"] D["📦 Фулфилмент
Склады и логистика
• Входящие поставки
• Склад
• Услуги
• Сотрудники
• Статистика"] E["🚛 Логистика
Логистические решения
• Перевозки
• Заявки"] F["🏭 Оптовик
Оптовые продажи
• Отгрузки
• Склад"] %% Общие модули G["💬 Мессенджер
Общение между участниками
• Чаты
• Файлы
• Голосовые"] H["🤝 Партнёры
Управление контрагентами
• Заявки
• Партнёрская сеть"] I["⚙️ Настройки
Профиль организации
• API ключи
• Данные компании"] %% Связи между кабинетами B --> C B --> D B --> E B --> F %% Бизнес-процессы C -->|"Создаёт заказ"| D C -->|"Заказывает товар"| F F -->|"Одобряет заявку"| D D -->|"Запрос логистики"| E E -->|"Доставка"| D D -->|"Готовый товар"| C %% Коммуникации C --> G D --> G E --> G F --> G %% Партнёрство C --> H D --> H E --> H F --> H %% Настройки доступны всем C --> I D --> I E --> I F --> I %% Стили для разных типов кабинетов classDef admin fill:#4f46e5,stroke:#4338ca,stroke-width:3px,color:#fff classDef market fill:#059669,stroke:#047857,stroke-width:3px,color:#fff classDef seller fill:#7c3aed,stroke:#6d28d9,stroke-width:3px,color:#fff classDef fulfillment fill:#dc2626,stroke:#b91c1c,stroke-width:3px,color:#fff classDef logistics fill:#ea580c,stroke:#c2410c,stroke-width:3px,color:#fff classDef wholesale fill:#0891b2,stroke:#0e7490,stroke-width:3px,color:#fff classDef common fill:#374151,stroke:#1f2937,stroke-width:2px,color:#fff class A admin class B market class C seller class D fulfillment class E logistics class F wholesale class G,H,I common`}
{/* Описание кабинетов */}

Типы кабинетов

{cabinets.map((cabinet) => { const IconComponent = cabinet.icon; return (

{cabinet.name}

{cabinet.description}

{cabinet.role}

Функции:

{cabinet.features.map((feature, index) => ( {feature} ))}
); })}
{/* Общие модули */}

Общие модули

{commonModules.map((module, index) => { const IconComponent = module.icon; return (

{module.name}

{module.description}

Функции:

{module.features.map((feature, featureIndex) => ( {feature} ))}

Доступ:{" "} {module.connectedTo.join(", ")}

); })}
{/* Ключевые связи */}

Ключевые бизнес-связи

Процесс заказа

Селлер → Маркет → Оптовик → Фулфилмент → Логистика

Коммуникации

Все кабинеты связаны через Мессенджер для обмена информацией

Партнёрство

Система заявок и управления контрагентами между всеми участниками

Администрирование

Админ-панель для управления пользователями, категориями и UI Kit

{/* Упрощенная схема потоков данных */}

Потоки данных между кабинетами

{/* Основной поток заказа */}

📋 Основной поток заказа

1

Селлер создаёт заказ

Через маркет выбирает товары

2

Оптовик одобряет

Подтверждает наличие товара

3

Фулфилмент принимает

Готовится к приёмке товара

4

Логистика доставляет

Транспортирует товар

{/* Коммуникационный поток */}

💬 Коммуникации

Мессенджер

Центр всех коммуникаций

Селлер Мессенджер
Фулфилмент Мессенджер
Логистика Мессенджер
Оптовик Мессенджер
{/* Управленческий поток */}

🤝 Партнёрство

Система партнёрства

Управление контрагентами

Заявки на партнёрство

Отправка и получение заявок

Управление контрагентами

Ведение базы партнёров

Настройки

Профиль и конфигурация

{/* Статистика участников */} Участники процесса
{actors.map((actor) => (
{actor.name}

{actor.count} шагов

))}
{/* Визуализация процесса */} Схема бизнес-процесса

Полный цикл поставки товара от заказа до выставления счёта

{processSteps.map((step, index) => { const IconComponent = step.icon; const isLast = index === processSteps.length - 1; return (
{/* Иконка и номер */}
{step.id}
{/* Контент */}

{step.title}

{getStatusText(step.status)}

{step.description}

{step.actor}
{step.location}
{/* Стрелка к следующему шагу */} {!isLast && (
)}
); })}
{/* Легенда статусов */} Легенда статусов
Выполнено Этап завершён
В процессе Выполняется сейчас
Ожидает Ожидает выполнения
{/* Диаграмма процесса */} Диаграмма бизнес-процесса

Схематическое представление всех этапов процесса поставки

Полная схема процесса от создания заказа до получения счёта

Селлер - создание и отслеживание заказа
Поставщик - одобрение заявки
Фулфилмент - обработка и хранение
Логистика - доставка товара
Система - автоматические операции
{/* Схема взаимодействия систем */} Схема взаимодействия систем

Упрощённая схема движения данных между кабинетами

{/* Селлер */}

Селлер

• Создаёт заказ
• Отслеживает статус
• Получает счёт
{/* Поставщик */}

Поставщик

• Получает заявку
• Одобряет поставку
{/* Фулфилмент */}

Фулфилмент

• Принимает товар
• Контролирует качество
• Управляет складом
{/* Логистика */}

Логистика

• Подтверждает заявку
• Доставляет товар
{/* Стрелки взаимодействия */}
Передача данных Смена статуса Уведомления
{/* Ключевые точки интеграции */} Ключевые точки интеграции

Кабинет селлера

Создание заказа, отслеживание статуса, получение счёта

Кабинет поставщика

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

Кабинет фулфилмента

Управление поставками, приёмка, подготовка, контроль качества

Кабинет логистики

Подтверждение заявок и организация доставки

); }