"""Base class for transcription processors."""

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


class BaseTranscriptionProcessor(BaseVideoProcessor, ABC):
    """
    Abstract base class for transcription processors.

    All transcription implementations should inherit from this class.
    This provides a common interface while allowing different providers
    (OpenAI Whisper, AssemblyAI, Google Speech-to-Text, AWS Transcribe, etc.).

    Attributes:
        name: Should be "transcription" for all implementations
        is_frame_based: False (transcription analyzes entire video audio)
    """

    is_frame_based = False  # Transcription analyzes full audio, not per frame

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

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

    @property
    def requires_video(self) -> bool:
        """Transcription doesn't need video frames."""
        return False
