Files
interview-demo-code/.cursor/agents.md
Nikita Kiselev 9a93cc7342 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
2025-11-23 21:30:51 +03:00

2.4 KiB
Raw Blame History

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