"""Definition of JobRepositoryInterface.""" from uuid import UUID from abc import ABC, abstractmethod from data_store.dto import Job class JobRepositoryInterface(ABC): """JobRepository interface.""" @abstractmethod def get(self, job_id: UUID) -> Job | None: """Retrieve a Job by its ID.""" raise NotImplementedError() @abstractmethod def put(self, job: Job) -> None: """Update or create a Job.""" raise NotImplementedError() @abstractmethod def delete(self, job_id: UUID) -> None: """Delete a Job by its ID.""" raise NotImplementedError() @abstractmethod def list_all(self) -> list[UUID]: """List all Job IDs in the repository.""" raise NotImplementedError()