<?php

class Status
{
    private $db;

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

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

    // Alias para compatibilidade, caso necessário
    public function lerStatus()
    {
        return $this->listarTodos();
    }

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

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

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

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