from __future__ import annotations

from typing import Protocol

from packages.domain import IngestJob


class IngestJobRepository(Protocol):
    def create(self, job: IngestJob) -> IngestJob:
        """Persist an ingest job and return it."""

    def get(self, job_id: str) -> IngestJob | None:
        """Retrieve an ingest job by ID."""

    def update(self, job: IngestJob) -> IngestJob:
        """Update an ingest job and return it."""
