Code source de henrri_connect.models.items

"""
Modèles pour les articles et catégories d'articles dans l'API Henrri Connect.

Attributs:
- ItemCategoryRequest: Représente une requête de catégorie d'article.
- ItemCategoryType: Représente un type de catégorie d'article.
- ItemCategory: Représente une catégorie d'article.
- Item: Représente un article.
"""

from __future__ import annotations

from .base import CamelModel, Link, ItemCategoryContentKind, ItemCategoryKind, SortOrder


[docs] class ItemCategoryRequest(CamelModel): """ Représente une requête de catégorie d'article dans l'API Henrri Connect. Attributes: page (int) : Index de la page de la requête (entre 1 et 2 147 483 647, defaut 1). limit (int) : Nombre d'articles par page (entre 1 et 100, défaut 50). search (str) : Chaine de recherche. sort_by (str) : Champ de tri. sort_order (str) : Ordre de tri (Ascending ou Descending). min_id (int) : Identifiant minimal de l'article (entre 1 et 2 147 483 647). from_date (str) : Date de début. to_date (str) : Date de fin. """ page: int = 1 limit: int = 50 search: str sort_by: str | None = None sort_order: str | None = None min_id: int | None = None from_date: str | None = None to_date: str | None = None
[docs] class ItemCategoryType(CamelModel): """ Représente un type de catégorie d'article dans l'API Henrri Connect. Attributs: - id: Identifiant unique du type de catégorie d'article. - label: Libellé du type de catégorie d'article. - item_category_content_kind: Type de contenu de la catégorie d'article. - item_category_kind: Type de catégorie d'article. """ id: int | None = None label: str | None = None item_category_content_kind: str = ItemCategoryContentKind.SUPPLY item_category_kind: str = ItemCategoryKind.SERVICE
[docs] class ItemCategory(CamelModel): """ Représente une catégorie d'article dans l'API Henrri Connect. Attributs: - id: Identifiant unique de la catégorie d'article. - type: Type de la catégorie d'article. - label: Libellé de la catégorie d'article. - margin_percent: Pourcentage de marge de la catégorie d'article. - hourly_rate: Tarif horaire de la catégorie d'article. - vat: Taux de TVA de la catégorie d'article. - is_added_to_revenue: Indique si les articles de la cat. sont ajoutés au chiffre d'affaires. - is_default: Indique si la catégorie d'article est la catégorie par défaut. - is_deleted: Indique si la catégorie d'article est supprimée. - item_category_kind: Type de la catégorie d'article (service, produit, ou fourniture). """ id: int | None = None type: ItemCategoryType | None = None label: str | None = None margin_percent: float = 0.0 hourly_rate: float = 0.0 vat: float = 0.0 is_added_to_revenue: bool = False is_default: bool = False is_deleted: bool = False item_category_kind: str = ItemCategoryKind.SERVICE
[docs] class Item(CamelModel): """ Représente un article dans l'API Henrri Connect. Attributs: - id: Identifiant unique de l'article. - reference: Référence de l'article. - description: Description de l'article. - is_tax_included: Indique si la taxe est incluse dans le prix. - selling_price_without_tax: Prix de vente hors taxe de l'article. - selling_price_with_tax: Prix de vente TTC de l'article. - purchase_price: Prix d'achat de l'article. - vat_percent: Taux de TVA de l'article. - is_a_group: Indique si l'article est un groupe d'articles. - item_category: Catégorie de l'article (si applicable). - item_category_id: Identifiant de la catégorie de l'article (si applicable). - unit_id: Identifiant de l'unité de l'article (si applicable). - parent_item_id: Id d'article parent si l'article est un élément d'un grp d'articles (si applicable). - creation_date: Date de création de l'article. - links: Liste de liens associés à l'article (si applicable). """ id: int | None = None reference: str | None = None description: str | None = None is_tax_included: bool = False selling_price_without_tax: float | None = None selling_price_with_tax: float | None = None purchase_price: float = 0.0 vat_percent: float is_a_group: bool = False item_category: ItemCategory | None = None item_category_id: int | None = None unit_id: int | None = None parent_item_id: int | None = None creation_date: str links: list[Link] | None = None
[docs] class ItemsQuery(CamelModel): """ Représente une requête de catégorie d'article dans l'API Henrri Connect. Attributs: - page (int) : Index de la page de la requête (entre 1 et 2 147 483 647, defaut 1). - limit (int) : Nombre d'articles par page (entre 1 et 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 minimal de l'article (entre 1 et 2 147 483 647). - from_date (str) : Date de début. - to_date (str) : Date de fin. """ page: int = 1 limit: int = 50 search: str | None = None sort_by: str | None = None sort_order: SortOrder | None = None min_id: int from_date: str to_date: str