"""Asset repository protocol."""

from typing import Protocol, runtime_checkable

from noteflow.domain.value_objects import MeetingId


@runtime_checkable
class AssetRepository(Protocol):
    """Repository for managing binary assets (audio, files)."""

    async def delete_meeting_assets(
        self,
        meeting_id: MeetingId,
        asset_path: str | None = None,
    ) -> None:
        """Delete all assets associated with a meeting.

        Args:
            meeting_id: Meeting identifier.
            asset_path: Relative path for assets (defaults to str(meeting_id)).
        """
        ...
