first (part 2: other directories)
Deploy Iddaai Backend / build-and-deploy (push) Failing after 18s

This commit is contained in:
2026-04-16 15:11:25 +03:00
parent 7814e0bc6b
commit 2f0b85a0c7
203 changed files with 59989 additions and 0 deletions
+159
View File
@@ -0,0 +1,159 @@
# 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 backendde 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ç:
- UIde 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 APIden 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
- AIye 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 UIsi gerçek API kontratına göre güncellendi.
Amaç:
- Frontendin 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,
- AInin 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.