"""Base class for brand detection processors."""

from abc import ABC
from mini_videorag.core.processor import BaseVideoProcessor


class BaseBrandDetectionProcessor(BaseVideoProcessor, ABC):
    """
    Abstract base class for brand detection processors.

    All brand detection implementations should inherit from this class.
    This provides a common interface while allowing different providers
    (Hugging Face, custom models, cloud APIs, etc.).

    Attributes:
        name: Should be "brand_detection" for all implementations
        is_frame_based: True (brand detection analyzes per frame)
    """

    is_frame_based = True  # Brand detection produces one result per frame

    @property
    def name(self) -> str:
        """All brand detection processors use the same identifier."""
        return "brand_detection"

    @property
    def requires_video(self) -> bool:
        """Brand detection requires video frames."""
        return True
