"""Stub registrar for development without a real IdP."""

import logging

from .base import AgentCredentials

logger = logging.getLogger(__name__)


class StubRegistrar:
    """AgentRegistrar stub — returns dev credentials without calling any IdP."""

    async def register_agent(
        self,
        delegation_id: str,
        agent_type: str,
        delegator_id: str,
        display_name: str,
        expires_at: str,
        metadata: dict | None = None,
    ) -> AgentCredentials:
        logger.info("Stub registrar: register %s for delegation %s", agent_type, delegation_id)
        return AgentCredentials(
            client_id=f"stub-agent-{agent_type}-{delegation_id}",
            client_secret=f"stub-secret-{delegation_id}",
            agent_display_name=display_name,
            idp_backend="stub",
        )

    async def delete_agent(self, client_id: str) -> bool:
        logger.info("Stub registrar: delete %s", client_id)
        return True

    async def get_agent_token(self, client_id: str) -> str | None:
        return f"stub-token-{client_id}"
