Files
iddaai-be/mds/archive/degisiklik_ozeti_2026_01_28.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

52 lines
3.2 KiB
Markdown
Executable File
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.
# Proje Güncelleme Özeti: Smart Coupon API & Canlı Veri Entegrasyonu
Tarih: 28 Ocak 2026
Bu döküman, Smart Betting System V2 kapsamındaki Smart Coupon API geliştirmelerini, karşılaşılan veri bütünlüğü sorunlarını ve uygulanan çözümleri özetler.
## 🎯 Hedef
Kullanıcıların tek bir tıklamayla, canlı maç verileri ve yapay zeka analizlerine dayalı akıllı kuponlar oluşturmasını sağlayan `/predictions/smart-coupon` uç noktasının geliştirilmesi.
## ✅ Yapılan Geliştirmeler
### 1. Backend (Python AI Engine)
* **API Modelleri (`api_smart_coupon.py`):** `SmartCouponRequest` ve `SmartCouponResponse` Pydantic modelleri oluşturuldu.
* **Servis Mantığı (`service_smart_coupon.py`):**
* Kupon oluşturma algoritması (Risk, Strateji, Güven filtreleri).
* `match_id` tabanlı veri çekme altyapısı `matches` tablosundan `live_matches` tablosuna taşındı.
* Gömülü JSON `odds` verisinin parse edilmesi sağlandı.
* `BetDeriver` kategorileri ile API Enum'ları arasında map mekanizması kuruldu.
* **Entegrasyon (`main.py`):** FastAPI uygulamasına POST `/smart-coupon` endpoint'i eklendi.
### 2. Frontend (NestJS)
* **DTOlar:** Python modellerine karşılık gelen TypeScript DTO'ları (`smart-coupon.dto.ts`) yazıldı.
* **Servis ve Controller:**
* `PredictionsService` içine `getSmartCoupon` metodu eklendi.
* `PredictionsController` içine POST `/predictions/smart-coupon` route'u eklendi.
### 3. Veri Bütünlüğü ve Feeder İyileştirmeleri
Proje sırasında `live_matches` tablosundaki verilerin (Team ID, League ID, Odds) %99 oranında **NULL** olduğu tespit edildi. Bu kritik sorun çözüldü:
* **Sorun Tespiti:** Mackolik API bazı maçlarda `homeTeam` objesini dönmüyordu, feeder kodu bu durumu handle edemiyordu.
* **Feeder Fix (`data-fetcher.task.ts`):**
* `refereeName` alanı için Prisma ve TypeScript tip uyumsuzluğu giderildi (`npx prisma generate`).
* API yanıt yapısına uygun veri çekme mantığı doğrulandı.
* **Toplu Düzeltme (`fix-live-matches.ts`):** `live_matches` tablosundaki eksik verileri API'den tekrar çekerek güncelleyen script yazıldı ve çalıştırıldı (158 maç kurtarıldı).
* **Temizlik (`cleanup-live-matches.ts`):** Eski ve geçersiz maç kayıtlarını temizleyen script eklendi (3000+ çöp kayıt silindi).
### 4. Test ve Doğrulama
* **Canlı Kupon Testi (`test_live_coupon.py`):** Gerçek bir `live_match` ID'si ile sistemin bahis ürettiği doğrulandı.
* **Augsburg Senaryosu (`test_augsburg_scenario.py`):** Sistemin "1/2" gibi mucize geri dönüşleri tahmin edip kupona ekleyebildiği (Value stratejisi ile) test edildi.
## 📊 Gelinen Son Durum
* **Sistem:** ✅ Çalışıyor
* **Veri:**`live_matches` tablosu düzeltildi ve güncel.
* **Eksikler:** Bazı çok eski maçların ID'leri kurtarılamadı (normal), yeni gelen maçlar sorunsuz kaydedilecek.
## 📂 Oluşturulan/Düzenlenen Kritik Dosyalar
* `ai-engine/api_smart_coupon.py`
* `ai-engine/service_smart_coupon.py`
* `src/modules/predictions/dto/smart-coupon.dto.ts`
* `src/tasks/data-fetcher.task.ts`
* `src/scripts/fix-live-matches.ts`
* `src/scripts/cleanup-live-matches.ts`