"""FastAPI dependency: resolve X-Organization header → org UUID."""

from __future__ import annotations

import uuid

from fastapi import Depends, Header
from sqlalchemy.ext.asyncio import AsyncSession

from app.database import get_db
from app.services.org_service import get_organization_by_slug


async def get_active_org_id(
    x_organization: str | None = Header(default=None, alias="X-Organization"),
    db: AsyncSession = Depends(get_db),
) -> uuid.UUID | None:
    """Return the UUID of the org named in the X-Organization header, or None.

    None means no org filter — used for backward compat and internal tooling.
    An unknown slug is silently treated as None (don't break the client).
    """
    if not x_organization:
        return None
    org = await get_organization_by_slug(db, x_organization)
    return org.id if org else None
