# Provider Dashboard Lead Görünürlük Sorunu - Hata Ayıklama Rehberi

## Sorun
`temrentravel` kullanıcısı provider olarak giriş yaptığında dashboard'da lead'ler görünmüyor.

## Yapılan İncelemeler

### 1. Veritabanı Kontrolü ✅
- **Kullanıcı Rolü**: `temrentravel` kullanıcısının `profiles` tablosunda `role='provider'` olarak doğru şekilde ayarlanmış
- **Provider Servisi**: `provider_services` tablosunda kayıt mevcut
  - Business Name: "Temren Travel"
  - Destinations: ["Kapadokya, Türkiye", "İstanbul", "Antalya", "İzmir", "Bodrum"]
  - Activity Categories: ["müze", "doğa", "macera", "kültür", "gastronomi", "tarih", "aktivite", "doğal alan", "doğal oluşum", "tarihi mekan", "tarihi yerleşim", "kasaba", "köy"]
  - Credit Balance: 60

### 2. Lead Verileri ✅
Sistemde 4 adet lead mevcut:
- **3 lead görünür olmalı** (destination ve interest eşleşmesi var)
- **1 lead görünmemeli** (destination eşleşmesi yok)

### 3. RLS Politikaları ✅
`leads` tablosundaki RLS politikaları doğru yapılandırılmış:
- "Providers can view available leads" - `role='provider'` ve `consent_given=true` ve `status='new'` kontrolü yapıyor
- "Providers can view purchased leads" - Satın alınan lead'leri gösteriyor

## Yapılan Değişiklikler

### 1. API Loglama Eklendi
`src/db/api.ts` dosyasındaki `providerLeadsApi.getAvailable()` fonksiyonuna detaylı console.log'lar eklendi:
- Provider service yükleme durumu
- Destination filtreleme
- Query sonuçları
- Category filtreleme detayları
- Final lead sayısı

### 2. Dashboard Loglama Eklendi
`src/pages/ProviderDashboard.tsx` dosyasına console.log'lar eklendi:
- Provider data yükleme süreci
- Lead yükleme durumu
- Hata mesajları

### 3. Admin Users Sayfası İyileştirildi
`src/pages/admin/Users.tsx` dosyasında rol gösterimi iyileştirildi:
- Select dropdown'a ek olarak Badge ile rol gösterimi eklendi
- Rol değerlerinin daha net görünmesi sağlandı

### 4. Debug Fonksiyonu Eklendi
Veritabanına `debug_provider_leads()` fonksiyonu eklendi. Bu fonksiyon bir provider için hangi lead'lerin görünür olması gerektiğini gösterir.

## Hata Ayıklama Adımları

### Adım 1: Browser Console Kontrolü
1. `temrentravel` kullanıcısı ile provider olarak giriş yapın
2. Browser'da Developer Tools'u açın (F12)
3. Console sekmesine gidin
4. Provider Dashboard'a gidin
5. Console'da şu log'ları arayın:
   ```
   [ProviderDashboard] Loading data for provider: ...
   [ProviderDashboard] Provider service loaded: ...
   [providerLeadsApi] getAvailable called for provider: ...
   [providerLeadsApi] Provider service: ...
   [providerLeadsApi] Query result - leads count: ...
   [providerLeadsApi] After category filtering, leads count: ...
   [providerLeadsApi] Returning X leads
   ```

### Adım 2: Beklenen Sonuçlar
Console'da şunları görmelisiniz:
- Provider service başarıyla yüklenmeli
- Query'den en az 3 lead dönmeli (Kapadokya destinasyonu için)
- Category filtreleme sonrası 3 lead kalmalı
- Final olarak 3 lead dashboard'da görünmeli

### Adım 3: Olası Sorunlar ve Çözümleri

#### Sorun A: "Provider service: null" görünüyorsa
**Neden**: Provider servisi yüklenememiş
**Çözüm**: 
```sql
-- Supabase SQL Editor'de çalıştırın
SELECT * FROM provider_services WHERE provider_id = '43595be4-acce-4d42-bfbf-66cbf204457c';
```

#### Sorun B: "Query result - leads count: 0" görünüyorsa
**Neden**: RLS politikası lead'leri engelliyor veya query yanlış
**Çözüm**: 
```sql
-- Supabase SQL Editor'de debug fonksiyonunu çalıştırın
SELECT * FROM debug_provider_leads('43595be4-acce-4d42-bfbf-66cbf204457c');
```
Bu fonksiyon hangi lead'lerin görünür olması gerektiğini gösterecektir.

#### Sorun C: "After category filtering, leads count: 0" görünüyorsa
**Neden**: Interest/category eşleşmesi başarısız
**Çözüm**: Console'da interest matching log'larını inceleyin. Eğer eşleşme olması gerekiyorsa ama olmuyorsa, provider'ın activity_categories değerlerini kontrol edin.

#### Sorun D: Authentication hatası
**Neden**: Provider session'ı doğru geçmiyor
**Çözüm**: 
1. Çıkış yapın
2. Tekrar giriş yapın
3. Browser cache'i temizleyin

### Adım 4: Manuel Test
Supabase SQL Editor'de şu sorguyu çalıştırarak provider'ın görebileceği lead'leri kontrol edin:

```sql
-- Debug fonksiyonu ile detaylı analiz
SELECT 
  lead_id,
  destination,
  interests,
  destination_matches,
  has_interest_match,
  matching_interests
FROM debug_provider_leads('43595be4-acce-4d42-bfbf-66cbf204457c')
WHERE destination_matches = true AND has_interest_match = true;
```

Bu sorgu 3 lead döndürmelidir.

## Sonraki Adımlar

1. **Console log'larını kontrol edin** - Yukarıdaki adımları takip ederek console'da ne olduğunu görün
2. **Debug fonksiyonunu çalıştırın** - SQL Editor'de debug_provider_leads() fonksiyonunu çalıştırın
3. **Sonuçları paylaşın** - Console log'larını ve debug fonksiyonu sonuçlarını paylaşın

## Ek Notlar

- Admin Users sayfasında rol boş görünse bile, veritabanında rol doğru şekilde ayarlanmış
- RLS politikaları doğru çalışıyor
- Lead verileri mevcut ve erişilebilir durumda
- Sorun muhtemelen frontend'de API çağrısı veya state yönetiminde

## İletişim

Eğer yukarıdaki adımları takip ettikten sonra hala sorun devam ediyorsa, lütfen şunları paylaşın:
1. Browser console'daki tüm log'lar (screenshot veya text)
2. `debug_provider_leads()` fonksiyonunun çıktısı
3. Network tab'inde Supabase API çağrılarının durumu (başarılı mı, hata mı?)
