<?php
class ProjectModel {
    private $db;

    public function __construct($db) {
        $this->db = $db;
    }

    // Tüm projeleri getir (Admin Listesi İçin)
    public function getAll() {
        // İstersen burada da kimin eklediğini görmek için JOIN yapabilirsin
        $query = $this->db->prepare("SELECT * FROM projects ORDER BY id DESC");
        $query->execute();
        return $query->fetchAll(PDO::FETCH_OBJ);
    }

    // ID'ye göre tek proje getir (Düzenleme sayfası için)
    public function getById($id) {
        $query = $this->db->prepare("SELECT * FROM projects WHERE id = :id");
        $query->execute(['id' => $id]);
        return $query->fetch(PDO::FETCH_OBJ);
    }

    // YENİ: Proje Ekle (user_id Eklendi)
    public function add($data) {
        // user_id alanını ekledik
        $sql = "INSERT INTO projects (user_id, title, slug, description, location, status, type, delivery_date, image) 
                VALUES (:user_id, :title, :slug, :description, :location, :status, :type, :delivery_date, :image)";
        $stmt = $this->db->prepare($sql);
        return $stmt->execute($data);
    }

    // Proje Sil
    public function delete($id) {
        $query = $this->db->prepare("DELETE FROM projects WHERE id = :id");
        return $query->execute(['id' => $id]);
    }
    
    // Statüye göre getir
    public function getByStatus($status) {
        $query = $this->db->prepare("SELECT * FROM projects WHERE status = :status ORDER BY id DESC");
        $query->execute(['status' => $status]);
        return $query->fetchAll(PDO::FETCH_OBJ);
    }

    // --- KRİTİK GÜNCELLEME: Slug ile Detay Getir (Danışman Bilgisiyle) ---
    public function getBySlug($slug) {
        // Projeyi çekerken Users tablosuna bağlanıp danışman bilgilerini alıyoruz
        $sql = "SELECT p.*, 
                       u.name as agent_name, 
                       u.phone as agent_phone, 
                       u.email as agent_email, 
                       u.image as agent_image 
                FROM projects p 
                LEFT JOIN users u ON p.user_id = u.id 
                WHERE p.slug = :slug LIMIT 1";

        $query = $this->db->prepare($sql);
        $query->execute(['slug' => $slug]);
        return $query->fetch(PDO::FETCH_OBJ);
    }

    // Proje Güncelle
    public function update($id, $data) {
        $fields = [];
        $params = ['id' => $id];

        foreach ($data as $key => $value) {
            $fields[] = "$key = :$key";
            $params[$key] = $value;
        }

        $sql = "UPDATE projects SET " . implode(', ', $fields) . " WHERE id = :id";
        $stmt = $this->db->prepare($sql);
        return $stmt->execute($params);
    }
}
?>