Code source de henrri_connect.models.customer
"""
Modèles pour les clients dans l'API Henrri Connect.
Attributs:
- Customer: Représente un client dans l'API Henrri Connect.
"""
from __future__ import annotations
from .base import CamelModel, Link, CompanyIdentifierType, CustomerType, SortOrder
from .address_contacts import Contact, Address
[docs]
class CustomerRequest(CamelModel):
"""
Modèle pour les requêtes de recherches clients dans l'API Henrri Connect.
Attributs:
- page: Numéro de page (par défaut 1).
- limit: Nombre de clients par page (par défaut 50).
- search: Chaîne de recherche (obligatoire).
- sort_by: Champ de tri.
- sort_order: Ordre de tri (Ascending ou Descending).
- min_id: Identifiant minimal de client (entre 1 et 2 147 483 647).
- from_date: Date de début.
- to_date: Date de fin.
"""
page: int = 1
limit: int = 50
search: str
sort_by: str | None = None
sort_order: SortOrder | None = None
min_id: int | None = None
from_date: str
to_date: str
[docs]
class Customer(CamelModel):
"""
Modèle pour les clients dans l'API Henrri Connect.
Attributs:
- id: Identifiant unique du client.
- name: Nom du client.
- type: Type de client (individuel ou entreprise).
- accounting_number: Numéro comptable du client.
- company_identifier_type: Type d'identifiant de l'entreprise (SIRET, BCE, ou inconnu).
- siret: Numéro SIRET de l'entreprise (si applicable).
- trade_name: Nom commercial de l'entreprise (si applicable).
- trade_name_extension: Extension du nom commercial de l'entreprise (si applicable).
- ict: Identifiant de contact de l'entreprise (si applicable).
- vat_number: Numéro de TVA du client (si applicable).
- address: Adresse du client (si applicable).
- contacts: Liste de contacts associés au client (si applicable).
- days_number_before_payment_reminder_level1: Nb jours avant le premier rappel de paiement.
- days_number_before_payment_reminder_level2: Nb jours avant le deuxième rappel de paiement.
- days_number_before_payment_reminder_level3: Nb jours avant le troisième rappel de paiement.
- days_number_before_payment_reminder_level4: Nb jours avant le quatrième rappel de paiement.
- service_discount_percentage: Pourcentage de remise pour les services.
- product_discount_percentage: Pourcentage de remise pour les produits.
- customer_type_alert_enabled: Indique si les alertes de type de client sont activées.
- is_deleted: Indique si le client est supprimé.
- is_supplier: Indique si le client est également un fournisseur.
- is_advisor: Indique si le client est également un conseiller.
- import_date: Date d'importation du client.
- comment: Commentaire sur le client.
- website: Site web du client (si applicable).
- creation_date: Date de création du client.
- links: Liste de liens associés au client (si applicable).
"""
id: int | None = None
name: str
type: CustomerType = CustomerType.INDIVIDUAL
accounting_number: str | None = None
company_identifier_type: CompanyIdentifierType | None = None
siret: str | None = None
trade_name: str | None = None
trade_name_extension: str | None = None
ict: str | None = None
vat_number: str | None = None
address: Address | None = None
contacts: list[Contact] | None = None
days_number_before_payment_reminder_level1: int | None = None
days_number_before_payment_reminder_level2: int | None = None
days_number_before_payment_reminder_level3: int | None = None
days_number_before_payment_reminder_level4: int | None = None
service_discount_percentage: float = 0.0
product_discount_percentage: float = 0.0
customer_type_alert_enabled: bool = False
is_deleted: bool = False
is_supplier: bool = False
is_advisor: bool | None = None
import_date: str | None = None
comment: str | None = None
website: str | None = None
creation_date: str | None = None
links: list[Link] | None = None