Code source de henrri_connect.models.base.responses

"""
Modèles de base pour les réponses de l'API Henrri Connect.

Attributs:
- Cell: Représente une cellule de total dans une réponse paginée.
- ElementDisplay: Représente les informations d'affichage pour un élément dans une réponse paginée.
- PagedListResponse: Réponse paginée générique.
- ListResponse: Réponse liste générique.
"""

from typing import Generic, TypeVar
from .models import (
    CamelModel,
    Link,
    MetaListResponse,
    MetaPagedListResponse,
)

T = TypeVar("T")

class Cell(CamelModel):
    """
    Représente une cellule de total dans une réponse paginée.

    Attributs
    - name: Nom de la cellule.
    - value: Valeur de la cellule.
    - type: Type de la cellule.
    - is_amount: Indique si la cellule représente un montant.
    - show_alert: Indique si une alerte doit être affichée pour cette cellule.
    - links: Liste de liens associés à la cellule (si applicable).
    """
    name: str | None = None
    value: str | None = None
    type: str | None = None
    is_amount: bool = False
    show_alert: bool = False
    links: list[Link] | None = None


class ElementDisplay(CamelModel):
    """
    Représente les informations d'affichage pour un élément dans une réponse paginée.

    Attributs
    - id: Identifiant de l'élément.
    - title: Titre de l'élément.
    - index: Index de l'élément.
    - width: Largeur de l'élément.
    """
    id: int | None = None
    title: str | None = None
    index: int = 0
    width: int = 0


[docs] class PagedListResponse(CamelModel, Generic[T]): """ Réponse paginée générique. Attributs - elements: Liste d'éléments de la page. - totals: Liste de cellules de total pour la page (si applicable). - display: Liste d'informations d'affichage pour les éléments de la page (si applicable). - meta: Métadonnées de la réponse paginée (si applicable). """ elements: list[T] | None = None totals: list[Cell] | None = None display: list[ElementDisplay] | None = None meta: MetaPagedListResponse | None = None
[docs] class ListResponse(CamelModel, Generic[T]) : """ Réponse liste générique. Attributs - elements: Liste d'éléments. - meta: Métadonnées de la réponse liste (si applicable). """ elements: list[T] | None = None meta: MetaListResponse | None = None