<?php

class TipoTransporte
{
    private $db;

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

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

    // Alias para compatibilidade, caso utilize em outro local
    public function lerTiposTransporte()
    {
        return $this->listarTodos();
    }

    // Busca tipo de transporte por ID
    public function lerTipoTransportePorId($id)
    {
        $this->db->query("SELECT * FROM tipos_transporte WHERE id_tipo = :id_tipo AND removido IS NULL");
        $this->db->bind("id_tipo", $id);
        return $this->db->resultado();
    }

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

    // Atualiza um tipo de transporte existente
    public function atualizar($dados)
    {
        $this->db->query("
            UPDATE tipos_transporte SET
                descricao = :descricao,
                alterado = NOW()
            WHERE id_tipo = :id_tipo
        ");
        $this->db->bind("descricao", $dados['descricao']);
        $this->db->bind("id_tipo", $dados['id_tipo']);
        return $this->db->executa();
    }

    // Marca tipo de transporte como removido
    public function remover($id)
    {
        $this->db->query("UPDATE tipos_transporte SET removido = NOW() WHERE id_tipo = :id_tipo");
        $this->db->bind("id_tipo", $id);
        return $this->db->executa();
    }
}
