Files
tg_tinder_bot/fixes.md
2025-09-18 11:42:18 +09:00

91 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Исправления ошибок в коде
## Проблема: Несоответствие имен столбцов в таблице swipes
В коде обнаружены несоответствия в названиях столбцов при работе с таблицей `swipes`. Используются два разных варианта именования:
1. `user_id` и `target_user_id`
2. `swiper_id` и `swiped_id`
Судя по ошибкам в консоли и анализу кода, корректными именами столбцов являются `user_id` и `target_user_id`.
## Необходимые исправления
### 1. В файле `profileService.ts` - метод `deleteProfile`:
```typescript
// Неверно:
await client.query('DELETE FROM swipes WHERE swiper_id = $1 OR swiped_id = $1', [userId]);
// Исправить на:
await client.query('DELETE FROM swipes WHERE user_id = $1 OR target_user_id = $1', [userId]);
```
### 2. В файле `matchingService.ts` - метод `performSwipe`:
```typescript
// Неверно:
const reciprocalSwipe = await client.query(`
SELECT * FROM swipes
WHERE swiper_id = $1 AND swiped_id = $2 AND direction IN ('right', 'super')
`, [targetUserId, userId]);
// Исправить на:
const reciprocalSwipe = await client.query(`
SELECT * FROM swipes
WHERE user_id = $1 AND target_user_id = $2 AND direction IN ('right', 'super')
`, [targetUserId, userId]);
```
### 3. В файле `matchingService.ts` - метод `getRecentLikes`:
```typescript
// Неверно (если используется метод mapEntityToSwipe):
private mapEntityToSwipe(entity: any): Swipe {
return new Swipe({
id: entity.id,
userId: entity.swiper_id,
targetUserId: entity.swiped_id,
type: this.convertDirectionToSwipeType(entity.direction),
timestamp: entity.created_at,
isMatch: entity.is_match
});
}
// Исправить на:
private mapEntityToSwipe(entity: any): Swipe {
return new Swipe({
id: entity.id,
userId: entity.user_id,
targetUserId: entity.target_user_id,
type: this.convertDirectionToSwipeType(entity.direction),
timestamp: entity.created_at,
isMatch: entity.is_match
});
}
```
### 4. В файле `matchingService.ts` - метод `getDailySwipeStats`:
```typescript
// Неверно:
const result = await query(`
SELECT direction, COUNT(*) as count
FROM swipes
WHERE swiper_id = $1 AND created_at >= $2
GROUP BY direction
`, [userId, today]);
// Исправить на:
const result = await query(`
SELECT direction, COUNT(*) as count
FROM swipes
WHERE user_id = $1 AND created_at >= $2
GROUP BY direction
`, [userId, today]);
```
## Примечание
После внесения исправлений рекомендуется проверить все остальные места в коде, где могут использоваться эти имена столбцов, и убедиться в их согласованности.