"""In-process registry for queued platform jobs."""

from __future__ import annotations

from dataclasses import dataclass, field
from datetime import datetime, timezone
from typing import Any


@dataclass(slots=True)
class JobDefinition:
    """Metadata describing a queued platform job."""

    job_name: str
    queue_name: str = "default"
    retries: int = 0
    metadata: dict[str, Any] = field(default_factory=dict)


class JobRegistry:
    """Track registered job types until a real queue backend is plugged in."""

    def __init__(self) -> None:
        self._jobs: dict[str, JobDefinition] = {}

    def register(self, job: JobDefinition) -> None:
        self._jobs[job.job_name] = job

    def get(self, job_name: str) -> JobDefinition | None:
        return self._jobs.get(job_name)

    def snapshot(self) -> dict[str, Any]:
        return {
            "registered_jobs": list(self._jobs),
            "captured_at": datetime.now(timezone.utc).isoformat(),
        }

