38980-vm/app-9w9pd00g5j41/DEBUGGING_GUIDE.md
2026-03-04 18:25:09 +00:00

5.5 KiB
Raw Permalink Blame History

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:

-- 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:

-- 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:

-- 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ı?)