from __future__ import annotations

from typing import Any

from pydantic import BaseModel, ConfigDict


class ApiModel(BaseModel):
    """Base schema with loose extra handling for Directus-backed records.

    Directus can include additional fields such as accountability metadata or
    relational expansions. Allowing extra keys keeps the DTO layer resilient
    while we gradually tighten contracts collection by collection.
    """

    model_config = ConfigDict(extra="allow")


class ItemListResponse(ApiModel):
    """Common list envelope so admin routes all respond in the same shape."""

    items: list[Any]

