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

1""" 

2Modèles Pydantic représentant les entités de paiement dans l'API Henrri. 

3 

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""" 

9 

10from __future__ import annotations 

11 

12from datetime import datetime 

13 

14from .base import CamelModel, Link 

15 

16class PaymentMilestone(CamelModel): 

17 """ 

18 Représente une étape de paiement dans l'API Henrri Connect. 

19 

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 

38 

39 

40class TaxDetail(CamelModel): 

41 """ 

42 Représente les détails de taxe dans l'API Henrri Connect. 

43 

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 

54 

55 

56class TaxDetailArray(CamelModel): 

57 """ 

58 Représente un tableau de détails de taxe dans l'API Henrri Connect. 

59 

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