# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Обзор проекта Stroyprofit CRM — Laravel 11 приложение для управления заказами строительных конструкций. Включает каталог товаров, управление заказами (обычные и МАФ), рекламации, генерацию документов и расписание. ## Команды разработки ### Docker и запуск ```bash make up # Запуск проекта make stop # Остановка make install # Полная установка с миграциями make application # Bash в контейнер приложения ``` ### База данных ```bash make db-migrate # Применить миграции make db-seed # Запустить сидеры make db-migrate-refresh # Сбросить БД и засеять make db-rollback # Откатить последнюю миграцию ``` ### Frontend ```bash make frontend-build # npm install + build npm run dev # Vite dev server npm run build # Production build ``` ### Очереди и логи ```bash make queue-restart # Перезапуск воркера make queue-log # Логи очереди make application-log # Логи приложения ``` ### Полное dev-окружение ```bash composer dev # Запуск server + queue + logs + vite параллельно ``` ## Архитектура ### Service Layer Бизнес-логика вынесена в `app/Services/`: - **Export/** — экспорт данных в Excel (Orders, MAFs, Schedules) - **Import/** — импорт из Excel (Orders, MAFs, Reclamations) - **Generate/** — генерация документов (Installation, Handover, Reclamation packs) ### Queue Jobs Тяжёлые операции выполняются через очереди (`app/Jobs/`): - Экспорт/импорт данных - Генерация пакетов документов - Уведомления ### Основные модели - **Order** / **MafOrder** — заказы клиентов и МАФ - **Product** / **ProductSKU** — каталог товаров - **Reclamation** — рекламации - **Contract** — договоры ### Views для отчётов Используются database views для агрегации данных: - `OrderView`, `MafOrdersView`, `ReclamationView` ## Технологический стек - **Backend:** PHP 8.2+, Laravel 11, MySQL 8, Redis - **Frontend:** Bootstrap 5, jQuery, Vite, Sass - **DevOps:** Docker, Nginx, Node.js WebSocket server ## Особенности ### Мультигодовая структура Данные сегментируются по годам. Текущий год хранится в сессии. ### Шаблоны документов Excel-шаблоны находятся в `/templates/` — используются для экспорта и генерации документов. ### WebSocket Node.js сервер в `docker/simple-ws/` для real-time обновлений. JWT-аутентификация через переменную `JWT_SECRET`. ## Ключевые настройки .env ``` APP_LOCALE=ru APP_TIMEZONE=Europe/Moscow QUEUE_CONNECTION=redis PAGINATION_LIMIT=2000 ```