CLAUDE.md 3.5 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Обзор проекта

Stroyprofit CRM — Laravel 11 приложение для управления заказами строительных конструкций. Включает каталог товаров, управление заказами (обычные и МАФ), рекламации, генерацию документов и расписание.

Команды разработки

Docker и запуск

make up                   # Запуск проекта
make stop                 # Остановка
make install              # Полная установка с миграциями
make application          # Bash в контейнер приложения

База данных

make db-migrate           # Применить миграции
make db-seed              # Запустить сидеры
make db-migrate-refresh   # Сбросить БД и засеять
make db-rollback          # Откатить последнюю миграцию

Frontend

make frontend-build       # npm install + build
npm run dev               # Vite dev server
npm run build             # Production build

Очереди и логи

make queue-restart        # Перезапуск воркера
make queue-log            # Логи очереди
make application-log      # Логи приложения

Полное dev-окружение

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