# irohbet.com — SPEC

## Goal
Gerçek parayla oynanabilen, tam donanımlı, modern ve kullanıcı dostu bir online casino
platformu. React + Node (Express). Atmosfer: "The Last Airbender" 4 ulus teması —
**Water, Earth, Fire, Air** — her ulusun kendine özel rozet sistemine sahip bir üyelik
programı; tüm rozetleri tamamlayan kullanıcı "Avatar" statüsüne (özel avatar + imtiyazlar)
ulaşır. **Bonus yok** (bahis yatırma bonusu, hoşgeldin bonusu vb. YOK — regülatif olarak
net bir pozisyon).

## Önemli hukuki / teknik gerçeklik
- Gerçek para işlemleri: çevrimiçi kumar, tüm yargı bölgelerinde lisans/regülasyon gerektirir.
- Bu proje yazılım kapsamında: gerçek ödeme sağlayıcı bağlantısı, gerçek oyun tedarikçisi
  entegrasyonu, lisans ve KYC bunun dışındadır (sağlayıcı/lisans olmadan işleme koyulamaz).
- Platform, prod ortamında **demo/topluluk parası** ile çalışır; yapı gerçek para modeliyle
  birebir uyumlu olacak şekilde tasarlanır (cüzdan, işlem geçmişi, çekim başvurusu, KYC
  akışı, sağlayıcı entegrasyon noktaları). Böylece lisans + ödeme sağlayıcı alındığında
  aynı kod üzerinden gerçek paraya geçilebilir.

## Scope (in)
- Üyelik & kimlik: kayıt, giriş, JWT oturum, profil, 2FA altyapısı (opsiyonel adım).
- Cüzdan: bakiye, demo para yükleme (sanal), çekim başvurusu, işlem geçmişi.
- Oyunlar: sanal kredili casino oyunları (Slots, Blackjack, Rulet, Baccarat, Crash).
  Gerçek para geçişinde sağlayıcıya bağlanacak noktalar ayrı katmanda (game-provider).
- 4 Ulus Üyelik Programı (nations): rozetler, ilerleme, Avatar statüsü.
- Admin paneli: kullanıcılar, işlemler, rozetler, site ayarları.
- Temalar: koyu modern lüks casino + 4 ulus renkleri.

## Scope (out)
- Gerçek ödeme/kart sağlayıcı entegrasyonu (ayrı lisans gerekir).
- Gerçek oyun tedarikçisi (Pragmatic, Evolution vb.) entegrasyonu.
- Lisans alımı, KYC doğrulama hizmeti, gerçek para hareketleri (yazılım dışı).

## Pages & Endpoints
- `/` Anasayfa (oyun vitrini, ulus tanıtımı, üyelik programı).
- `/login`, `/register`
- `/games` (katalog + filtre), `/game/:slug` (oyun oynanır)
- `/account` (cüzdan, işlemler, profil, 2FA)
- `/nations` (4 ulus, rozetler, ilerleme) + `/nations/avatar`
- `/leaderboard` (haftalık/aylık sıralama)
- `/admin` (panel)
- API: `/api/auth/*`, `/api/wallet/*`, `/api/games/*`, `/api/nations/*`,
  `/api/admin/*`, `/api/leaderboard/*`

## Data Model (SQLite + Prisma)
- User (id, email, username, passwordHash, nation, status, createdAt, avatarLevel)
- Wallet (userId, balanceCents, lockedCents)
- Transaction (id, userId, type[deposit/withdraw/game], amountCents, status, refId)
- GameRound / GameHistory (id, userId, game, betCents, resultCents, state)
- Badge (id, nation, code, title, description, icon, tier)
- UserBadge (userId, badgeId, earnedAt, progress)
- NationBadgeProgress (userId, nation, metric, value)
- WithdrawalRequest, KycSubmission, AdminUser, SiteSetting

## Tech Choices
- Backend: Node + Express + Prisma (SQLite dev, prod'a taşınabilir).
- Auth: JWT (bcrypt hash), refresh token.
- Frontend: React + Vite, React Router, Tailwind + custom CSS teması.
- State: Context + hooks. WebSocket (socket.io) canlı güncellemeler için.

## Acceptance Criteria
1. Kayıt/giriş çalışır; oturum korunur.
2. Cüzdan bakiye gösterir; sanal para yükleme ve çekim başvuru akışı çalışır.
3. En az 5 oyun oynanabilir; bahis/ödeme cüzdana yansır, işlem geçmişine düşer.
4. 4 ulus sistemi: kullanıcı ulus seçer, rozetleri kazanır, tamamlayınca Avatar olur.
5. Liderlik tablosu canlı güncellenir.
6. Admin paneli: kullanıcı/rozet/işlem yönetimi.
7. Koyu lüks tema + 4 ulus renkleri, mobil uyumlu.
8. Console hatasız, deploy sonrası canlı doğrulama.

## Status Log
- 2026-08-09: Proje başlatıldı. Kapsam kararlaştırıldı: gerçek-para modeline uygun,
  prod ortamında demo para ile çalışan tam casino platformu.
