"""No-op реализации Transcriber/Summarizer, используемые как безопасный default."""

from typing import Any, ClassVar

from core.plugins.factory import register_summarizer, register_transcriber
from core.plugins.summarizer import Summarizer
from core.plugins.transcriber import Segment, Transcriber


@register_transcriber
class NullTranscriber(Transcriber):
    """Transcriber, который не выдаёт сегменты; используется когда транскрибация отключена."""

    provider: ClassVar[str] = "null"

    def __init__(self, model: str | None = None, language: str = "ru", **options: Any) -> None:
        self.model = model
        self.language = language
        self.options = options

    def transcribe(self, audio_path: str, language: str = "ru") -> list[Segment]:
        return []


@register_summarizer
class NullSummarizer(Summarizer):
    """Summarizer, который выдаёт пустое резюме; используется когда суммаризация отключена."""

    provider: ClassVar[str] = "null"

    def __init__(self, model: str | None = None, **options: Any) -> None:
        self.model = model
        self.options = options

    def summarize(self, transcript: str) -> str:
        return ""
