# Промпты для генерации API ## Создание нового API endpoint ``` Создай новый API endpoint [ENDPOINT_NAME] для [DESCRIPTION]: 1. Handler в [HANDLER_PATH]: - Метод handle() принимает Request - Валидация входных данных - Использование Service для бизнес-логики - Возврат JsonResponse с правильной структурой - Обработка ошибок с логированием 2. Service в [SERVICE_PATH]: - Бизнес-логика - Работа с Model - Валидация данных - Обработка исключений 3. Model в [MODEL_PATH] (если нужен): - Методы для работы с БД - Использование Query Builder - Типизация методов 4. Route в routes.php: - Добавь маршрут с правильным именем 5. Миграция (если нужна новая таблица): - Создай миграцию в database/migrations/ - Используй фиксированный префикс acmeshop_ - Добавь индексы где необходимо Следуй архитектуре MVC-L проекта и используй существующие паттерны. ``` ## Создание CRUD API ``` Создай полный CRUD API для сущности [ENTITY_NAME]: 1. Handler с методами: - list() - список с пагинацией и фильтрацией - get() - получение одной записи - create() - создание - update() - обновление - delete() - удаление 2. Service с бизнес-логикой для всех операций 3. Model с методами: - findAll() - список - findById() - по ID - create() - создание - update() - обновление - delete() - удаление 4. DTO для валидации данных 5. Миграция для таблицы [TABLE_NAME] 6. Routes для всех endpoints Используй серверную пагинацию, фильтрацию и сортировку для list(). ``` ## Создание Admin API endpoint ``` Создай Admin API endpoint [ENDPOINT_NAME] в bastion/Handlers/: 1. Handler в bastion/Handlers/[HANDLER_NAME].php: - Используй Request для получения параметров - Валидация данных - Работа через Service - Возврат JsonResponse с структурой { data: { data: [...], totalRecords: ... } } - Обработка ошибок 2. Service в bastion/Services/ (если нужен): - Бизнес-логика для админки - Работа с Models 3. Route в bastion/routes.php 4. Frontend компонент (если нужен UI): - Vue компонент в frontend/admin/src/views/ - Используй PrimeVue компоненты - Серверная пагинация/фильтрация - Обработка ошибок с toast уведомлениями Следуй существующим паттернам проекта. ``` ## Создание Frontend API клиента ``` Создай функцию для работы с API endpoint [ENDPOINT_NAME]: 1. В frontend/[admin|spa]/src/utils/http.js: - Функция api[Method] для вызова endpoint - Правильная обработка ошибок - Возврат структурированного ответа 2. Использование: - В компонентах через import - Обработка loading states - Toast уведомления для ошибок Следуй существующим паттернам в http.js. ``` ## Создание миграции ``` Создай миграцию для таблицы [TABLE_NAME]: 1. Файл: database/migrations/[TIMESTAMP]_[DESCRIPTION].php 2. Используй фиксированный префикс acmeshop_ для таблицы 3. Добавь все необходимые поля с правильными типами 4. Добавь индексы для часто используемых полей 5. Используй utf8mb4_unicode_ci collation 6. Используй InnoDB engine 7. Добавь created_at и updated_at timestamps 8. Не создавай foreign keys (используй только индексы) Следуй структуре существующих миграций. ```