<?php

declare(strict_types=1);

namespace ROITheme\Admin\Domain\Contracts;

/**
 * Contrato para tabs de componentes en el dashboard
 *
 * Domain - Lógica pura sin WordPress
 */
interface ComponentTabInterface
{
    /**
     * Obtiene el ID del componente
     *
     * @return string
     */
    public function getId(): string;

    /**
     * Obtiene el nombre visible del tab
     *
     * @return string
     */
    public function getLabel(): string;

    /**
     * Obtiene el ícono del tab
     *
     * @return string
     */
    public function getIcon(): string;

    /**
     * Renderiza el contenido del tab
     *
     * @return string HTML del contenido
     */
    public function renderContent(): string;

    /**
     * Verifica si el tab está activo
     *
     * @return bool
     */
    public function isActive(): bool;
}
