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:
88
.cursor/prompts/refactoring.md
Normal file
88
.cursor/prompts/refactoring.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Промпты для рефакторинга
|
||||
|
||||
## Общий рефакторинг
|
||||
|
||||
```
|
||||
Проанализируй код в файле [FILE_PATH] и выполни рефакторинг:
|
||||
1. Убери дублирование кода
|
||||
2. Улучши читаемость
|
||||
3. Примени принципы SOLID
|
||||
4. Добавь обработку ошибок где необходимо
|
||||
5. Улучши типизацию
|
||||
6. Добавь документацию для публичных методов
|
||||
7. Убедись что код следует архитектуре MVC-L проекта
|
||||
8. Используй существующие утилиты и сервисы проекта вместо создания новых
|
||||
```
|
||||
|
||||
## Рефакторинг Handler
|
||||
|
||||
```
|
||||
Рефакторинг Handler [HANDLER_NAME]:
|
||||
1. Вынеси бизнес-логику в отдельный Service
|
||||
2. Добавь валидацию входных данных
|
||||
3. Улучши обработку ошибок с логированием
|
||||
4. Используй DTO для передачи данных
|
||||
5. Добавь PHPDoc комментарии
|
||||
6. Убедись что используется Dependency Injection
|
||||
7. Оптимизируй запросы к БД если необходимо
|
||||
```
|
||||
|
||||
## Рефакторинг Model
|
||||
|
||||
```
|
||||
Рефакторинг Model [MODEL_NAME]:
|
||||
1. Убедись что все запросы используют Query Builder
|
||||
2. Добавь методы для частых операций (findBy, findAll, create, update)
|
||||
3. Добавь валидацию данных перед сохранением
|
||||
4. Улучши типизацию методов
|
||||
5. Добавь PHPDoc комментарии
|
||||
6. Используй транзакции для сложных операций
|
||||
```
|
||||
|
||||
## Рефакторинг Vue компонента
|
||||
|
||||
```
|
||||
Рефакторинг Vue компонента [COMPONENT_NAME]:
|
||||
1. Вынеси логику в composable функции
|
||||
2. Улучши типизацию props и emits
|
||||
3. Оптимизируй computed properties
|
||||
4. Добавь обработку ошибок
|
||||
5. Улучши структуру template
|
||||
6. Добавь loading states
|
||||
7. Используй существующие утилиты проекта
|
||||
```
|
||||
|
||||
## Удаление дублирования
|
||||
|
||||
```
|
||||
Найди и устрани дублирование кода в:
|
||||
- [FILE_PATH_1]
|
||||
- [FILE_PATH_2]
|
||||
- [FILE_PATH_3]
|
||||
|
||||
Создай общие утилиты/сервисы где необходимо, следуя архитектуре проекта.
|
||||
```
|
||||
|
||||
## Улучшение производительности
|
||||
|
||||
```
|
||||
Проанализируй производительность кода в [FILE_PATH]:
|
||||
1. Оптимизируй запросы к БД (используй индексы, избегай N+1)
|
||||
2. Добавь кэширование где уместно
|
||||
3. Оптимизируй алгоритмы
|
||||
4. Уменьши количество запросов к API
|
||||
5. Используй ленивую загрузку на фронтенде
|
||||
```
|
||||
|
||||
## Улучшение безопасности
|
||||
|
||||
```
|
||||
Улучши безопасность кода в [FILE_PATH]:
|
||||
1. Добавь валидацию всех входных данных
|
||||
2. Используй prepared statements (Query Builder)
|
||||
3. Добавь CSRF защиту где необходимо
|
||||
4. Валидируй права доступа
|
||||
5. Санитизируй выходные данные
|
||||
6. Добавь rate limiting где необходимо
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user