<?php

class Cidade
{
    private $db;

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

    // Retorna todas as cidades não removidas
    public function listarTodos()
    {
        $this->db->query("SELECT * FROM cidades WHERE removido IS NULL ORDER BY nome");
        return $this->db->resultados();
    }

    // Alias para compatibilidade
    public function lerCidades()
    {
        $this->db->query("SELECT * FROM cidades WHERE removido IS NULL ORDER BY nome");
        return $this->db->resultados();
    }

    // Busca cidade por ID
    public function lerCidadePorId($id)
    {
        $this->db->query("SELECT * FROM cidades WHERE id_cidade = :id_cidade AND removido IS NULL");
        $this->db->bind("id_cidade", $id);
        return $this->db->resultado();
    }

    // NOVO MÉTODO: Retorna o id_estado de uma cidade
    public function getEstadoByCidade($id_cidade)
    {
        $this->db->query("SELECT id_estado FROM cidades WHERE id_cidade = :id_cidade AND removido IS NULL");
        $this->db->bind("id_cidade", $id_cidade);
        $result = $this->db->resultado();
        return $result ? $result->id_estado : null;
    }

    // Insere uma nova cidade
    public function armazenar($dados)
    {
        $this->db->query("
            INSERT INTO cidades (nome, id_estado, id_regioes, id_usuario)
            VALUES (:nome, :id_estado, :id_regioes, :id_usuario)
        ");
        $this->db->bind("nome", $dados['nome']);
        $this->db->bind("id_estado", $dados['id_estado']);
        $this->db->bind("id_regioes", $dados['id_regioes']);
        $this->db->bind("id_usuario", $dados['id_usuario']);
        return $this->db->executa();
    }

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

    // Marca cidade como removida
    public function remover($id)
    {
        $this->db->query("UPDATE cidades SET removido = NOW() WHERE id_cidade = :id_cidade");
        $this->db->bind("id_cidade", $id);
        return $this->db->executa();
    }

    
}
