<?php

class Departamento
{
    private $db;

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

    // Retorna todos os departamentos não removidos
    public function listarTodos() {
        $this->db->query("SELECT * FROM departamentos WHERE removido IS NULL ORDER BY nome_departamento");
        return $this->db->resultados();
    }

    // (Alias para compatibilidade com código antigo)
    public function lerDepartamentos()
    {
        return $this->listarTodos();
    }

    // Busca um departamento pelo ID
    public function lerDepartamentoPorId($id)
    {
        $this->db->query("SELECT * FROM departamentos WHERE id_departamento = :id_departamento AND removido IS NULL");
        $this->db->bind("id_departamento", $id);
        return $this->db->resultado();
    }

    // Insere um novo departamento
    public function armazenar($dados)
    {
        $this->db->query("
            INSERT INTO departamentos (nome_departamento, id_usuario)
            VALUES (:nome_departamento, :id_usuario)
        ");
        $this->db->bind("nome_departamento", $dados['nome_departamento']);
        $this->db->bind("id_usuario", $dados['id_usuario']);
        return $this->db->executa();
    }

    // Atualiza um departamento existente
    public function atualizar($dados)
    {
        $this->db->query("
            UPDATE departamentos SET
                nome_departamento = :nome_departamento,
                alterado = NOW()
            WHERE id_departamento = :id_departamento
        ");
        $this->db->bind("nome_departamento", $dados['nome_departamento']);
        $this->db->bind("id_departamento", $dados['id_departamento']);
        return $this->db->executa();
    }

    // Marca um departamento como removido
    public function remover($id)
    {
        $this->db->query("UPDATE departamentos SET removido = NOW() WHERE id_departamento = :id_departamento");
        $this->db->bind("id_departamento", $id);
        return $this->db->executa();
    }
}
