<?php

class User extends Database {
    
    // GİRİŞ KONTROLÜ (GÜVENLİ HASH KONTROLÜ)
    public function login($email, $password) {
        $this->query("SELECT * FROM users WHERE email = :email");
        $this->bind(':email', $email);
        $row = $this->single();

        // Kullanıcı bulundu mu?
        if ($row) {
            // password_verify: Formdan gelen düz şifre ile DB'deki hashli şifreyi karşılaştırır
            if (password_verify($password, $row->password)) { 
                return $row; // Şifre doğru
            } else {
                return false; // Şifre yanlış
            }
        } else {
            return false; // Kullanıcı bulunamadı
        }
    }

    // Tüm Danışmanları Getir (Admin için)
    public function getAllConsultants() {
        $this->query("SELECT * FROM users WHERE role = 'danisman' ORDER BY created_at DESC");
        return $this->resultSet();
    }

    // Yeni Danışman Ekle
    public function addUser($data) {
        // Not: $data['password'] Controller tarafında hashlenmiş olarak gelir.
        $this->query("INSERT INTO users (name, email, password, phone, role) VALUES (:name, :email, :password, :phone, 'danisman')");
        $this->bind(':name', $data['name']);
        $this->bind(':email', $data['email']);
        $this->bind(':password', $data['password']);
        $this->bind(':phone', $data['phone']);
        return $this->execute();
    }

    // Kullanıcı Sil
    public function deleteUser($id) {
        $this->query("DELETE FROM users WHERE id = :id");
        $this->bind(':id', $id);
        return $this->execute();
    }

    // ID'ye göre tek kullanıcı getir
    public function getUserById($id) {
        $this->query("SELECT * FROM users WHERE id = :id");
        $this->bind(':id', $id);
        return $this->single();
    }

    // Profil Güncelleme
    public function updateProfile($data) {
        // Şifre alanı dolu gelmişse (Controller hashleyip gönderdiyse) şifreyi de güncelle
        if (!empty($data['password'])) {
            $this->query("UPDATE users SET name=:name, email=:email, phone=:phone, password=:password WHERE id=:id");
            $this->bind(':password', $data['password']);
        } else {
            $this->query("UPDATE users SET name=:name, email=:email, phone=:phone WHERE id=:id");
        }

        $this->bind(':id', $data['id']);
        $this->bind(':name', $data['name']);
        $this->bind(':email', $data['email']);
        $this->bind(':phone', $data['phone']);
        
        return $this->execute();
    }
}