Code source de henrri_connect.models.document
"""
Modèles Pydantic v2 pour les documents dans l'API Henrri Connect.
Attributs:
- DocumentType: Représente un type de document dans l'API Henrri Connect.
- DocumentLabelElement: Représente un élément d'étiquette de document dans l'API Henrri Connect.
- DocumentLabel: Représente une étiquette de document dans l'API Henrri Connect.
- DocumentLineType: Représente un type de ligne de document dans l'API Henrri Connect.
- DocumentLine: Représente une ligne de document dans l'API Henrri Connect.
- DocumentLineMoveQueryParameters: Représente les paramètres de requête pour déplacer une ligne
de document dans l'API Henrri Connect.
"""
from __future__ import annotations
from .base import CamelModel, Link, DocumentKind, DocumentState, SortOrder
from .document_line import DocumentLine
from .customer import Customer
from .address_contacts import Address
[docs]
class DocumentType(CamelModel):
"""
Représente un type de document dans l'API Henrri Connect.
Attributs:
- id: Identifiant unique du type de document.
- label: Libellé du type de document.
- short_label: Libellé court du type de document.
- document_kind: Type de document.
- is_accounting: Indique si le type de document est comptable.
"""
id: int | None = None
label: str | None = None
short_label: str | None = None
document_kind: str = DocumentKind.INVOICE
is_accounting: bool = False
is_managed: bool = False
is_mandatory: bool = False
is_visible: bool = False
[docs]
class DocumentLabelElement(CamelModel):
"""
Représente un élément d'étiquette de document dans l'API Henrri Connect.
Attributs:
- id: Identifiant unique de l'élément d'étiquette.
- model_element_id: Id de l'élément de modèle auquel appartient l'élément d'étiquette.
- label: Libellé de l'élément d'étiquette.
- value: Valeur de l'élément d'étiquette.
- element_type: Type de l'élément d'étiquette.
- is_main_element: Indique si l'élément d'étiquette est l'élément principal de l'étiquette.
- size: Taille de l'élément d'étiquette.
- index: Index de l'élément d'étiquette dans l'étiquette.
- links: Liste de liens associés à l'élément d'étiquette (si applicable).
"""
id: int | None = None
model_element_id: int | None = None
label: str | None = None
value: str | None = None
element_type: str | None = None
is_main_element: bool = False
size: int | None = None
index: int | None = None
links: list[Link] | None = None
[docs]
class DocumentLabel(CamelModel):
"""
Représente une étiquette de document dans l'API Henrri Connect.
Attributs:
- id: Identifiant unique de l'étiquette de document.
- model_id: Id du modèle auquel appartient l'étiquette de document.
- document_id: Id du document auquel appartient l'étiquette de document.
- label: Libellé de l'étiquette de document.
- elements: Liste d'éléments d'étiquette de doc associés à l'étiquette de doc (si applicable).
- links: Liste de liens associés à l'étiquette de document (si applicable).
"""
id: int | None = None
model_id: int | None = None
document_id: int | None = None
label: str | None = None
elements: list[DocumentLabelElement] | None = None
links: list[Link] | None = None
[docs]
class Document(CamelModel):
"""
Représente un document dans l'API Henrri Connect.
Attributs:
- id: Identifiant unique du document.
- identity: Identité du document.
- finalized: Indique si le document est finalisé.
- type: Type du document.
- document_type_id: Identifiant du type de document.
- document_type: Type de document (si applicable).
- title: Titre du document.
- subtitle: Sous-titre du document (si applicable).
- price_before_tax: Prix total avant taxe du document.
- tax_amount: Montant total de la taxe du document.
- price_after_tax: Prix total après taxe du document.
- due_label: Libellé de l'échéance du document (si applicable).
- last_modification_date: Date de dernière modification du document.
- date: Date du document.
- validated: Indique si le document est validé.
- validation_date: Date de validation du document (si applicable).
- validation_firstname: Prénom de la personne ayant validé le document (si applicable).
- validation_lastname: Nom de la personne ayant validé le document (si applicable).
- validation_email: E-mail de la personne ayant validé le document (si applicable).
- validation_ip: IP de la personne ayant validé le document (si applicable).
- lines: Liste de lignes de document associées au document (si applicable).
- customer_id: Identifiant du client associé au document (si applicable).
- customer: Client associé au document (si applicable).
- customer_address: Adresse du client associée au document (si applicable).
- user_can_validate: Indique si l'utilisateur peut valider le document.
- footer_text: Texte de pied de page du document (si applicable).
- bank_account_label: Libellé du compte bancaire associé au document (si applicable).
- label_id: Identifiant de l'étiquette de document associée au document (si applicable).
- links: Liste de liens associés au document (si applicable).
"""
id: int | None = None
identity: str | None = None
finalized: bool = False
type: str | None = None
document_type_id: int
document_type: DocumentType | None = None
title: str | None = None
subtitle: str | None = None
price_before_tax: float = 0.0
tax_amount: float = 0.0
price_after_tax: float = 0.0
due_label: str | None = None
last_modification_date: str | None = None
date: str | None = None
validated: bool = False
validation_date: str | None = None
validation_firstname: str | None = None
validation_lastname: str | None = None
validation_email: str | None = None
validation_ip: str | None = None
lines: list[DocumentLine] | None = None
customer_id: int
customer: Customer | None = None
customer_address: Address | None = None
user_can_validate: bool = False
footer_text: str | None = None
bank_account_label: str | None = None
label_id: int | None = None
links: list[Link] | None = None
[docs]
class DocumentQuery(CamelModel):
"""
Représente une requête de document dans l'API Henrri Connect.
Attributs:
- finalized (bool) : Indique si le document est finalisé.
- document_types (list[DocumentKind]) :: Type du document.
- state (Optional[DocumentState]) : Etat du document.
- page (int) : Numéro de page (de 1 à 2 147 483 647, défaut 1).
- limit (int) : Nombre de documents par page (de 1 à 100, défaut 50).
- search (str) : Chaine de recherche.
- sort_by (str) : Champ de tri.
- sort_order (SortOrder) : Ordre de tri (Ascending ou Descending).
- min_id (int) : Identifiant minimum.
- from_date (str) : Date de debut.
- to_date (str) : Date de fin.
"""
finalized: bool = False
document_types: list[DocumentKind] | None = None
state: DocumentState | None = None
page: int = 1
limit: int = 50
search: str | None = None
sort_by: str | None = None
sort_order: SortOrder | None = None
min_id: int | None = None
from_date: str | None = None
to_date: str | None = None
[docs]
class ValidateDocumentRequest(CamelModel):
"""
Représente une requête de validation de document dans l'API Henrri Connect.
Attributs:
- email: Adresse e-mail de la personne validant le document.
- first_name: Prénom de la personne validant le document.
- last_name: Nom de la personne validant le document.
- validation_date: Date de validation du document.
- time_offset: Décalage horaire par rapport à UTC.
- ip: Adresse IP de la personne validant le document.
"""
email: str
first_name: str
last_name: str
validation_date: str
time_offset: int
ip: str