160 lines
5.4 KiB
Markdown
160 lines
5.4 KiB
Markdown
# Changelog - 2027-04-09
|
||
|
||
Bu doküman, 2027-04-09 tarihinde `Suggest-Bet-BE` ve `Suggest-Bet-FE` projelerinde yapılan ilgili ürün ve entegrasyon değişikliklerini özetler.
|
||
|
||
## Kapsam
|
||
|
||
- Maç detay tahmin kartı (`prediction-card`) UX ve metin iyileştirmeleri
|
||
- Kupon oluşturucu (`coupon-builder`) veri akışı ve güvenlik düzeltmeleri
|
||
- Backend kupon aday maç filtreleme mantığının sertleştirilmesi
|
||
- Frontend locale, tooltip ve okunabilirlik iyileştirmeleri
|
||
|
||
## Backend Değişiklikleri
|
||
|
||
### 1. Kupon için uygun maç filtreleme mantığı güçlendirildi
|
||
|
||
Dosya:
|
||
- `src/modules/matches/matches.service.ts`
|
||
|
||
Yapılanlar:
|
||
- `LIVE`, `FINISHED` ve `UPCOMING` mantıkları yardımcı filtrelere ayrıldı.
|
||
- `findMatches()` içinde `status === 'UPCOMING'` ve `status === 'NOT_STARTED'` desteği eklendi.
|
||
- Varsayılan maç sorguları artık yalnızca kupona uygun yaklaşan maçları döndürecek şekilde sıkılaştırıldı.
|
||
- `findUpcomingMatches()` artık:
|
||
- sadece ilgili spor dalını,
|
||
- gelecekteki maçları,
|
||
- canlı olmayan maçları,
|
||
- bitmemiş maçları
|
||
döndürüyor.
|
||
|
||
Amaç:
|
||
- Bitmiş veya canlı maçların yanlışlıkla kupon aday havuzuna düşmesini engellemek.
|
||
|
||
### 2. Kullanıcıdan gelen match ID listesi backend’de sanitize edilmeye başlandı
|
||
|
||
Dosyalar:
|
||
- `src/modules/matches/matches.service.ts`
|
||
- `src/modules/coupons/coupons.controller.ts`
|
||
|
||
Yapılanlar:
|
||
- `filterUpcomingMatchIds()` yardımcı metodu eklendi.
|
||
- `/coupon/suggest` ve `/coupon/daily-banko` içinde:
|
||
- kullanıcı `matchIds` gönderse bile
|
||
- sadece henüz başlamamış futbol maçları korunuyor
|
||
- canlı/bitmiş maçlar backend tarafında eleniyor.
|
||
- Sanitization sonrası uygun maç kalmazsa kullanıcıya anlamlı hata mesajı dönülüyor.
|
||
|
||
Amaç:
|
||
- UI’de opsiyonel olarak bitmiş maçlar gösterilse bile,
|
||
- kupon üretiminde skor, maç sonu durum veya sonradan oluşmuş istatistiklerin AI akışına sızmasını kesin olarak önlemek.
|
||
|
||
## Frontend Değişiklikleri
|
||
|
||
### 1. Prediction card okunabilirliği ve fallback mantığı geliştirildi
|
||
|
||
Dosyalar:
|
||
- `Suggest-Bet-FE/src/components/matches/prediction-card.tsx`
|
||
- `Suggest-Bet-FE/messages/en.json`
|
||
- `Suggest-Bet-FE/messages/tr.json`
|
||
|
||
Yapılanlar:
|
||
- `IntlError: MISSING_MESSAGE` üreten dinamik reason key kullanımı güvenli hale getirildi.
|
||
- Locale mesajı varsa çeviri, yoksa güvenli fallback metin kullanılıyor.
|
||
- `edge`, `stake` gibi teknik terimler açıklayıcı tooltiplerle desteklendi.
|
||
- Market etiketleri locale tabanlı hale getirildi.
|
||
- Tahmin kartı daha okunur bir karar paneli yapısına dönüştürüldü:
|
||
- ana öneri
|
||
- güven / oran / stake / play score
|
||
- motor kırılımı
|
||
- alternatif marketler
|
||
- market panosu
|
||
- skor senaryoları
|
||
|
||
Amaç:
|
||
- Kullanıcının API’den gelen tahmin verisini ek açıklama gerektirmeden anlayabilmesi.
|
||
|
||
### 2. Coupon Builder ekranı yeniden kurgulandı
|
||
|
||
Dosya:
|
||
- `Suggest-Bet-FE/src/components/coupons/coupon-builder-content.tsx`
|
||
|
||
Yapılanlar:
|
||
- Sayfa artık generic maç listesi değil, kupon oluşturma akışına özel bir ekran gibi davranıyor.
|
||
- Yaklaşan maçlar:
|
||
- seçilebilir
|
||
- AI’ye manuel havuz olarak gönderilebilir
|
||
- Hiç seçim yapılmazsa:
|
||
- sistem tüm uygun yaklaşan futbol maç havuzundan otomatik öneri üretiyor
|
||
- Sağ panelde:
|
||
- strateji seçimi
|
||
- seçilen maç havuzu
|
||
- AI önerilen bahisler
|
||
- toplam oran
|
||
- beklenen kazanma oranı
|
||
net şekilde gösteriliyor.
|
||
- Bilgi ikonları ve tooltip açıklamaları eklendi.
|
||
|
||
Amaç:
|
||
- Kupon oluşturucu akışını kullanıcı için sezgisel hale getirmek
|
||
- “hangi havuzdan öneri üretildi?” sorusunu görünür kılmak
|
||
|
||
### 3. Bitmiş maçlar opsiyonel referans listesi olarak eklendi
|
||
|
||
Dosya:
|
||
- `Suggest-Bet-FE/src/components/coupons/coupon-builder-content.tsx`
|
||
|
||
Yapılanlar:
|
||
- Kullanıcı isterse bitmiş maçları ayrı bir bölümde görebiliyor.
|
||
- Bu bölüm:
|
||
- varsayılan olarak kapalı
|
||
- sadece referans amaçlı
|
||
- salt okunur
|
||
- seçilemez
|
||
- UI üzerinde bu maçların tahmine dahil edilmediği açıkça belirtiliyor.
|
||
|
||
Amaç:
|
||
- Kullanıcıya geçmiş görünürlük vermek
|
||
- aynı anda tahmin güvenliğini bozmamak
|
||
|
||
### 4. Kupon API response tipleri güncellendi
|
||
|
||
Dosyalar:
|
||
- `Suggest-Bet-FE/src/lib/api/coupons/types.ts`
|
||
- `Suggest-Bet-FE/src/lib/api/coupons/service.ts`
|
||
- `Suggest-Bet-FE/src/lib/api/matches/types.ts`
|
||
|
||
Yapılanlar:
|
||
- `/coupon/suggest` response yapısı için ayrı `SmartCouponResultDto` tanımlandı.
|
||
- `SuggestedCouponBetDto` ve rejected match tipleri eklendi.
|
||
- Match status tipine `UPCOMING` / `NOT_STARTED` desteği eklendi.
|
||
- Coupon builder UI’si gerçek API kontratına göre güncellendi.
|
||
|
||
Amaç:
|
||
- Frontend’in gerçek backend response yapısıyla birebir uyumlu çalışması
|
||
|
||
## Ürün Etkisi
|
||
|
||
Sonuç olarak:
|
||
|
||
- Kupon oluşturucu artık bitmiş maçlarla yanlış öneri üretmiyor.
|
||
- Backend tarafı güvenlik filtresi sayesinde istemciye güvenmeden doğru maç havuzunu seçiyor.
|
||
- Frontend tarafı kullanıcıya:
|
||
- hangi maçların aday olduğunu,
|
||
- hangilerinin sadece referans olduğunu,
|
||
- AI’nin hangi stratejiyle ne önerdiğini
|
||
açık şekilde gösteriyor.
|
||
- Prediction card tarafında tahmin verileri daha anlaşılır ve daha stabil hale geldi.
|
||
|
||
## Doğrulama
|
||
|
||
Yapılan kontroller:
|
||
|
||
- Backend:
|
||
- `npm run build` geçti
|
||
- Frontend:
|
||
- `npx tsc --noEmit --pretty false --incremental false` geçti
|
||
|
||
## Not
|
||
|
||
Frontend repo içinde ayrı bir `mds` klasörü bulunmadığı için bu ortak changelog backend repo içindeki `mds` klasörüne eklendi.
|