"""API keys domain - Pydantic schemas."""
from __future__ import annotations

from datetime import datetime
from uuid import UUID

from pydantic import BaseModel, Field


class ApiKeyCreate(BaseModel):
    name: str = Field(min_length=1, max_length=100)
    permissions: list[str] | None = Field(default=None, max_length=100)


class ApiKeyCreatedResponse(BaseModel):
    id: UUID
    name: str
    key: str
    key_prefix: str
    permissions: list[str] | None
    created_at: datetime


class ApiKeyResponse(BaseModel):
    id: UUID
    workspace_id: UUID
    name: str
    key_prefix: str
    permissions: list[str] | None
    last_used_at: datetime | None
    expires_at: datetime | None
    revoked_at: datetime | None
    created_at: datetime

    model_config = {"from_attributes": True}
