Files
iddaai-be/mds/changelog-2027-04-09.md
fahricansecer 2f0b85a0c7
Deploy Iddaai Backend / build-and-deploy (push) Failing after 18s
first (part 2: other directories)
2026-04-16 15:11:25 +03:00

160 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.