from __future__ import annotations from datetime import datetime from typing import Literal from uuid import UUID from pydantic import BaseModel, Field from app.schemas.common import Envelope class AuthLoginRequest(BaseModel): username: str = Field(min_length=1, max_length=128) password: str = Field(min_length=1, max_length=1024) class AuthSession(BaseModel): authentication_required: bool authenticated: bool username: str | None = None expires_at: datetime | None = None role: Literal["operator", "guest"] | None = None guest_access_enabled: bool = False authentik_enabled: bool = False guest_project_id: UUID | None = None class AuthSessionEnvelope(Envelope[AuthSession]): pass