<?php

class Despesa
{
    private $db;

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

    public function lerDespesas()
    {
        $this->db->query("SELECT * FROM despesas WHERE removido IS NULL ORDER BY criado_em DESC");
        return $this->db->resultados();
    }

    public function lerDespesaPorId($id)
    {
        $this->db->query("SELECT * FROM despesas WHERE id_despesa = :id_despesa AND removido IS NULL");
        $this->db->bind("id_despesa", $id);
        return $this->db->resultado();
    }

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

    public function atualizar($dados)
    {
        $this->db->query("
            UPDATE despesas SET
                descricao = :descricao,
                valor = :valor,
                alterado = NOW()
            WHERE id_despesa = :id_despesa
        ");
        $this->db->bind("descricao", $dados['descricao']);
        $this->db->bind("valor", $dados['valor']);
        $this->db->bind("id_despesa", $dados['id_despesa']);
        return $this->db->executa();
    }

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