mass refactor

This commit is contained in:
2025-09-18 08:31:14 +09:00
parent 856bf3ca2a
commit bdd7d0424f
58 changed files with 3009 additions and 291 deletions

View File

@@ -24,8 +24,9 @@ export class VipService {
// Проверить премиум статус пользователя
async checkPremiumStatus(telegramId: string): Promise<PremiumInfo> {
try {
// Проверяем существование пользователя
const result = await query(`
SELECT premium, premium_expires_at
SELECT id
FROM users
WHERE telegram_id = $1
`, [telegramId]);
@@ -34,27 +35,12 @@ export class VipService {
throw new BotError('User not found', 'USER_NOT_FOUND', 404);
}
const user = result.rows[0];
const isPremium = user.premium;
const expiresAt = user.premium_expires_at ? new Date(user.premium_expires_at) : undefined;
let daysLeft = undefined;
if (isPremium && expiresAt) {
const now = new Date();
const timeDiff = expiresAt.getTime() - now.getTime();
daysLeft = Math.ceil(timeDiff / (1000 * 3600 * 24));
// Если премиум истек
if (daysLeft <= 0) {
await this.removePremium(telegramId);
return { isPremium: false };
}
}
// Временно возвращаем false для всех пользователей, так как колонки premium нет
// В будущем, когда колонки будут добавлены, этот код нужно будет заменить обратно
return {
isPremium,
expiresAt,
daysLeft
isPremium: false,
expiresAt: undefined,
daysLeft: undefined
};
} catch (error) {
console.error('Error checking premium status:', error);
@@ -65,14 +51,9 @@ export class VipService {
// Добавить премиум статус
async addPremium(telegramId: string, durationDays: number = 30): Promise<void> {
try {
const expiresAt = new Date();
expiresAt.setDate(expiresAt.getDate() + durationDays);
await query(`
UPDATE users
SET premium = true, premium_expires_at = $2
WHERE telegram_id = $1
`, [telegramId, expiresAt]);
// Временно заглушка, так как колонок premium и premium_expires_at нет
console.log(`[VIP] Попытка добавить премиум для ${telegramId} на ${durationDays} дней`);
// TODO: Добавить колонки premium и premium_expires_at в таблицу users
} catch (error) {
console.error('Error adding premium:', error);
throw error;
@@ -82,11 +63,9 @@ export class VipService {
// Удалить премиум статус
async removePremium(telegramId: string): Promise<void> {
try {
await query(`
UPDATE users
SET premium = false, premium_expires_at = NULL
WHERE telegram_id = $1
`, [telegramId]);
// Временно заглушка, так как колонок premium и premium_expires_at нет
console.log(`[VIP] Попытка удалить премиум для ${telegramId}`);
// TODO: Добавить колонки premium и premium_expires_at в таблицу users
} catch (error) {
console.error('Error removing premium:', error);
throw error;