<?php
/**
 * Model Categoria
 * Localização: /app/models/Categoria.php
 */
require_once APP_PATH . '/core/Model.php';

class Categoria extends Model
{
    protected string $table = 'categorias';

    public function ativas(): array
    {
        return $this->db->query("SELECT * FROM categorias WHERE ativo = 1 ORDER BY ordem ASC, nome ASC")->fetchAll();
    }

    public function listarPaginado(int $page = 1, int $perPage = 20): array
    {
        $offset = ($page - 1) * $perPage;
        $total = $this->count();
        $stmt = $this->db->prepare("SELECT * FROM categorias ORDER BY ordem ASC, nome ASC LIMIT :l OFFSET :o");
        $stmt->bindValue(':l', $perPage, PDO::PARAM_INT);
        $stmt->bindValue(':o', $offset, PDO::PARAM_INT);
        $stmt->execute();
        return [
            'items' => $stmt->fetchAll(),
            'total' => $total,
            'pages' => (int)ceil($total / $perPage),
            'page'  => $page
        ];
    }
}
