"""Base class for subtitle presence detection processors."""

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


# pylint: disable=unnecessary-ellipsis
class BaseSubtitleCheckProcessor(BaseVideoProcessor):
    """
    Abstract base class for subtitle presence detection processors.

    Subtitle check processors compare OCR and transcription results
    to determine if subtitles are present in the video.
    """

    @property
    def name(self) -> str:
        """Processor name."""
        return "subtitle_check"

    @property
    def requires_video(self) -> bool:
        """Subtitle check doesn't require direct video access."""
        return False

    @property
    def requires_audio(self) -> bool:
        """Subtitle check requires audio."""
        return True

    @property
    @abstractmethod
    def provider(self) -> str:
        """Provider name for this implementation."""
        ...
