import { BotContext } from "../types/botTypes"; import { formatPrice } from "./priceUtils"; import { messageManager } from "./messageManager"; export const getWelcomeMessage = (name: string = "عزيزي المستخدم") => { return messageManager.getMessage('welcome').replace('{name}', name); }; export const getLoginMessage = () => { return messageManager.getMessage('login'); }; export const getTermsMessage = () => { return messageManager.getMessage('terms'); }; export const getNewMembersMessage = () => { return messageManager.getMessage('new_members'); }; export const getStatsMessage = () => { return messageManager.getMessage('stats') .replace('{current_datetime}', new Date().toLocaleString('ar-SA')); }; export const getHelpMessage = () => { return messageManager.getMessage('help'); }; export const getAboutMessage = () => { return messageManager.getMessage('about'); }; export const getContactMessage = () => { return messageManager.getMessage('contact'); }; export const getAuthRequiredMessage = () => { return messageManager.getMessage('auth_required'); }; // export const getCountriesListMessage = (service: string, page: number = 0) => { // return messageManager.getMessage('countries_list') // .replace('{service}', service) // .replace('{page > 0 ? `📑 الصفحة: {page + 1}\n` : \'\'}', // page > 0 ? `📑 الصفحة: ${page + 1}\n` : ''); // }; export const getCountriesListMessage = (service: string, page: number = 0) => { return ` 🌍 *الدول المتاحة لخدمة ${service}* ${page > 0 ? `📑 الصفحة: ${page + 1}\n` : ''}✨ اختر الدولة التي تريدها من القائمة التالية: `; }; export const getServiceErrorMessage = (service: string) => { return messageManager.getMessage('service_error') .replace('{service}', service); }; export const getLoadingPricesMessage = (service: string, countryId: string) => { return messageManager.getMessage('loading_prices') .replace('{service}', service) .replace('{countryId}', countryId); }; export const getNoPricesMessage = (service: string, countryId: string) => { return messageManager.getMessage('no_prices') .replace('{service}', service) .replace('{countryId}', countryId); }; export const getPricesListMessage = ( service: string, countryId: string, prices: any, ctx: BotContext ) => { const countryName = countryId; // Consider using a real mapping function like getCountryName(countryId) let message = messageManager.getMessage('prices_list') .replace('{service}', service) .replace('{countryName}', countryName); // If you want to include prices in the future: // Object.entries(prices).forEach(([operator, priceInfo]: [string, any]) => { // const formattedPrice = formatPrice(ctx, priceInfo.cost); // const availability = priceInfo.count > 0 ? ` (${priceInfo.count} متاح)` : ' (غير متوفر)'; // message += `${operator}: ${formattedPrice}${availability}\n`; // }); return message; }; export const getPricesErrorMessage = (service: string, countryId: string) => { return messageManager.getMessage('prices_error') .replace('{service}', service) .replace('{countryId}', countryId); }; export const getProcessingPurchaseMessage = (service: string, countryId: string) => { return messageManager.getMessage('processing_purchase') .replace('{service}', service) .replace('{countryId}', countryId); }; export const getServiceUnavailableMessage = ( service: string, operator: string, countryId: string ) => { return messageManager.getMessage('service_unavailable') .replace('{service}', service) .replace('{operator}', operator) .replace('{countryId}', countryId); }; export const getInsufficientBalanceMessage = (cost: number, balance: number) => { return messageManager.getMessage('insufficient_balance') .replace('{cost}', cost.toString()) .replace('{balance}', balance.toString()); }; export const getPurchaseSuccessMessage = ( purchaseResult: any, service: string, countryId: string, operator: string, cost: number ) => { return messageManager.getMessage('purchase_success') .replace('{phone}', purchaseResult.phone) .replace('{countryId}', countryId) .replace('{operator}', operator) .replace('{cost}', cost.toString()) .replace('{expires}', purchaseResult.expires.toString()); }; export const getPurchaseFailedMessage = () => { return messageManager.getMessage('purchase_failed'); }; export const getPurchaseErrorMessage = (errorMessage: string) => { return messageManager.getMessage('purchase_error') .replace('{error_message}', errorMessage || 'سبب غير معروف'); }; export const getPaginationErrorMessage = () => { return messageManager.getMessage('pagination_error'); }; export const getVerificationCodeMessage = (phone: string, code: string) => { return messageManager.getMessage('verification_code') .replace('{phone}', phone) .replace('{code}', code) .replace('{current_time}', new Date().toLocaleTimeString('ar-SA')); }; export const getVerificationTimeoutMessage = () => { return messageManager.getMessage('verification_timeout'); }; export const getSearchProductPromptMessage = () => { return messageManager.getMessage('search_product_prompt'); }; export const getNoSearchResultsMessage = () => { return messageManager.getMessage('no_search_results'); }; export const getInvalidSearchInputMessage = () => { return messageManager.getMessage('invalid_search_input'); }; export const getSearchCountryPromptMessage = () => { return messageManager.getMessage('search_country_prompt'); }; export const getNoCountrySearchResultsMessage = () => { return messageManager.getMessage('no_country_search_results'); }; export const getAffordableProductsMessage = (balance: number, ctx: BotContext) => { return messageManager.getMessage('affordable_products_list') .replace('{balance}', formatPrice(ctx, balance)); }; export const getNoAffordableProductsMessage = (balance: number, ctx: BotContext) => { return messageManager.getMessage('no_affordable_products') .replace('{balance}', formatPrice(ctx, balance)); }; export const getJoinGroupRequiredMessage = (group: string) => { return { ar: `⚠️ يجب عليك الانضمام إلى المجموعة أولاً لاستخدام البوت\n\n📢 انضم إلى المجموعة: @${group}`, en: `⚠️ You must join the group first to use the bot\n\n📢 Join the group: @${group}` }; };