Mohammed Foud commited on
Commit
ce25012
ยท
1 Parent(s): 039ba14
src/bots/handlers/purchaseHandlers.ts CHANGED
@@ -3,7 +3,6 @@ import { AuthService } from '../services/auth';
3
  import { VirtualNumberService } from '../services/VirtualNumberService';
4
  import { PurchaseTrackingService, PurchaseState } from '../services/PurchaseTrackingService';
5
  import { createLogger } from '../../utils/logger';
6
- import { serviceMapping } from './serviceHandlers';
7
  import {
8
  getAuthRequiredMessage,
9
  getServiceUnavailableMessage,
@@ -38,7 +37,7 @@ export const setupPurchaseHandlers = (bot: any) => {
38
 
39
  // Then execute the actual purchase logic
40
  try {
41
- await executePurchase(ctx, service, countryId, operator, serviceMapping, loadingMsg.message_id);
42
  } catch (error: any) {
43
  logger.error(`Error in purchase execution: ${error.message}`);
44
  await ctx.deleteMessage(loadingMsg.message_id);
@@ -52,7 +51,6 @@ export const executePurchase = async (
52
  service: string,
53
  countryId: string,
54
  operator: string,
55
- serviceMapping: {[key: string]: string},
56
  loadingMsgId: number
57
  ) => {
58
  // ๐Ÿ”’ Authentication check
@@ -65,11 +63,10 @@ export const executePurchase = async (
65
 
66
  let costWithProfit = 0;
67
  try {
68
- const fiveSimService = serviceMapping[service];
69
- const prices = await virtualNumberService.getPrices(fiveSimService, countryId);
70
 
71
  // Add validation to check if the price exists for this operator
72
- if (!prices || !prices[countryId] || !prices[countryId][fiveSimService] || !prices[countryId][fiveSimService][operator]) {
73
  await ctx.deleteMessage(loadingMsgId);
74
  await ctx.reply(
75
  getServiceUnavailableMessage(service, operator, countryId),
@@ -78,7 +75,7 @@ export const executePurchase = async (
78
  return;
79
  }
80
 
81
- const cost = prices[countryId][fiveSimService][operator].cost;
82
 
83
  // Apply profit to the cost
84
  costWithProfit = calculatePriceWithProfit(ctx, cost, 'RUB');
@@ -95,7 +92,7 @@ export const executePurchase = async (
95
  }
96
 
97
  // ๐Ÿ›’ Purchase number
98
- const purchaseResult = await virtualNumberService.purchaseNumber(fiveSimService, countryId, operator);
99
  await ctx.deleteMessage(loadingMsgId);
100
 
101
  if (purchaseResult && purchaseResult.phone) {
 
3
  import { VirtualNumberService } from '../services/VirtualNumberService';
4
  import { PurchaseTrackingService, PurchaseState } from '../services/PurchaseTrackingService';
5
  import { createLogger } from '../../utils/logger';
 
6
  import {
7
  getAuthRequiredMessage,
8
  getServiceUnavailableMessage,
 
37
 
38
  // Then execute the actual purchase logic
39
  try {
40
+ await executePurchase(ctx, service, countryId, operator, loadingMsg.message_id);
41
  } catch (error: any) {
42
  logger.error(`Error in purchase execution: ${error.message}`);
43
  await ctx.deleteMessage(loadingMsg.message_id);
 
51
  service: string,
52
  countryId: string,
53
  operator: string,
 
54
  loadingMsgId: number
55
  ) => {
56
  // ๐Ÿ”’ Authentication check
 
63
 
64
  let costWithProfit = 0;
65
  try {
66
+ const prices = await virtualNumberService.getPrices(service, countryId);
 
67
 
68
  // Add validation to check if the price exists for this operator
69
+ if (!prices || !prices[countryId] || !prices[countryId][service] || !prices[countryId][service][operator]) {
70
  await ctx.deleteMessage(loadingMsgId);
71
  await ctx.reply(
72
  getServiceUnavailableMessage(service, operator, countryId),
 
75
  return;
76
  }
77
 
78
+ const cost = prices[countryId][service][operator].cost;
79
 
80
  // Apply profit to the cost
81
  costWithProfit = calculatePriceWithProfit(ctx, cost, 'RUB');
 
92
  }
93
 
94
  // ๐Ÿ›’ Purchase number
95
+ const purchaseResult = await virtualNumberService.purchaseNumber(service, countryId, operator);
96
  await ctx.deleteMessage(loadingMsgId);
97
 
98
  if (purchaseResult && purchaseResult.phone) {
src/bots/utils/country.ts CHANGED
@@ -1,6 +1,7 @@
1
  interface CountryInfo {
2
  label: string;
3
  flag: string;
 
4
  }
5
 
6
  interface CountryData {
@@ -8,164 +9,164 @@ interface CountryData {
8
  }
9
 
10
  export const countryData: CountryData = {
11
- afghanistan: { label: "Afghanistan", flag: "๐Ÿ‡ฆ๐Ÿ‡ซ" },
12
- albania: { label: "Albania", flag: "๐Ÿ‡ฆ๐Ÿ‡ฑ" },
13
- algeria: { label: "Algeria", flag: "๐Ÿ‡ฉ๐Ÿ‡ฟ" },
14
- angola: { label: "Angola", flag: "๐Ÿ‡ฆ๐Ÿ‡ด" },
15
- antiguaandbarbuda: { label: "Antigua and Barbuda", flag: "๐Ÿ‡ฆ๐Ÿ‡ฌ" },
16
- argentina: { label: "Argentina", flag: "๐Ÿ‡ฆ๐Ÿ‡ท" },
17
- armenia: { label: "Armenia", flag: "๐Ÿ‡ฆ๐Ÿ‡ฒ" },
18
- aruba: { label: "Aruba", flag: "๐Ÿ‡ฆ๐Ÿ‡ผ" },
19
- australia: { label: "Australia", flag: "๐Ÿ‡ฆ๐Ÿ‡บ" },
20
- austria: { label: "Austria", flag: "๐Ÿ‡ฆ๐Ÿ‡น" },
21
- azerbaijan: { label: "Azerbaijan", flag: "๐Ÿ‡ฆ๐Ÿ‡ฟ" },
22
- bahamas: { label: "Bahamas", flag: "๐Ÿ‡ง๐Ÿ‡ธ" },
23
- bahrain: { label: "Bahrain", flag: "๐Ÿ‡ง๐Ÿ‡ญ" },
24
- bangladesh: { label: "Bangladesh", flag: "๐Ÿ‡ง๐Ÿ‡ฉ" },
25
- barbados: { label: "Barbados", flag: "๐Ÿ‡ง๐Ÿ‡ง" },
26
- belarus: { label: "Belarus", flag: "๐Ÿ‡ง๐Ÿ‡พ" },
27
- belgium: { label: "Belgium", flag: "๐Ÿ‡ง๐Ÿ‡ช" },
28
- belize: { label: "Belize", flag: "๐Ÿ‡ง๐Ÿ‡ฟ" },
29
- benin: { label: "Benin", flag: "๐Ÿ‡ง๐Ÿ‡ฏ" },
30
- bhutane: { label: "Bhutan", flag: "๐Ÿ‡ง๐Ÿ‡น" },
31
- bih: { label: "Bosnia and Herzegovina", flag: "๐Ÿ‡ง๐Ÿ‡ฆ" },
32
- bolivia: { label: "Bolivia", flag: "๐Ÿ‡ง๐Ÿ‡ด" },
33
- botswana: { label: "Botswana", flag: "๐Ÿ‡ง๐Ÿ‡ผ" },
34
- brazil: { label: "Brazil", flag: "๐Ÿ‡ง๐Ÿ‡ท" },
35
- bulgaria: { label: "Bulgaria", flag: "๐Ÿ‡ง๐Ÿ‡ฌ" },
36
- burkinafaso: { label: "Burkina Faso", flag: "๐Ÿ‡ง๐Ÿ‡ซ" },
37
- burundi: { label: "Burundi", flag: "๐Ÿ‡ง๐Ÿ‡ฎ" },
38
- cambodia: { label: "Cambodia", flag: "๐Ÿ‡ฐ๐Ÿ‡ญ" },
39
- cameroon: { label: "Cameroon", flag: "๐Ÿ‡จ๐Ÿ‡ฒ" },
40
- canada: { label: "Canada", flag: "๐Ÿ‡จ๐Ÿ‡ฆ" },
41
- capeverde: { label: "Cape Verde", flag: "๐Ÿ‡จ๐Ÿ‡ป" },
42
- chad: { label: "Chad", flag: "๐Ÿ‡น๐Ÿ‡ฉ" },
43
- chile: { label: "Chile", flag: "๐Ÿ‡จ๐Ÿ‡ฑ" },
44
- colombia: { label: "Colombia", flag: "๐Ÿ‡จ๐Ÿ‡ด" },
45
- comoros: { label: "Comoros", flag: "๐Ÿ‡ฐ๐Ÿ‡ฒ" },
46
- congo: { label: "Congo", flag: "๐Ÿ‡จ๐Ÿ‡ฌ" },
47
- costarica: { label: "Costa Rica", flag: "๐Ÿ‡จ๐Ÿ‡ท" },
48
- croatia: { label: "Croatia", flag: "๐Ÿ‡ญ๐Ÿ‡ท" },
49
- cyprus: { label: "Cyprus", flag: "๐Ÿ‡จ๐Ÿ‡พ" },
50
- czech: { label: "Czech Republic", flag: "๐Ÿ‡จ๐Ÿ‡ฟ" },
51
- denmark: { label: "Denmark", flag: "๐Ÿ‡ฉ๐Ÿ‡ฐ" },
52
- djibouti: { label: "Djibouti", flag: "๐Ÿ‡ฉ๐Ÿ‡ฏ" },
53
- dominicana: { label: "Dominican Republic", flag: "๐Ÿ‡ฉ๐Ÿ‡ด" },
54
- easttimor: { label: "East Timor", flag: "๐Ÿ‡น๐Ÿ‡ฑ" },
55
- ecuador: { label: "Ecuador", flag: "๐Ÿ‡ช๐Ÿ‡จ" },
56
- egypt: { label: "Egypt", flag: "๐Ÿ‡ช๐Ÿ‡ฌ" },
57
- england: { label: "England", flag: "๐Ÿด" },
58
- equatorialguinea: { label: "Equatorial Guinea", flag: "๐Ÿ‡ฌ๐Ÿ‡ถ" },
59
- estonia: { label: "Estonia", flag: "๐Ÿ‡ช๐Ÿ‡ช" },
60
- ethiopia: { label: "Ethiopia", flag: "๐Ÿ‡ช๐Ÿ‡น" },
61
- finland: { label: "Finland", flag: "๐Ÿ‡ซ๐Ÿ‡ฎ" },
62
- france: { label: "France", flag: "๐Ÿ‡ซ๐Ÿ‡ท" },
63
- frenchguiana: { label: "French Guiana", flag: "๐Ÿ‡ฌ๐Ÿ‡ซ" },
64
- gabon: { label: "Gabon", flag: "๐Ÿ‡ฌ๐Ÿ‡ฆ" },
65
- gambia: { label: "Gambia", flag: "๐Ÿ‡ฌ๐Ÿ‡ฒ" },
66
- georgia: { label: "Georgia", flag: "๐Ÿ‡ฌ๐Ÿ‡ช" },
67
- germany: { label: "Germany", flag: "๐Ÿ‡ฉ๐Ÿ‡ช" },
68
- ghana: { label: "Ghana", flag: "๐Ÿ‡ฌ๐Ÿ‡ญ" },
69
- gibraltar: { label: "Gibraltar", flag: "๐Ÿ‡ฌ๐Ÿ‡ฎ" },
70
- greece: { label: "Greece", flag: "๐Ÿ‡ฌ๐Ÿ‡ท" },
71
- guadeloupe: { label: "Guadeloupe", flag: "๐Ÿ‡ฌ๐Ÿ‡ต" },
72
- guatemala: { label: "Guatemala", flag: "๐Ÿ‡ฌ๐Ÿ‡น" },
73
- guinea: { label: "Guinea", flag: "๐Ÿ‡ฌ๐Ÿ‡ณ" },
74
- guineabissau: { label: "Guinea-Bissau", flag: "๐Ÿ‡ฌ๐Ÿ‡ผ" },
75
- guyana: { label: "Guyana", flag: "๐Ÿ‡ฌ๐Ÿ‡พ" },
76
- haiti: { label: "Haiti", flag: "๐Ÿ‡ญ๐Ÿ‡น" },
77
- honduras: { label: "Honduras", flag: "๐Ÿ‡ญ๐Ÿ‡ณ" },
78
- hongkong: { label: "Hong Kong", flag: "๐Ÿ‡ญ๐Ÿ‡ฐ" },
79
- hungary: { label: "Hungary", flag: "๐Ÿ‡ญ๐Ÿ‡บ" },
80
- india: { label: "India", flag: "๐Ÿ‡ฎ๐Ÿ‡ณ" },
81
- indonesia: { label: "Indonesia", flag: "๐Ÿ‡ฎ๐Ÿ‡ฉ" },
82
- ireland: { label: "Ireland", flag: "๐Ÿ‡ฎ๐Ÿ‡ช" },
83
- israel: { label: "Israel", flag: "๐Ÿ‡ฎ๐Ÿ‡ฑ" },
84
- italy: { label: "Italy", flag: "๐Ÿ‡ฎ๐Ÿ‡น" },
85
- ivorycoast: { label: "Ivory Coast", flag: "๐Ÿ‡จ๐Ÿ‡ฎ" },
86
- jamaica: { label: "Jamaica", flag: "๐Ÿ‡ฏ๐Ÿ‡ฒ" },
87
- jordan: { label: "Jordan", flag: "๐Ÿ‡ฏ๐Ÿ‡ด" },
88
- kazakhstan: { label: "Kazakhstan", flag: "๐Ÿ‡ฐ๐Ÿ‡ฟ" },
89
- kenya: { label: "Kenya", flag: "๐Ÿ‡ฐ๐Ÿ‡ช" },
90
- kuwait: { label: "Kuwait", flag: "๐Ÿ‡ฐ๐Ÿ‡ผ" },
91
- kyrgyzstan: { label: "Kyrgyzstan", flag: "๐Ÿ‡ฐ๐Ÿ‡ฌ" },
92
- laos: { label: "Laos", flag: "๐Ÿ‡ฑ๐Ÿ‡ฆ" },
93
- latvia: { label: "Latvia", flag: "๐Ÿ‡ฑ๐Ÿ‡ป" },
94
- lesotho: { label: "Lesotho", flag: "๐Ÿ‡ฑ๐Ÿ‡ธ" },
95
- liberia: { label: "Liberia", flag: "๐Ÿ‡ฑ๐Ÿ‡ท" },
96
- lithuania: { label: "Lithuania", flag: "๐Ÿ‡ฑ๐Ÿ‡น" },
97
- luxembourg: { label: "Luxembourg", flag: "๐Ÿ‡ฑ๐Ÿ‡บ" },
98
- macau: { label: "Macau", flag: "๐Ÿ‡ฒ๐Ÿ‡ด" },
99
- madagascar: { label: "Madagascar", flag: "๐Ÿ‡ฒ๐Ÿ‡ฌ" },
100
- malawi: { label: "Malawi", flag: "๐Ÿ‡ฒ๐Ÿ‡ผ" },
101
- malaysia: { label: "Malaysia", flag: "๐Ÿ‡ฒ๐Ÿ‡พ" },
102
- maldives: { label: "Maldives", flag: "๐Ÿ‡ฒ๐Ÿ‡ป" },
103
- mauritania: { label: "Mauritania", flag: "๐Ÿ‡ฒ๐Ÿ‡ท" },
104
- mauritius: { label: "Mauritius", flag: "๐Ÿ‡ฒ๐Ÿ‡บ" },
105
- mexico: { label: "Mexico", flag: "๐Ÿ‡ฒ๐Ÿ‡ฝ" },
106
- moldova: { label: "Moldova", flag: "๐Ÿ‡ฒ๐Ÿ‡ฉ" },
107
- mongolia: { label: "Mongolia", flag: "๐Ÿ‡ฒ๐Ÿ‡ณ" },
108
- montenegro: { label: "Montenegro", flag: "๐Ÿ‡ฒ๐Ÿ‡ช" },
109
- morocco: { label: "Morocco", flag: "๐Ÿ‡ฒ๐Ÿ‡ฆ" },
110
- mozambique: { label: "Mozambique", flag: "๐Ÿ‡ฒ๐Ÿ‡ฟ" },
111
- namibia: { label: "Namibia", flag: "๐Ÿ‡ณ๐Ÿ‡ฆ" },
112
- nepal: { label: "Nepal", flag: "๐Ÿ‡ณ๐Ÿ‡ต" },
113
- netherlands: { label: "Netherlands", flag: "๐Ÿ‡ณ๐Ÿ‡ฑ" },
114
- newcaledonia: { label: "New Caledonia", flag: "๐Ÿ‡ณ๐Ÿ‡จ" },
115
- newzealand: { label: "New Zealand", flag: "๐Ÿ‡ณ๐Ÿ‡ฟ" },
116
- nicaragua: { label: "Nicaragua", flag: "๐Ÿ‡ณ๐Ÿ‡ฎ" },
117
- nigeria: { label: "Nigeria", flag: "๐Ÿ‡ณ๐Ÿ‡ฌ" },
118
- northmacedonia: { label: "North Macedonia", flag: "๐Ÿ‡ฒ๐Ÿ‡ฐ" },
119
- norway: { label: "Norway", flag: "๐Ÿ‡ณ๐Ÿ‡ด" },
120
- oman: { label: "Oman", flag: "๐Ÿ‡ด๐Ÿ‡ฒ" },
121
- pakistan: { label: "Pakistan", flag: "๐Ÿ‡ต๐Ÿ‡ฐ" },
122
- panama: { label: "Panama", flag: "๐Ÿ‡ต๐Ÿ‡ฆ" },
123
- papuanewguinea: { label: "Papua New Guinea", flag: "๐Ÿ‡ต๐Ÿ‡ฌ" },
124
- paraguay: { label: "Paraguay", flag: "๐Ÿ‡ต๐Ÿ‡พ" },
125
- peru: { label: "Peru", flag: "๐Ÿ‡ต๐Ÿ‡ช" },
126
- philippines: { label: "Philippines", flag: "๐Ÿ‡ต๐Ÿ‡ญ" },
127
- poland: { label: "Poland", flag: "๐Ÿ‡ต๐Ÿ‡ฑ" },
128
- portugal: { label: "Portugal", flag: "๐Ÿ‡ต๐Ÿ‡น" },
129
- puertorico: { label: "Puerto Rico", flag: "๐Ÿ‡ต๐Ÿ‡ท" },
130
- reunion: { label: "Rรฉunion", flag: "๐Ÿ‡ท๐Ÿ‡ช" },
131
- romania: { label: "Romania", flag: "๐Ÿ‡ท๐Ÿ‡ด" },
132
- russia: { label: "Russia", flag: "๐Ÿ‡ท๐Ÿ‡บ" },
133
- rwanda: { label: "Rwanda", flag: "๐Ÿ‡ท๐Ÿ‡ผ" },
134
- saintkittsandnevis: { label: "Saint Kitts and Nevis", flag: "๐Ÿ‡ฐ๐Ÿ‡ณ" },
135
- saintlucia: { label: "Saint Lucia", flag: "๐Ÿ‡ฑ๐Ÿ‡จ" },
136
- saintvincentandgrenadines: { label: "Saint Vincent and the Grenadines", flag: "๐Ÿ‡ป๐Ÿ‡จ" },
137
- salvador: { label: "El Salvador", flag: "๐Ÿ‡ธ๐Ÿ‡ป" },
138
- samoa: { label: "Samoa", flag: "๐Ÿ‡ผ๐Ÿ‡ธ" },
139
- saudiarabia: { label: "Saudi Arabia", flag: "๐Ÿ‡ธ๐Ÿ‡ฆ" },
140
- senegal: { label: "Senegal", flag: "๐Ÿ‡ธ๐Ÿ‡ณ" },
141
- serbia: { label: "Serbia", flag: "๐Ÿ‡ท๐Ÿ‡ธ" },
142
- seychelles: { label: "Seychelles", flag: "๐Ÿ‡ธ๐Ÿ‡จ" },
143
- sierraleone: { label: "Sierra Leone", flag: "๐Ÿ‡ธ๐Ÿ‡ฑ" },
144
- singapore: { label: "Singapore", flag: "๐Ÿ‡ธ๐Ÿ‡ฌ" },
145
- slovakia: { label: "Slovakia", flag: "๐Ÿ‡ธ๐Ÿ‡ฐ" },
146
- slovenia: { label: "Slovenia", flag: "๐Ÿ‡ธ๐Ÿ‡ฎ" },
147
- solomonislands: { label: "Solomon Islands", flag: "๐Ÿ‡ธ๐Ÿ‡ง" },
148
- southafrica: { label: "South Africa", flag: "๐Ÿ‡ฟ๐Ÿ‡ฆ" },
149
- spain: { label: "Spain", flag: "๐Ÿ‡ช๐Ÿ‡ธ" },
150
- srilanka: { label: "Sri Lanka", flag: "๐Ÿ‡ฑ๐Ÿ‡ฐ" },
151
- suriname: { label: "Suriname", flag: "๐Ÿ‡ธ๐Ÿ‡ท" },
152
- swaziland: { label: "Eswatini", flag: "๐Ÿ‡ธ๐Ÿ‡ฟ" },
153
- sweden: { label: "Sweden", flag: "๐Ÿ‡ธ๐Ÿ‡ช" },
154
- switzerland: { label: "Switzerland", flag: "๐Ÿ‡จ๐Ÿ‡ญ" },
155
- taiwan: { label: "Taiwan", flag: "๐Ÿ‡น๐Ÿ‡ผ" },
156
- tajikistan: { label: "Tajikistan", flag: "๐Ÿ‡น๐Ÿ‡ฏ" },
157
- tanzania: { label: "Tanzania", flag: "๐Ÿ‡น๐Ÿ‡ฟ" },
158
- thailand: { label: "Thailand", flag: "๐Ÿ‡น๐Ÿ‡ญ" },
159
- tit: { label: "East Timor", flag: "๐Ÿ‡น๐Ÿ‡ฑ" },
160
- togo: { label: "Togo", flag: "๐Ÿ‡น๐Ÿ‡ฌ" },
161
- tunisia: { label: "Tunisia", flag: "๐Ÿ‡น๐Ÿ‡ณ" },
162
- turkmenistan: { label: "Turkmenistan", flag: "๐Ÿ‡น๐Ÿ‡ฒ" },
163
- uganda: { label: "Uganda", flag: "๐Ÿ‡บ๐Ÿ‡ฌ" },
164
- ukraine: { label: "Ukraine", flag: "๐Ÿ‡บ๐Ÿ‡ฆ" },
165
- uruguay: { label: "Uruguay", flag: "๐Ÿ‡บ๐Ÿ‡พ" },
166
- usa: { label: "United States", flag: "๐Ÿ‡บ๐Ÿ‡ธ" },
167
- uzbekistan: { label: "Uzbekistan", flag: "๐Ÿ‡บ๐Ÿ‡ฟ" },
168
- venezuela: { label: "Venezuela", flag: "๐Ÿ‡ป๐Ÿ‡ช" },
169
- vietnam: { label: "Vietnam", flag: "๐Ÿ‡ป๐Ÿ‡ณ" },
170
- zambia: { label: "Zambia", flag: "๐Ÿ‡ฟ๐Ÿ‡ฒ" }
171
  };
 
1
  interface CountryInfo {
2
  label: string;
3
  flag: string;
4
+ code: string;
5
  }
6
 
7
  interface CountryData {
 
9
  }
10
 
11
  export const countryData: CountryData = {
12
+ afghanistan: { label: "Afghanistan", flag: "๐Ÿ‡ฆ๐Ÿ‡ซ", code: "+93" },
13
+ albania: { label: "Albania", flag: "๐Ÿ‡ฆ๐Ÿ‡ฑ", code: "+355" },
14
+ algeria: { label: "Algeria", flag: "๐Ÿ‡ฉ๐Ÿ‡ฟ", code: "+213" },
15
+ angola: { label: "Angola", flag: "๐Ÿ‡ฆ๐Ÿ‡ด", code: "+244" },
16
+ antiguaandbarbuda: { label: "Antigua and Barbuda", flag: "๐Ÿ‡ฆ๐Ÿ‡ฌ", code: "+1" },
17
+ argentina: { label: "Argentina", flag: "๐Ÿ‡ฆ๐Ÿ‡ท", code: "+54" },
18
+ armenia: { label: "Armenia", flag: "๐Ÿ‡ฆ๐Ÿ‡ฒ", code: "+374" },
19
+ aruba: { label: "Aruba", flag: "๐Ÿ‡ฆ๐Ÿ‡ผ", code: "+297" },
20
+ australia: { label: "Australia", flag: "๐Ÿ‡ฆ๐Ÿ‡บ", code: "+61" },
21
+ austria: { label: "Austria", flag: "๐Ÿ‡ฆ๐Ÿ‡น", code: "+43" },
22
+ azerbaijan: { label: "Azerbaijan", flag: "๐Ÿ‡ฆ๐Ÿ‡ฟ", code: "+994" },
23
+ bahamas: { label: "Bahamas", flag: "๐Ÿ‡ง๐Ÿ‡ธ", code: "+1" },
24
+ bahrain: { label: "Bahrain", flag: "๐Ÿ‡ง๐Ÿ‡ญ", code: "+973" },
25
+ bangladesh: { label: "Bangladesh", flag: "๐Ÿ‡ง๐Ÿ‡ฉ", code: "+880" },
26
+ barbados: { label: "Barbados", flag: "๐Ÿ‡ง๐Ÿ‡ง", code: "+1" },
27
+ belarus: { label: "Belarus", flag: "๐Ÿ‡ง๐Ÿ‡พ", code: "+375" },
28
+ belgium: { label: "Belgium", flag: "๐Ÿ‡ง๐Ÿ‡ช", code: "+32" },
29
+ belize: { label: "Belize", flag: "๐Ÿ‡ง๐Ÿ‡ฟ", code: "+501" },
30
+ benin: { label: "Benin", flag: "๐Ÿ‡ง๐Ÿ‡ฏ", code: "+229" },
31
+ bhutane: { label: "Bhutan", flag: "๐Ÿ‡ง๐Ÿ‡น", code: "+975" },
32
+ bih: { label: "Bosnia and Herzegovina", flag: "๐Ÿ‡ง๐Ÿ‡ฆ", code: "+387" },
33
+ bolivia: { label: "Bolivia", flag: "๐Ÿ‡ง๐Ÿ‡ด", code: "+591" },
34
+ botswana: { label: "Botswana", flag: "๐Ÿ‡ง๐Ÿ‡ผ", code: "+267" },
35
+ brazil: { label: "Brazil", flag: "๐Ÿ‡ง๐Ÿ‡ท", code: "+55" },
36
+ bulgaria: { label: "Bulgaria", flag: "๐Ÿ‡ง๐Ÿ‡ฌ", code: "+359" },
37
+ burkinafaso: { label: "Burkina Faso", flag: "๐Ÿ‡ง๐Ÿ‡ซ", code: "+226" },
38
+ burundi: { label: "Burundi", flag: "๐Ÿ‡ง๐Ÿ‡ฎ", code: "+257" },
39
+ cambodia: { label: "Cambodia", flag: "๐Ÿ‡ฐ๐Ÿ‡ญ", code: "+855" },
40
+ cameroon: { label: "Cameroon", flag: "๐Ÿ‡จ๐Ÿ‡ฒ", code: "+237" },
41
+ canada: { label: "Canada", flag: "๐Ÿ‡จ๐Ÿ‡ฆ", code: "+1" },
42
+ capeverde: { label: "Cape Verde", flag: "๐Ÿ‡จ๐Ÿ‡ป", code: "+238" },
43
+ chad: { label: "Chad", flag: "๐Ÿ‡น๐Ÿ‡ฉ", code: "+235" },
44
+ chile: { label: "Chile", flag: "๐Ÿ‡จ๐Ÿ‡ฑ", code: "+56" },
45
+ colombia: { label: "Colombia", flag: "๐Ÿ‡จ๐Ÿ‡ด", code: "+57" },
46
+ comoros: { label: "Comoros", flag: "๐Ÿ‡ฐ๐Ÿ‡ฒ", code: "+269" },
47
+ congo: { label: "Congo", flag: "๐Ÿ‡จ๐Ÿ‡ฌ", code: "+242" },
48
+ costarica: { label: "Costa Rica", flag: "๐Ÿ‡จ๐Ÿ‡ท", code: "+506" },
49
+ croatia: { label: "Croatia", flag: "๐Ÿ‡ญ๐Ÿ‡ท", code: "+385" },
50
+ cyprus: { label: "Cyprus", flag: "๐Ÿ‡จ๐Ÿ‡พ", code: "+357" },
51
+ czech: { label: "Czech Republic", flag: "๐Ÿ‡จ๐Ÿ‡ฟ", code: "+420" },
52
+ denmark: { label: "Denmark", flag: "๐Ÿ‡ฉ๐Ÿ‡ฐ", code: "+45" },
53
+ djibouti: { label: "Djibouti", flag: "๐Ÿ‡ฉ๐Ÿ‡ฏ", code: "+253" },
54
+ dominicana: { label: "Dominican Republic", flag: "๐Ÿ‡ฉ๐Ÿ‡ด", code: "+1" },
55
+ easttimor: { label: "East Timor", flag: "๐Ÿ‡น๐Ÿ‡ฑ", code: "+670" },
56
+ ecuador: { label: "Ecuador", flag: "๐Ÿ‡ช๐Ÿ‡จ", code: "+593" },
57
+ egypt: { label: "Egypt", flag: "๐Ÿ‡ช๐Ÿ‡ฌ", code: "+20" },
58
+ england: { label: "England", flag: "๐Ÿด", code: "+44" },
59
+ equatorialguinea: { label: "Equatorial Guinea", flag: "๐Ÿ‡ฌ๐Ÿ‡ถ", code: "+240" },
60
+ estonia: { label: "Estonia", flag: "๐Ÿ‡ช๐Ÿ‡ช", code: "+372" },
61
+ ethiopia: { label: "Ethiopia", flag: "๐Ÿ‡ช๐Ÿ‡น", code: "+251" },
62
+ finland: { label: "Finland", flag: "๐Ÿ‡ซ๐Ÿ‡ฎ", code: "+358" },
63
+ france: { label: "France", flag: "๐Ÿ‡ซ๐Ÿ‡ท", code: "+33" },
64
+ frenchguiana: { label: "French Guiana", flag: "๐Ÿ‡ฌ๐Ÿ‡ซ", code: "+594" },
65
+ gabon: { label: "Gabon", flag: "๐Ÿ‡ฌ๐Ÿ‡ฆ", code: "+241" },
66
+ gambia: { label: "Gambia", flag: "๐Ÿ‡ฌ๐Ÿ‡ฒ", code: "+220" },
67
+ georgia: { label: "Georgia", flag: "๐Ÿ‡ฌ๐Ÿ‡ช", code: "+995" },
68
+ germany: { label: "Germany", flag: "๐Ÿ‡ฉ๐Ÿ‡ช", code: "+49" },
69
+ ghana: { label: "Ghana", flag: "๐Ÿ‡ฌ๐Ÿ‡ญ", code: "+233" },
70
+ gibraltar: { label: "Gibraltar", flag: "๐Ÿ‡ฌ๐Ÿ‡ฎ", code: "+350" },
71
+ greece: { label: "Greece", flag: "๐Ÿ‡ฌ๐Ÿ‡ท", code: "+30" },
72
+ guadeloupe: { label: "Guadeloupe", flag: "๐Ÿ‡ฌ๐Ÿ‡ต", code: "+590" },
73
+ guatemala: { label: "Guatemala", flag: "๐Ÿ‡ฌ๐Ÿ‡น", code: "+502" },
74
+ guinea: { label: "Guinea", flag: "๐Ÿ‡ฌ๐Ÿ‡ณ", code: "+224" },
75
+ guineabissau: { label: "Guinea-Bissau", flag: "๐Ÿ‡ฌ๐Ÿ‡ผ", code: "+245" },
76
+ guyana: { label: "Guyana", flag: "๐Ÿ‡ฌ๐Ÿ‡พ", code: "+592" },
77
+ haiti: { label: "Haiti", flag: "๐Ÿ‡ญ๐Ÿ‡น", code: "+509" },
78
+ honduras: { label: "Honduras", flag: "๐Ÿ‡ญ๐Ÿ‡ณ", code: "+504" },
79
+ hongkong: { label: "Hong Kong", flag: "๐Ÿ‡ญ๐Ÿ‡ฐ", code: "+852" },
80
+ hungary: { label: "Hungary", flag: "๐Ÿ‡ญ๐Ÿ‡บ", code: "+36" },
81
+ india: { label: "India", flag: "๐Ÿ‡ฎ๐Ÿ‡ณ", code: "+91" },
82
+ indonesia: { label: "Indonesia", flag: "๐Ÿ‡ฎ๐Ÿ‡ฉ", code: "+62" },
83
+ ireland: { label: "Ireland", flag: "๐Ÿ‡ฎ๐Ÿ‡ช", code: "+353" },
84
+ israel: { label: "Israel", flag: "๐Ÿ‡ฎ๐Ÿ‡ฑ", code: "+972" },
85
+ italy: { label: "Italy", flag: "๐Ÿ‡ฎ๐Ÿ‡น", code: "+39" },
86
+ ivorycoast: { label: "Ivory Coast", flag: "๐Ÿ‡จ๐Ÿ‡ฎ", code: "+225" },
87
+ jamaica: { label: "Jamaica", flag: "๐Ÿ‡ฏ๐Ÿ‡ฒ", code: "+1" },
88
+ jordan: { label: "Jordan", flag: "๐Ÿ‡ฏ๐Ÿ‡ด", code: "+962" },
89
+ kazakhstan: { label: "Kazakhstan", flag: "๐Ÿ‡ฐ๐Ÿ‡ฟ", code: "+7" },
90
+ kenya: { label: "Kenya", flag: "๐Ÿ‡ฐ๐Ÿ‡ช", code: "+254" },
91
+ kuwait: { label: "Kuwait", flag: "๐Ÿ‡ฐ๐Ÿ‡ผ", code: "+965" },
92
+ kyrgyzstan: { label: "Kyrgyzstan", flag: "๐Ÿ‡ฐ๐Ÿ‡ฌ", code: "+996" },
93
+ laos: { label: "Laos", flag: "๐Ÿ‡ฑ๐Ÿ‡ฆ", code: "+856" },
94
+ latvia: { label: "Latvia", flag: "๐Ÿ‡ฑ๐Ÿ‡ป", code: "+371" },
95
+ lesotho: { label: "Lesotho", flag: "๐Ÿ‡ฑ๐Ÿ‡ธ", code: "+266" },
96
+ liberia: { label: "Liberia", flag: "๐Ÿ‡ฑ๐Ÿ‡ท", code: "+231" },
97
+ lithuania: { label: "Lithuania", flag: "๐Ÿ‡ฑ๐Ÿ‡น", code: "+370" },
98
+ luxembourg: { label: "Luxembourg", flag: "๐Ÿ‡ฑ๐Ÿ‡บ", code: "+352" },
99
+ macau: { label: "Macau", flag: "๐Ÿ‡ฒ๐Ÿ‡ด", code: "+853" },
100
+ madagascar: { label: "Madagascar", flag: "๐Ÿ‡ฒ๐Ÿ‡ฌ", code: "+261" },
101
+ malawi: { label: "Malawi", flag: "๐Ÿ‡ฒ๐Ÿ‡ผ", code: "+265" },
102
+ malaysia: { label: "Malaysia", flag: "๐Ÿ‡ฒ๐Ÿ‡พ", code: "+60" },
103
+ maldives: { label: "Maldives", flag: "๐Ÿ‡ฒ๐Ÿ‡ป", code: "+960" },
104
+ mauritania: { label: "Mauritania", flag: "๐Ÿ‡ฒ๐Ÿ‡ท", code: "+222" },
105
+ mauritius: { label: "Mauritius", flag: "๐Ÿ‡ฒ๐Ÿ‡บ", code: "+230" },
106
+ mexico: { label: "Mexico", flag: "๐Ÿ‡ฒ๐Ÿ‡ฝ", code: "+52" },
107
+ moldova: { label: "Moldova", flag: "๐Ÿ‡ฒ๐Ÿ‡ฉ", code: "+373" },
108
+ mongolia: { label: "Mongolia", flag: "๐Ÿ‡ฒ๐Ÿ‡ณ", code: "+976" },
109
+ montenegro: { label: "Montenegro", flag: "๐Ÿ‡ฒ๐Ÿ‡ช", code: "+382" },
110
+ morocco: { label: "Morocco", flag: "๐Ÿ‡ฒ๐Ÿ‡ฆ", code: "+212" },
111
+ mozambique: { label: "Mozambique", flag: "๐Ÿ‡ฒ๐Ÿ‡ฟ", code: "+258" },
112
+ namibia: { label: "Namibia", flag: "๐Ÿ‡ณ๐Ÿ‡ฆ", code: "+264" },
113
+ nepal: { label: "Nepal", flag: "๐Ÿ‡ณ๐Ÿ‡ต", code: "+977" },
114
+ netherlands: { label: "Netherlands", flag: "๐Ÿ‡ณ๐Ÿ‡ฑ", code: "+31" },
115
+ newcaledonia: { label: "New Caledonia", flag: "๐Ÿ‡ณ๐Ÿ‡จ", code: "+687" },
116
+ newzealand: { label: "New Zealand", flag: "๐Ÿ‡ณ๐Ÿ‡ฟ", code: "+64" },
117
+ nicaragua: { label: "Nicaragua", flag: "๐Ÿ‡ณ๐Ÿ‡ฎ", code: "+505" },
118
+ nigeria: { label: "Nigeria", flag: "๐Ÿ‡ณ๐Ÿ‡ฌ", code: "+234" },
119
+ northmacedonia: { label: "North Macedonia", flag: "๐Ÿ‡ฒ๐Ÿ‡ฐ", code: "+389" },
120
+ norway: { label: "Norway", flag: "๐Ÿ‡ณ๐Ÿ‡ด", code: "+47" },
121
+ oman: { label: "Oman", flag: "๐Ÿ‡ด๐Ÿ‡ฒ", code: "+968" },
122
+ pakistan: { label: "Pakistan", flag: "๐Ÿ‡ต๐Ÿ‡ฐ", code: "+92" },
123
+ panama: { label: "Panama", flag: "๐Ÿ‡ต๐Ÿ‡ฆ", code: "+507" },
124
+ papuanewguinea: { label: "Papua New Guinea", flag: "๐Ÿ‡ต๐Ÿ‡ฌ", code: "+675" },
125
+ paraguay: { label: "Paraguay", flag: "๐Ÿ‡ต๐Ÿ‡พ", code: "+595" },
126
+ peru: { label: "Peru", flag: "๐Ÿ‡ต๐Ÿ‡ช", code: "+51" },
127
+ philippines: { label: "Philippines", flag: "๐Ÿ‡ต๐Ÿ‡ญ", code: "+63" },
128
+ poland: { label: "Poland", flag: "๐Ÿ‡ต๐Ÿ‡ฑ", code: "+48" },
129
+ portugal: { label: "Portugal", flag: "๐Ÿ‡ต๐Ÿ‡น", code: "+351" },
130
+ puertorico: { label: "Puerto Rico", flag: "๐Ÿ‡ต๐Ÿ‡ท", code: "+1" },
131
+ reunion: { label: "Rรฉunion", flag: "๐Ÿ‡ท๐Ÿ‡ช", code: "+262" },
132
+ romania: { label: "Romania", flag: "๐Ÿ‡ท๐Ÿ‡ด", code: "+40" },
133
+ russia: { label: "Russia", flag: "๐Ÿ‡ท๐Ÿ‡บ", code: "+7" },
134
+ rwanda: { label: "Rwanda", flag: "๐Ÿ‡ท๐Ÿ‡ผ", code: "+250" },
135
+ saintkittsandnevis: { label: "Saint Kitts and Nevis", flag: "๐Ÿ‡ฐ๐Ÿ‡ณ", code: "+1" },
136
+ saintlucia: { label: "Saint Lucia", flag: "๐Ÿ‡ฑ๐Ÿ‡จ", code: "+1" },
137
+ saintvincentandgrenadines: { label: "Saint Vincent and the Grenadines", flag: "๐Ÿ‡ป๐Ÿ‡จ", code: "+1" },
138
+ salvador: { label: "El Salvador", flag: "๐Ÿ‡ธ๐Ÿ‡ป", code: "+503" },
139
+ samoa: { label: "Samoa", flag: "๐Ÿ‡ผ๐Ÿ‡ธ", code: "+685" },
140
+ saudiarabia: { label: "Saudi Arabia", flag: "๐Ÿ‡ธ๐Ÿ‡ฆ", code: "+966" },
141
+ senegal: { label: "Senegal", flag: "๐Ÿ‡ธ๐Ÿ‡ณ", code: "+221" },
142
+ serbia: { label: "Serbia", flag: "๐Ÿ‡ท๐Ÿ‡ธ", code: "+381" },
143
+ seychelles: { label: "Seychelles", flag: "๐Ÿ‡ธ๐Ÿ‡จ", code: "+248" },
144
+ sierraleone: { label: "Sierra Leone", flag: "๐Ÿ‡ธ๐Ÿ‡ฑ", code: "+232" },
145
+ singapore: { label: "Singapore", flag: "๐Ÿ‡ธ๐Ÿ‡ฌ", code: "+65" },
146
+ slovakia: { label: "Slovakia", flag: "๐Ÿ‡ธ๐Ÿ‡ฐ", code: "+421" },
147
+ slovenia: { label: "Slovenia", flag: "๐Ÿ‡ธ๐Ÿ‡ฎ", code: "+386" },
148
+ solomonislands: { label: "Solomon Islands", flag: "๐Ÿ‡ธ๐Ÿ‡ง", code: "+677" },
149
+ southafrica: { label: "South Africa", flag: "๐Ÿ‡ฟ๐Ÿ‡ฆ", code: "+27" },
150
+ spain: { label: "Spain", flag: "๐Ÿ‡ช๐Ÿ‡ธ", code: "+34" },
151
+ srilanka: { label: "Sri Lanka", flag: "๐Ÿ‡ฑ๐Ÿ‡ฐ", code: "+94" },
152
+ suriname: { label: "Suriname", flag: "๐Ÿ‡ธ๐Ÿ‡ท", code: "+597" },
153
+ swaziland: { label: "Eswatini", flag: "๐Ÿ‡ธ๐Ÿ‡ฟ", code: "+268" },
154
+ sweden: { label: "Sweden", flag: "๐Ÿ‡ธ๐Ÿ‡ช", code: "+46" },
155
+ switzerland: { label: "Switzerland", flag: "๐Ÿ‡จ๐Ÿ‡ญ", code: "+41" },
156
+ taiwan: { label: "Taiwan", flag: "๐Ÿ‡น๐Ÿ‡ผ", code: "+886" },
157
+ tajikistan: { label: "Tajikistan", flag: "๐Ÿ‡น๐Ÿ‡ฏ", code: "+992" },
158
+ tanzania: { label: "Tanzania", flag: "๐Ÿ‡น๐Ÿ‡ฟ", code: "+255" },
159
+ thailand: { label: "Thailand", flag: "๐Ÿ‡น๐Ÿ‡ญ", code: "+66" },
160
+ tit: { label: "East Timor", flag: "๐Ÿ‡น๐Ÿ‡ฑ", code: "+670" },
161
+ togo: { label: "Togo", flag: "๐Ÿ‡น๐Ÿ‡ฌ", code: "+228" },
162
+ tunisia: { label: "Tunisia", flag: "๐Ÿ‡น๐Ÿ‡ณ", code: "+216" },
163
+ turkmenistan: { label: "Turkmenistan", flag: "๐Ÿ‡น๐Ÿ‡ฒ", code: "+993" },
164
+ uganda: { label: "Uganda", flag: "๐Ÿ‡บ๐Ÿ‡ฌ", code: "+256" },
165
+ ukraine: { label: "Ukraine", flag: "๐Ÿ‡บ๐Ÿ‡ฆ", code: "+380" },
166
+ uruguay: { label: "Uruguay", flag: "๐Ÿ‡บ๐Ÿ‡พ", code: "+598" },
167
+ usa: { label: "United States", flag: "๐Ÿ‡บ๐Ÿ‡ธ", code: "+1" },
168
+ uzbekistan: { label: "Uzbekistan", flag: "๐Ÿ‡บ๐Ÿ‡ฟ", code: "+998" },
169
+ venezuela: { label: "Venezuela", flag: "๐Ÿ‡ป๐Ÿ‡ช", code: "+58" },
170
+ vietnam: { label: "Vietnam", flag: "๐Ÿ‡ป๐Ÿ‡ณ", code: "+84" },
171
+ zambia: { label: "Zambia", flag: "๐Ÿ‡ฟ๐Ÿ‡ฒ", code: "+260" }
172
  };
src/bots/utils/keyboardUtils.ts CHANGED
@@ -124,7 +124,8 @@ export const getCountriesKeyboard = (service: string, page: number = 0) => {
124
  const countries = Object.entries(countryData).map(([id, data]) => ({
125
  id,
126
  name: data.label,
127
- flag: data.flag
 
128
  }));
129
 
130
  const totalPages = Math.ceil(countries.length / countriesPerPage);
@@ -138,7 +139,7 @@ export const getCountriesKeyboard = (service: string, page: number = 0) => {
138
  const country = pageCountries[i + j];
139
  row.push(
140
  Markup.button.callback(
141
- `${country.name} ${country.flag}`,
142
  `country_${service}_${country.id}`
143
  )
144
  );
 
124
  const countries = Object.entries(countryData).map(([id, data]) => ({
125
  id,
126
  name: data.label,
127
+ flag: data.flag,
128
+ code: data.code
129
  }));
130
 
131
  const totalPages = Math.ceil(countries.length / countriesPerPage);
 
139
  const country = pageCountries[i + j];
140
  row.push(
141
  Markup.button.callback(
142
+ `${country.name} ${country.flag} ${country.code}`,
143
  `country_${service}_${country.id}`
144
  )
145
  );