feat: add Telegram customers management system with admin panel
Implement comprehensive Telegram customers storage and management functionality: Backend: - Add database migration for telecart_customers table with indexes - Create TelegramCustomer model with CRUD operations - Implement TelegramCustomerService for business logic - Add TelegramCustomerHandler for API endpoint (saveOrUpdate) - Add TelegramCustomersHandler for admin API (getCustomers with pagination, filtering, sorting) - Add SendMessageHandler for sending messages to customers via Telegram - Create custom exceptions: TelegramCustomerNotFoundException, TelegramCustomerWriteNotAllowedException - Refactor TelegramInitDataDecoder to separate decoding logic - Add TelegramHeader enum for header constants - Update SignatureValidator to use TelegramInitDataDecoder - Register new routes in bastion/routes.php and src/routes.php Frontend (Admin): - Add CustomersView.vue component with PrimeVue DataTable - Implement advanced filtering (text, date, boolean filters) - Add column visibility toggle functionality - Add global search with debounce - Implement message sending dialog with validation - Add Russian locale for PrimeVue components - Add navigation link in App.vue - Register route in router Frontend (SPA): - Add saveTelegramCustomer utility function - Integrate automatic customer data saving on app initialization - Extract user data from Telegram.WebApp.initDataUnsafe The system automatically saves/updates customer data when users access the Telegram Mini App, and provides admin interface for viewing, filtering, and messaging customers. BREAKING CHANGE: None
This commit is contained in:
39
.cursor/agents.md
Normal file
39
.cursor/agents.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# 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**
|
||||
|
||||
### Запрещено
|
||||
|
||||
- Хардкод значений (используй конфиги/настройки)
|
||||
- Игнорирование обработки ошибок
|
||||
- Создание циклических зависимостей
|
||||
|
||||
Для разработки 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`
|
||||
Reference in New Issue
Block a user