# Proje Bilgileri

**Proje Adı:** thedailybursa.com
**Proje Türü:** Laravel Web Uygulaması
**Tarih:** 14 Aralık 2025 Pazar
Projede türkçe konuşacağız.

## Proje Açıklaması
thedailybursa.com, Bursa iline özel yerel haberleri API'den toplayan, yapay zeka ile özetleyen ve editör onayından sonra yayına alan bir yapay zeka destekli haber sitesidir. Proje dizin yapısında tipik Laravel klasörleri mevcuttur: `app`, `config`, `database`, `public`, vb.

## Mevcut Durum
- Sadece ana sayfa yayında
- Haberler API ile toplanıyor ve yapay zeka ile özetleniyor
- Editör onayından sonra haberler yayına alınıyor
- Menüde kategori ve ilçeler mevcut
- Kategori ve ilçe linklerine tıklanınca ilgili filtreleme yapılmalı
- fetch news metodu trait'lere bölünerek haber alma altyapısı tekrar düzenlendi

## Veritabanı Şeması

### Temel Tablolar
- **users:** Kullanıcı bilgilerini içerir (id, name, email, password, vb.)
- **news:** Haberleri içerir (id, name, ai_name, description, ai_description, status, image, vb.)
- **categories:** Haber kategorilerini içerir (id, name, slug, color)
- **districts:** İlçeleri içerir (id, name, slug, type, logo, color)
- **pharmacies:** Nöbetçi eczaneleri içerir (id, name, dist, address, phone, date)
- **exchange_rates:** Döviz kurlarını içerir (id, name, code, buying, selling, rate, date, time)

### İlişki Tabloları
- **category_news:** Haberler ve kategoriler arasındaki çoktan çoğa ilişki
- **district_news:** Haberler ve ilçeler arasındaki çoktan çoğa ilişki

### Diğer Tablolar
- **password_reset_tokens:** Şifre sıfırlama token'larını içerir
- **sessions:** Kullanıcı oturum bilgilerini içerir
- **cache:** Önbellek verilerini içerir
- **jobs:** Kuyruğa alınmış işleri içerir
- **ai_usage_logs:** Yapay zeka kullanım kayıtlarını içerir
- **images:** Haber görsellerini içerir
- **sources:** Haber kaynaklarını içerir
- **authors:** Yazar bilgilerini içerir

### Anahtar İlişkiler
- `news` - `categories`: Çoktan çoğa (category_news pivot tablosu ile)
- `news` - `districts`: Çoktan çoğa (district_news pivot tablosu ile)
- `news` - `users`: Bir kullanıcı birçok haber oluşturabilir (author_id ile)

## Geliştirme Notları
- Laravel framework kullanılmaktadır
- Composer bağımlılıkları mevcut (composer.json)
- Node.js ve NPM kullanılmaktadır (package.json, vite.config.js)
- Fetch news altyapısı trait'lere bölünmüştür. `ProcessesNewsWithAi` trait'inde AI ile haber başlığı, kategori ve ilçe belirleme, görsel indirme ve diğer işlevler yer alır
- `FetchNewsCommand` bu trait'i kullanarak haberleri toplar ve işler
- `ProcessesNewsWithAi` trait'inde bulunan ana fonksiyonlar:
  - `generateAiTitle`: AI ile haber başlığı oluşturur
  - `determineCategories`: AI ile kategorileri belirler
  - `determineDistricts`: AI ile bölgeleri belirler
  - `downloadImage`: Görseli indirir ve kaydeder
  - `convertToTitleCaseTurkish`: Başlık Case'e çevirir (Türkçe karakterlere dikkat ederek)
  - `saveNewsRelationships`: Haber ilişkilerini kaydeder (kategoriler ve bölgeler)
- `FetchNewsCommand` komut dosyası, haber toplama sürecini yönetir:
  - CollectAPI'den Bursa yerel haberlerini çeker
  - AI ile içerik özetleri oluşturur
  - PHP ve AI kontrolleri ile içerik kalitesini değerlendirir
  - Trait içindeki fonksiyonlar ile başlık, kategori ve ilçe belirler
  - Haber kaydını oluşturur ve ilişkileri saklar

## Konuşma Geçmişi
Bu bölümde asistanla yapılan konuşmalar tarih ve konuya göre takip edilecektir.

### 27 Kasım 2025 Perşembe
- Proje dosyaları incelendi
- QWEN.md dosyası yapılandırıldı
- Türkçe dil tercihi belirlendi
- Proje detayları güncellendi: yapay zeka destekli haber sitesi, API entegrasyonu, editör onayı süreci, filtreleme gereksinimi
- Veritabanı şeması analiz edildi

### 14 Aralık 2025 Pazar
- fetch news metodu trait lere bölündü ve haber alma altyapısı tekrar düzenlendi
- `ProcessesNewsWithAi` trait'i oluşturuldu
- `FetchNewsCommand` bu trait'i kullanacak şekilde güncellendi
