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
+51
View File
@@ -0,0 +1,51 @@
# 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`