Spaces:
Paused
Paused
| import { getWelcomeMessage , getHelpMessage, getAboutMessage, getContactMessage} from "../utils/messageUtils"; | |
| import { getMainMenuKeyboard, getLoggedInMenuKeyboard, getHistoryKeyboard } from "../utils/keyboardUtils"; | |
| import { BotContext } from "../types/botTypes"; | |
| import { AuthService } from '../services/auth'; | |
| import { PurchaseTrackingService, PurchaseState } from '../services/PurchaseTrackingService'; | |
| import { createLogger } from '../../utils/logger'; | |
| import { messageReplyHandler } from "../utils/handlerUtils"; | |
| import { handleLanguageSelection } from "./languageHandlers"; | |
| import { messageManager } from "../utils/messageManager"; | |
| // import { logger } from "../../utils/logger"; | |
| const logger = createLogger('CommandHandlers'); | |
| const authService = AuthService.getInstance(); | |
| const purchaseTrackingService = PurchaseTrackingService.getInstance(); | |
| export const setupCommandHandlers = (bot: any) => { | |
| // /start command handler | |
| bot.start(messageReplyHandler(handleStartCommand)); | |
| // Other commands using the new messageReplyHandler | |
| bot.command('help', messageReplyHandler(handleHelpCommand)); | |
| bot.command('about', messageReplyHandler(handleAboutCommand)); | |
| bot.command('contact', messageReplyHandler(handleContactCommand)); | |
| bot.command('balance', messageReplyHandler(handleBalanceCommand)); | |
| bot.command('history', messageReplyHandler(handleHistoryCommand)); | |
| // Add language command handler | |
| bot.command('change_language', messageReplyHandler(handleLanguageCommand)); | |
| }; | |
| const handleStartCommand = (ctx: BotContext) => { | |
| const name = ctx.from?.first_name || "عزيزي المستخدم"; | |
| const telegramId = ctx.from?.id; | |
| if (telegramId && authService.isUserLoggedIn(telegramId,ctx)) { | |
| return { | |
| message: messageManager.getMessage('start_welcome_back').replace('{name}', name), | |
| options: getLoggedInMenuKeyboard() | |
| }; | |
| } else { | |
| return { | |
| message: messageManager.getMessage('start_welcome_new').replace('{name}', name), | |
| options: getMainMenuKeyboard() | |
| }; | |
| } | |
| }; | |
| const handleAboutCommand = (ctx: BotContext) => { | |
| const botData = ctx.botData; | |
| return { | |
| message: [ | |
| messageManager.getMessage('about_title'), | |
| messageManager.getMessage('about_bot_name').replace('{bot_name}', botData?.name || 'بوت الأرقام الافتراضية'), | |
| messageManager.getMessage('about_version').replace('{version}', botData?.version || '1.0.0'), | |
| messageManager.getMessage('about_currency').replace('{currency}', botData?.currency || 'USD'), | |
| '', | |
| messageManager.getMessage('about_features'), | |
| '', | |
| messageManager.getMessage('about_copyright') | |
| ].join('\n'), | |
| options: { parse_mode: 'HTML' } | |
| }; | |
| }; | |
| const handleHelpCommand = (ctx: BotContext) => { | |
| return { | |
| message: getHelpMessage(), | |
| options: { parse_mode: 'HTML' } | |
| }; | |
| }; | |
| const handleContactCommand = (ctx: BotContext) => { | |
| return { | |
| message: getContactMessage(), | |
| options: { parse_mode: 'HTML' } | |
| }; | |
| }; | |
| const handleBalanceCommand = async (ctx: BotContext) => { | |
| const telegramId = ctx.from?.id; | |
| if (!telegramId) { | |
| return { | |
| message: messageManager.getMessage('error_user_not_found'), | |
| options: {} | |
| }; | |
| } | |
| const user = await authService.getUserByTelegramId(telegramId,ctx); | |
| if (!user) { | |
| return { | |
| message: messageManager.getMessage('balance_auth_required'), | |
| options: getMainMenuKeyboard() | |
| }; | |
| } | |
| return { | |
| message: [ | |
| messageManager.getMessage('balance_title'), | |
| '', | |
| messageManager.getMessage('balance_current').replace('{balance}', (user.balance || 0).toString()), | |
| messageManager.getMessage('balance_last_updated').replace('{update_time}', new Date().toLocaleString('ar-SA')) | |
| ].join('\n'), | |
| options: { | |
| ...getLoggedInMenuKeyboard(), | |
| parse_mode: 'HTML' | |
| } | |
| }; | |
| }; | |
| const handleHistoryCommand = async (ctx: BotContext) => { | |
| const telegramId = ctx.from?.id; | |
| if (!telegramId) { | |
| return { | |
| message: messageManager.getMessage('error_user_not_found'), | |
| options: {} | |
| }; | |
| } | |
| if (!authService.isUserLoggedIn(telegramId,ctx)) { | |
| return { | |
| message: messageManager.getMessage('history_auth_required'), | |
| options: getMainMenuKeyboard() | |
| }; | |
| } | |
| return { | |
| message: [ | |
| messageManager.getMessage('history_title'), | |
| '', | |
| messageManager.getMessage('history_description') | |
| ].join('\n'), | |
| options: { | |
| ...getHistoryKeyboard(), | |
| parse_mode: 'HTML' | |
| } | |
| }; | |
| }; | |
| const handleLanguageCommand = (ctx: BotContext) => { | |
| return handleLanguageSelection(ctx); | |
| }; | |