<?php
// Kategori modelini dışarıdan alıyoruz
require_once __DIR__ . '/../Models/CategoryModel.php';

class PropertiesController extends Controller {

    // --- İLAN LİSTELEME ---
    public function index() {
        // Doğru model çağırma yöntemi!
        $model = $this->model('Property');
        $settingModel = $this->model('Setting');
        
        global $db;
        $catModel = new CategoryModel($db);
        $categories = $catModel->getAll();

        $filters = [
            'category'  => $_GET['category'] ?? null,
            'type'      => $_GET['type'] ?? null,
            'location'  => $_GET['location'] ?? null,
            'min_price' => $_GET['min_price'] ?? null,
            'max_price' => $_GET['max_price'] ?? null
        ];

        // İlanları çek (Artık sorunsuz çalışacak)
        $properties = $model->getFiltered($filters);
        $globalSettings = $settingModel->getSettings();

        $data = [
            'title'          => 'İlanlar - Güncel Portföy',
            'active'         => 'properties',
            'properties'     => $properties,
            'categories'     => $categories,
            'filters'        => $filters,
            'globalSettings' => $globalSettings 
        ];

        $this->view('front/properties', $data);
    }
    
    // --- İLAN DETAY ---
    public function detail() {
        $slug = $_GET['slug'] ?? null;

        if(!$slug) {
            die("<h3 style='color:red;'>HATA: Linkte 'slug' parametresi eksik.</h3>");
        }

        // Doğru modeli kullanıyoruz
        $model = $this->model('Property');
        $settingModel = $this->model('Setting'); 

        try {
            $ilan = $model->getPropertyBySlug($slug); 
        } catch (Exception $e) {
            die("<h3 style='color:red;'>VERİTABANI HATASI: " . $e->getMessage() . "</h3><p>Lütfen 'users' tablosunda 'image' sütunu olduğundan emin olun.</p>");
        }

        if(!$ilan) {
            die("<h3 style='color:red;'>İLAN BULUNAMADI!</h3><p>Aranan Slug: " . htmlspecialchars($slug) . "</p><p>Veritabanında böyle bir ilan yok veya 'users' tablosundaki 'image' sütunu eksik olduğu için sorgu patlıyor.</p>");
        }

        $globalSettings = $settingModel->getSettings();

        $data = [
            'title'          => $ilan->title,
            'ilan'           => $ilan,           
            'globalSettings' => $globalSettings, 
            'meta_desc'      => mb_substr($ilan->description ?? '', 0, 160)
        ];

        $this->view('front/property-detail', $data);
    }
}