from __future__ import annotations

from jarvis_gateway.adapters.base import BaseAdapter
from jarvis_gateway.adapters.autoshorts_sanitizer import sanitize_autoshorts_status
from jarvis_gateway.contracts import ModuleId, ModuleSnapshot, SourceType, utcnow


class AutoShortsMockAdapter(BaseAdapter):
    module_id = ModuleId.AUTOSHORTS
    title = "AutoShorts"

    def get_snapshot(self) -> ModuleSnapshot:
        now = utcnow()
        return sanitize_autoshorts_status(
            {
                "reachable": True,
                "pending_review_count": 2,
                "ready_preview_count": 1,
                "failed_pipeline_count": 0,
                "last_pipeline_status": "review",
                "pipeline_freshness": "fresh",
                "publishing_status_category": "not_ready",
                "last_success_at": now.isoformat(),
            },
            source_type=SourceType.MOCK,
            last_attempt_at=now,
        )
