GH GambleHub

per currency kataloglari

per currency katalogi - bu koʻrsatiladigan narxlar, limitlar, bonuslar, minimal stavkalar, jekpotlar va promo matnlari oʻyinchi/tenant/mintaqa valyutasiga moslashtirilgan kontent va praysing katalogi variantidir. Maqsad - mantiq nusxasisiz va «uchish» konvertatsiyalari tufayli xatarlarsiz to’g’ri prays-point va qoidalarni berish.

Asosiy effektlar:
  • UX: stavkalarning tabiiy qadamlari va «chiroyli» narxlar (₺9. 99, R$5, €0. 20).
  • Daromad: kurslar tufayli marjani «iste’mol qilmasdan» aniq limitlar va bustlar.
  • Komplayens: mahalliy qoidalarga (litsenziyalar, soliqlar, age/geo) muvofiqlik.

1) Ma’lumotlar modeli: «nominal» va «taqdimot» bo’linadi

Base Price (nominal): hisob-kitoblar uchun yagona ichki valyuta’PLN ’/’ EUR ’/’ USD’.
Display Price (taqdimot): + FX + yaxlitlash + ustama/chegirmalar (spread/fees) nominalidan hisoblanadi.
Policy: yaxlitlash qoidalari, stavkalar qadami, min/maks limitlari, jekpotlar, bonus summalari va wager - per currency sozlanadi.

Mini-sxema (soddalashtirilgan):
yaml price_model:
base_currency: "EUR"
items:
game_spin_min:
base: 0. 10 policy: "stake_min"
game_spin_step:
base: 0. 10 policy: "stake_step"
jackpot_seed:
base: 10000 policy: "jackpot_amount"
policies:
stake_min:
per_currency:
EUR: {round: "ceil_to_step", step: 0. 10}
TRY: {round: "ceil_to_step", step: 1. 00}
BRL: {round: "ceil_to_step", step: 0. 50}
stake_step:
per_currency:
EUR: {step: 0. 10}
USD: {step: 0. 10}
CLP: {step: 50}
jackpot_amount:
per_currency:
EUR: {round: "nearest_100"}
MXN: {round: "nearest_1000"}

2) Kurslar manbai (FX) va «yangilik»

FX-servis - konvertatsiyalar uchun yagona haqiqat nuqtasi:
  • Kurslarni yetkazib beruvchi: asosiy va zaxira; yangilanish chastotasi (masalan, har daqiqada o’zgaruvchan, har 15 daqiqada barqaror).
  • Bounded staleness: SLA «kurslar Δ t dan katta emas» (masalan, p95 ≤ 5 min).
  • Spread va komissiyalar: per tenant/region/currency moslashtiriladi.
  • Freeze windows: o’yin/turnir/reklama oynalari uchun kurslarni «muzlatib qo’ying», shunda price «sakrab tushmaydi».
  • Audit: cheklarni takrorlash uchun FX s’valid _ from/valid _ to versiyasi.
FX berish namunasi:
json
{
"as_of":"2025-10-31T12:00:00Z",
"base":"EUR",
"rates": { "TRY":34. 10, "BRL":5. 42, "MXN":19. 1, "UAH":43. 6, "USDT":1. 00 },
"spread_bps": { "TRY":120, "BRL":60 },
"fees_pct": { "default":0. 15 }
}

3) Yaxlit va «chiroyli» prays-pointlar

FX va spredlardan keyin yaxlitlang:
  • Narxlar/paketlar:’99’,’9. 99`, `4. 90’(psixologik nuqtalar).
  • Stavkalar va qadamlar: valyuta qadamiga «ceil_to_step» (₺1, CLP $50).
  • Bonuslar: vaucher bosqichiga pastga yaxlitlash (R $1/₺ 5).
  • Operatsiya tartibi:’raw = base fx (1 + spread) (1 + fee)’→’rounded = round_policy (raw)’→’min/max clamp’.

Anti-misol: «bank doirasi» stavkalar uchun «xunuk» qadamlar qo’yishi mumkin - aniq siyosatdan foydalaning.

4) Limitlar, min/maks va jekpotlar

Min/Max per currency: mahalliy qonunlar va RGS cheklovlarini hisobga oladi.
Jekpotlar: agar provayder jekpotni o’z valyutasida (masalan, EUR) saqlasa, mahalliylashtirilgan ekvivalentni (informer) ko’rsating yoki per-valyuta pullarini saqlang.
Valyuta qadamlari: CLP/JPY tiyinsiz - barcha limitlar butun sondir.

Limitlar jadvali misoli:
sql
CREATE TABLE currency_limits (
tenant_id text,
currency  text,
feature  text,  -- spin_min, spin_max, deposit_min, payout_max, jackpot_min value   numeric,
step    numeric,
PRIMARY KEY (tenant_id, currency, feature)
);

5) Bonuslar va vaucherlar per currency

Bonus nominali: per currency konfiguratsiya qilinadi (peshonaga «qayta hisoblash» emas).
Wager: ko’paytiruvchi sifatida (x30) yoki valyuta sifatida saqlang; aralashishdan saqlaning.
Omadli/kesh-out: ham per currency.
Marketing matnlari: raqamlarni mahalliylashtirish va hardkodsiz shablonlarda valyuta.

yaml bonus:
welcome_pack:
EUR: {amount: 100, wager_x: 35, cap: 500}
BRL: {amount: 500, wager_x: 40, cap: 2500}
TRY: {amount: 2500, wager_x: 40, cap: 12500}

6) Provayderlar cheklovlari (RGS/PSP)

RGS: ba’zi o’yinlar’crypto ’/lokal valyutalar uchun mavjud emas; ba’zi provayderlar qat’iy belgilangan minimumlarni talab qiladi (masalan, 0 €). 20).
PSP: to’lov usullari valyutaga bog’liq (PIX, BRL, PayID, AUD, Papara, TRY); depozit/olib qo’yish limitlari ham har xil.
Qoida: katalog/vitrin namoyish etilgunga qadar valyuta va yurisdiksiya bo’yicha o’yinlar va to’lov usullarini filtrlaydi.

7) Arxitektura konturi

Currency Policy Store (CP): per currency qoidalari jadvallari (qadamlar, limitlar, prays-pointlar, yaxlitlash).
FX xizmati: kurslar, versiyalar va yangilik SLA kesh.
Katalog-bilder: Read Models per currency (proyeksiyalar) ishlab chiqaradi.
O’qish qatlamining APIsi: tayyor proyeksiyalarni tortadi; UI issiq yo’lda on-the-fly konvertatsiyalari yo’q.
Outbox → Proyeksiyalar: FX/siyosat → voqealar’CurrencyPolicyUpdated/FXUpdated’→ vitrinalarning inkremental yangilanishlari.

Proyeksiyalar bo’limlari sxemasi:

read_catalog_{tenant}_{region}_{currency}

Valyuta bo’yicha partiyalashtirish refresh va metrikalarni yig’ishni tezlashtiradi.

8) Proyeksiyalar per currency (misol)

sql
CREATE TABLE read_catalog_currency (
tenant_id  text,
region   text,
currency  text,
game_id   text,
price_min numeric, -- displayed min-rate price_step numeric,
jackpot   numeric,
bonus_badge text,
as_of    timestamptz,
PRIMARY KEY (tenant_id, region, currency, game_id)
);

Yangilanishlar - katalog voqealaridan + FX/siyosat voqealaridan idempotent’UPSERT’lar.

9) Formatlash va lokallar

Belgi/kod:’₺/TRY’,’R $/BRL’,’€’,’USDT’(kripto uchun - tiyinsiz yoki UX-siyosatiga muvofiq 2 belgili).
Guruhlash va oʻnlik ajratuvchi:’locale’(ru_RU, tr_TR, pt_BR) bogʻliq.
RTL/arab lokallari: valyuta belgisining to’g "riligini alohida tekshirish.

10) Keshlash va unumdorlik

Katalog javoblari per currency 30-120 s; FX-indikator’as _ of’javobida bering.

Nogironlik: ’FXUpdated ’/’ PolicyUpdated ’/’ GameUpserted’→ voqealari

Praysning kichik yangilanishlarida kartochkalar tartibi «sakrab tushmasligi» uchun kursorlar tomonidan paginatsiya qilish.

11) Kuzatuv va SLO

Metriklar:
  • `catalog_p95_ms` по валютам, `fx_freshness_ms` (p50/p95/p99), `policy_refresh_latency_ms`.
  • «Xunuk» narxlar ulushi (qadamda yotmaydi), limitlar tufayli rad etilgan tranzaksiyalar ulushi.
  • Chek-autdagi «vitrin vs hisob-kitob» tafovuti (haqiqiy debet sodir bo’ladigan joyda).
Alertlar:
  • FX SLA dan katta, yaxlitlash xatolarining o’sishi, PSPning limitlar bo’yicha nosozliklar ko’payishi.
  • RGS minimumi va vitrin minimumi nomuvofiqligi.

12) Komplayens, soliqlar va residency

Per currency ≠ per country:’currency + geo + license’kombinatsiyasiga amal qiling.
Soliq qoidalari/fee - valyuta siyosatida va chekda.
Residency: mahalliy valyutalar uchun ma’lumotlar va hisob-kitoblar - tegishli mintaqada.

13) Test sinovi

Property-based: invarant «konvertatsiya va yaxlitlashdan keyin narx qadamda yotadi»; «min ≤ value ≤ max».
Golden-cases: regressiya uchun etalon valyutalar/narxlar to’plami.
Chaos FX: «sakrash» kurslari, freeze windows, FX provayderini almashtirish.
E2E: vitrinadagi summaning va hisobdan chiqarilgan yakuniy summaning matchivligi; tolerans ≤ 0. 01 ta valyuta birligi (yoki 1 qadam).

14) Tipik xatolar

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Valyuta qadamlarini (CLP/JPY) → «yarim kopeyka» va RGS/PSP rad etishini eʼtiborsiz qoldirish.
Aniq per policy qoidalari o’rniga «odatdagidek» (bankers rounding) yaxlitlash.
FX versiyasini chek → ga yozib boʻlmaydi.
FX orqali yagona bonus nominallari → mahalliy bozorlar uchun «g’alati» raqamlar.
Komissiyalarni shaffofliksiz FXga yashirish - da’vo va jarimalar xavfi.

15) Tezkor retseptlar

TRY/BRLdagi stavkalar: qadam ₺1/R $0. 50, min-stavka qadam yuqoriga aylantiriladi, paketlar uchun «chiroyli» prays-pointlar.
Crypto (USDT/USDC): $0 qadam. 10, eng yaqin qadamga yaxlitlash, ko’rsatuvda vositachilik haqi yo’qligi (lekin chekda ko’rinadi).
High-volatility FX: freeze match/promo; bazaviy narxdan> X% chetga chiqganda alertlar.
Multi-tenant: brendlarda turli spredlar/qadamlar; per tenant proyeksiyalarini hisoblashda fairness.

16) Konfiguratsiya namunasi (haqiqatning yagona manbai)

yaml catalog_currency:
base_currency: EUR fx_sla_ms: 300000 # 5 minutes rules:
- currency: "TRY"
stake_step: 1. 00 stake_min: 5. 00 display_round: "ceil_to_step"
psychological_points: [9, 19, 29, 49, 99]
psp_methods: ["Mefete","Papara","Crypto"]
- currency: "BRL"
stake_step: 0. 50 stake_min: 1. 00 display_round: "ceil_to_step"
psychological_points: [4. 90, 9. 90, 19. 90, 49. 90]
psp_methods: ["PIX","Boleto","Cards"]
- currency: "CLP"
stake_step: 50 stake_min: 200 display_round: "ceil_to_step"
psp_methods: ["WebPay","Cards"]
jackpot:
display_policy:
EUR: "nearest_100"
MXN: "nearest_1000"
bonuses:
welcome:
EUR: {amount: 100, wager_x: 35}
BRL: {amount: 500, wager_x: 40}
TRY: {amount: 2500, wager_x: 40}

17) Sotishdan oldingi chek-varaq

  • Yagona asosiy valyuta va har bir chek/hodisada FX versiyasi.
  • /qadamlar/limitlarni yaxlitlash siyosati per currency tomonidan belgilangan va testlar bilan qoplangan.
  • per currency katalogining proyeksiyalari tayyor; issiq yoʻl konvertatsiya qilmaydi.
  • Jekpotlar va bonuslar per currency tomonidan toʻgʻri koʻrsatiladi/qoplanadi.
  • PSP usullari valyutalar bo’yicha filtrlanadi; limitlar vitrinaga to’g "ri keladi.
  • SLA yangi FX va alertlar sozlangan; oʻzgaruvchan hodisalar uchun freze windows.
  • Valyuta raqamlari va belgilarini mahalliylashtirish; hardcodsiz promo namunalari.
  • Siyosat/FX o’zgarishlari auditi; chekning takrorlanuvchanligi.
  • Ko’p tenant/mintaqa: ma’lumotlarni izolyatsiya qilish, turli spredlar va limitlar.
  • Hodisalar pleybuklari: FX-sakrash, RGS-minimum nomuvofiqligi, PSP-limitlar muvaffaqiyatsiz tugadi.

Xulosa

per currency kataloglari - bu «kursga ko’paytirish» emas, balki muhandislik fanidir. Nominal va ifodani ajrating, FX va yaxlitlash siyosatini markazlashtiring, per currency proyeksiyalarini materiallashtiring va yangilikni o’lchang. Shunda vitrin tezkor, oldindan aytib bo’ladigan va halol bo’ladi, biznes esa marjaning yashirin yo’qotishlari va mahalliy bozorlarda tartibga soluvchi kutilmagan hodisalardan himoyalanadi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.