<?php

class Estado
{
    private $db;

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

    public function lerEstados()
    {
        $this->db->query("
            SELECT e.*, r.nome as nome_regiao
            FROM estados e
            LEFT JOIN regioes r ON e.id_regioes = r.id_regioes
            WHERE e.removido IS NULL
            ORDER BY e.nome
        ");
        return $this->db->resultados();
    }

    public function lerEstadoPorId($id)
    {
        $this->db->query("
            SELECT e.*, r.nome as nome_regiao
            FROM estados e
            LEFT JOIN regioes r ON e.id_regioes = r.id_regioes
            WHERE e.id_estado = :id_estado AND e.removido IS NULL
        ");
        $this->db->bind("id_estado", $id);
        return $this->db->resultado();
    }

    public function armazenar($dados)
    {
        $this->db->query("
            INSERT INTO estados (nome, sigla, id_regioes, id_usuario)
            VALUES (:nome, :sigla, :id_regioes, :id_usuario)
        ");
        $this->db->bind("nome", $dados['nome']);
        $this->db->bind("sigla", $dados['sigla']);
        $this->db->bind("id_regioes", $dados['id_regioes']);
        $this->db->bind("id_usuario", $dados['id_usuario']);
        return $this->db->executa();
    }

    public function atualizar($dados)
    {
        $this->db->query("
            UPDATE estados SET
                nome = :nome,
                sigla = :sigla,
                id_regioes = :id_regioes,
                alterado = NOW()
            WHERE id_estado = :id_estado
        ");
        $this->db->bind("nome", $dados['nome']);
        $this->db->bind("sigla", $dados['sigla']);
        $this->db->bind("id_regioes", $dados['id_regioes']);
        $this->db->bind("id_estado", $dados['id_estado']);
        return $this->db->executa();
    }

    public function remover($id)
    {
        $this->db->query("UPDATE estados SET removido = NOW() WHERE id_estado = :id_estado");
        $this->db->bind("id_estado", $id);
        return $this->db->executa();
    }

    public function lerRegioes()
    {
        $this->db->query("SELECT * FROM regioes WHERE removido IS NULL ORDER BY nome");
        return $this->db->resultados();
    }
}
