# -*- coding: utf-8 -*-
"""
Nom du fichier : users.py
Chemin : /gitlab-bridge/app/schemas/users.py
Description : Schémas Pydantic liés aux utilisateurs GitLab pour le bridge OpenWebUI.
Auteur : Sylvain SCATTOLINI
Date de création / modification : 2026-04-09
Version : 1.0
"""

from __future__ import annotations

from pydantic import BaseModel, ConfigDict, Field


class UserItem(BaseModel):
    model_config = ConfigDict(extra="forbid")

    id: int
    username: str
    name: str
    state: str
    avatar_url: str | None = None


class UserSearchRequest(BaseModel):
    model_config = ConfigDict(extra="forbid")

    query: str = Field(..., min_length=1, max_length=255,
                       description="Nom, prénom ou username GitLab à rechercher.")
    limit: int = Field(default=10, ge=1, le=50)


class UserSearchResponse(BaseModel):
    model_config = ConfigDict(extra="forbid")

    success: bool = True
    query: str
    users: list[UserItem] = Field(default_factory=list)
