mass refactor
This commit is contained in:
105
docs/VIP_FUNCTIONS.md
Normal file
105
docs/VIP_FUNCTIONS.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# VIP Функции - Документация
|
||||
|
||||
## Обзор
|
||||
Реализованы VIP функции с проверкой премиум статуса пользователя в базе данных.
|
||||
|
||||
## База данных
|
||||
|
||||
### Новые поля в таблице users:
|
||||
- `premium` (BOOLEAN) - флаг премиум статуса
|
||||
- `premium_expires_at` (TIMESTAMP) - дата окончания премиум
|
||||
|
||||
## Логика работы
|
||||
|
||||
### 1. Кнопка "VIP Поиск"
|
||||
- **Если premium = false**: показывает информацию о премиум и предложение купить
|
||||
- **Если premium = true**: открывает VIP поиск с фильтрами
|
||||
|
||||
### 2. VIP Поиск включает:
|
||||
|
||||
#### Быстрый VIP поиск
|
||||
- Только пользователи с фото
|
||||
- Только онлайн пользователи
|
||||
|
||||
#### Расширенный поиск
|
||||
- Фильтр по возрасту
|
||||
- Фильтр по городу
|
||||
- Фильтр по целям знакомства
|
||||
- Фильтр по хобби
|
||||
- Фильтр по образу жизни
|
||||
|
||||
#### Поиск по целям знакомства
|
||||
- Серьезные отношения
|
||||
- Общение и дружба
|
||||
- Развлечения
|
||||
- Деловые знакомства
|
||||
|
||||
#### Поиск по хобби
|
||||
- Фильтрация по массиву хобби в профиле
|
||||
|
||||
## Файлы
|
||||
|
||||
### Новые файлы:
|
||||
- `src/services/vipService.ts` - сервис для работы с VIP функциями
|
||||
- `src/controllers/vipController.ts` - контроллер VIP поиска
|
||||
- `src/database/migrations/add_premium_field.sql` - миграция для premium полей
|
||||
|
||||
### Изменённые файлы:
|
||||
- `src/handlers/callbackHandlers.ts` - добавлены VIP обработчики
|
||||
|
||||
## Методы VipService
|
||||
|
||||
### checkPremiumStatus(telegramId: string)
|
||||
Проверяет премиум статус пользователя, автоматически убирает истёкший премиум.
|
||||
|
||||
### addPremium(telegramId: string, durationDays: number)
|
||||
Добавляет премиум статус на указанное количество дней.
|
||||
|
||||
### vipSearch(telegramId: string, filters: VipSearchFilters)
|
||||
Выполняет VIP поиск с фильтрами (только для премиум пользователей).
|
||||
|
||||
### getPremiumFeatures()
|
||||
Возвращает описание премиум возможностей.
|
||||
|
||||
## Методы VipController
|
||||
|
||||
### showVipSearch(chatId, telegramId)
|
||||
Основной метод - показывает VIP поиск или информацию о премиум.
|
||||
|
||||
### performQuickVipSearch(chatId, telegramId)
|
||||
Быстрый VIP поиск (фото + онлайн).
|
||||
|
||||
### showDatingGoalSearch(chatId, telegramId)
|
||||
Показывает поиск по целям знакомства.
|
||||
|
||||
## Тестирование
|
||||
|
||||
### Добавить премиум пользователю:
|
||||
```sql
|
||||
UPDATE users SET premium = true, premium_expires_at = NOW() + INTERVAL '30 days'
|
||||
WHERE telegram_id = 'YOUR_TELEGRAM_ID';
|
||||
```
|
||||
|
||||
### Убрать премиум:
|
||||
```sql
|
||||
UPDATE users SET premium = false, premium_expires_at = NULL
|
||||
WHERE telegram_id = 'YOUR_TELEGRAM_ID';
|
||||
```
|
||||
|
||||
## Callback данные
|
||||
|
||||
- `get_vip` / `vip_search` - показать VIP поиск
|
||||
- `vip_quick_search` - быстрый VIP поиск
|
||||
- `vip_advanced_search` - расширенный поиск
|
||||
- `vip_dating_goal_search` - поиск по целям
|
||||
- `vip_goal_{goal}` - поиск по конкретной цели
|
||||
- `vip_like_{telegramId}` - VIP лайк
|
||||
- `vip_superlike_{telegramId}` - VIP супер-лайк
|
||||
- `vip_dislike_{telegramId}` - VIP дизлайк
|
||||
|
||||
## Безопасность
|
||||
|
||||
- Все VIP функции проверяют премиум статус
|
||||
- Автоматическое удаление истёкшего премиум
|
||||
- Валидация всех входных данных
|
||||
- Проверка существования пользователей перед операциями
|
||||
Reference in New Issue
Block a user