"""Base class for content safety detection processors."""

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


class BaseContentSafetyProcessor(BaseVideoProcessor, ABC):
    """
    Abstract base class for content safety detection processors.

    Detects content safety issues (violence, nudity, etc.)

    Attributes:
        name: Should be "content_safety" for all implementations
        is_frame_based: True (content safety analyzes per frame)
    """

    is_frame_based = True  # Content safety produces one result per frame

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

    @property
    def requires_audio(self) -> bool:
        """Content safety detection doesn't require audio."""
        return False

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