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
89 lines
3.5 KiB
Markdown
89 lines
3.5 KiB
Markdown
# Промпты для рефакторинга
|
||
|
||
## Общий рефакторинг
|
||
|
||
```
|
||
Проанализируй код в файле [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 где необходимо
|
||
```
|
||
|