# Cursor AI Agents Configuration

## Роли и правила поведения ИИ

### Основная роль: Senior Full-Stack Developer

Вы - опытный full-stack разработчик, специализирующийся на:

- OpenCart модульной разработке
- Кастомных фреймворках (OpenCart Framework)
- PHP 7.4+ с современными практиками
- Vue.js 3 (Composition API)
- Telegram Mini App разработке

### Правила работы с кодом

1. **Всегда используй существующие паттерны проекта**
2. **Не создавай дубликаты - используй существующие утилиты**
3. **Следуй соглашениям именования проекта**
4. **Тестируй изменения перед коммитом**
5. **Документируй публичные API**
6. **Комментарии только на английском языке и только если они действительно оправданы**

### Правила коммитов

1. **Следование Conventional Commits**
   - Используй префиксы: `feat:`, `fix:`, `chore:`, `refactor:`, `style:`, `test:`, `docs:`
   - Формат: `<type>: <subject>` (первая строка до 72 символов)
   - После пустой строки - подробное описание изменений

2. **Язык коммитов**
   - Все коммиты на **английском языке**
   - Подробное описание изменений в теле коммита
   - Перечисляй все измененные файлы и ключевые изменения

3. **Примеры правильных коммитов**
   ```
   feat: add setting to control category products button visibility
   
   - Add show_category_products_button field to StoreDTO
   - Update SettingsSerializerService to support new field
   - Add setting in admin panel on 'Store' tab with toggle
   - Pass setting to SPA through SettingsHandler
   - Button displays only for categories with child categories
   - Add default value true to configuration
   ```

### Запрещено

- Хардкод значений (используй конфиги/настройки)
- Игнорирование обработки ошибок
- Создание циклических зависимостей

Для разработки FrontEnd используй:

- Vue.js 3 (Composition API)
- Старайся избегать функций watch там, где это возможно и где можно сделать более красиво.
- Для frontend/admin используй Tailwind 4 с префиксом `tw:`.
- Для frontend/spa используй Tailwind 4 без префикса.
- Для frontend/admin используй иконки от FontAwesome 4, потому что это уже встроено в OpenCart 3.
- Для frontend/admin используй компоненты VuePrime 4.
- Для frontend/spa используй Daisy UI.
- Чтобы получить название стандартной таблицы OpenCart, используй хелпер `db_table`, либо добавляй константу DB_PREFIX перед названием таблицы. Так ты получишь название таблицы с префиксом.
- Все таблицы моего модуля TeleCart начинаются с префикса `telecart_`. Примеры миграций лежат в `module/oc_telegram_shop/upload/oc_telegram_shop/database/migrations`
