Coverage for src/henrri_connect/models/payments.py: 100%
21 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-05 10:54 +0200
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-05 10:54 +0200
1"""
2Modèles Pydantic représentant les entités de paiement dans l'API Henrri.
4Attributs:
5- PaymentMilestone: Représente une étape de paiement dans l'API Henrri Connect.
6- TaxDetail: Représente les détails de taxe dans l'API Henrri Connect.
7- TaxDetailArray: Représente un tableau de détails de taxe dans l'API Henrri Connect.
8"""
10from __future__ import annotations
12from datetime import datetime
14from .base import CamelModel, Link
16class PaymentMilestone(CamelModel):
17 """
18 Représente une étape de paiement dans l'API Henrri Connect.
20 Attributs:
21 - id: Identifiant unique de l'étape de paiement.
22 - amount: Montant de l'étape de paiement.
23 - percentage: Pourcentage de l'étape de paiement.
24 - due_date: Date d'échéance de l'étape de paiement.
25 - is_paid: Indique si l'étape de paiement est payée.
26 - document_id: Identifiant du document associé à l'étape de paiement.
27 - payment_id: Identifiant du paiement associé à l'étape de paiement (si applicable).
28 - links: Liste de liens associés à l'étape de paiement (si applicable).
29 """
30 id: int | None = None
31 amount: float | None = None
32 percentage: float | None = None
33 due_date: datetime
34 is_paid: bool = False
35 document_id: int
36 payment_id: int | None = None
37 links: list[Link] | None = None
40class TaxDetail(CamelModel):
41 """
42 Représente les détails de taxe dans l'API Henrri Connect.
44 Attributs:
45 - rate: Taux de taxe.
46 - price_before_tax: Prix total avant taxe.
47 - tax_amount: Montant total de la taxe.
48 - price_after_tax: Prix total après taxe.
49 """
50 rate: float = 0.0
51 price_before_tax: float = 0.0
52 tax_amount: float = 0.0
53 price_after_tax: float = 0.0
56class TaxDetailArray(CamelModel):
57 """
58 Représente un tableau de détails de taxe dans l'API Henrri Connect.
60 Attributs:
61 - tax_detail_array: Liste des détails de taxe.
62 - document_id: Identifiant du document associé aux détails de taxe.
63 - links: Liste de liens associés au tableau de détails de taxe (si applicable).
64 """
65 tax_detail_array: list[TaxDetail] | None = None
66 document_id: str | None = None
67 links: list[Link] | None = None