"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 (
Схема всего проекта по кабинетам со связями между ними и детальная визуализация бизнес-процесса поставки товаров
Полная архитектура системы с типами кабинетов и их взаимосвязями
Кабинеты, модули и связи между ними
{cabinet.description}
{cabinet.role}
Функции:
{module.description}
Функции:
Доступ:{" "} {module.connectedTo.join(", ")}
Селлер → Маркет → Оптовик → Фулфилмент → Логистика
Все кабинеты связаны через Мессенджер для обмена информацией
Система заявок и управления контрагентами между всеми участниками
Админ-панель для управления пользователями, категориями и UI Kit
Селлер создаёт заказ
Через маркет выбирает товары
Оптовик одобряет
Подтверждает наличие товара
Фулфилмент принимает
Готовится к приёмке товара
Логистика доставляет
Транспортирует товар
Мессенджер
Центр всех коммуникаций
Система партнёрства
Управление контрагентами
Заявки на партнёрство
Отправка и получение заявок
Управление контрагентами
Ведение базы партнёров
Настройки
Профиль и конфигурация
{actor.count} шагов
Полный цикл поставки товара от заказа до выставления счёта
{step.description}
Схематическое представление всех этапов процесса поставки
Полная схема процесса от создания заказа до получения счёта
Упрощённая схема движения данных между кабинетами
Создание заказа, отслеживание статуса, получение счёта
Получение и одобрение заявок на поставку
Управление поставками, приёмка, подготовка, контроль качества
Подтверждение заявок и организация доставки