# Item - Specifications
## 1. Autheurs, validations, dates, versions, changement and historique
Cf. [Git SDK COMMON](https://git.4nk.com/4nk/sdk_common/doc)
## 2. Table des matières
* 1. [Autheurs, validations, dates, versions, changement and historique](#Autheursvalidationsdatesversionschangementandhistorique)
* 2. [Table des matières](#Tabledesmatires)
* 3. [Objectif](#Objectif)
* 4. [Portée](#Porte)
* 5. [Documents de référence](#Documentsderfrence)
* 5.1. [Types d'Items](#TypesdItems)
* 5.2. [ Composition et Fonction](#CompositionetFonction)
* 5.2.1. [Cas d'utilisation](#Casdutilisation)
* 5.3. [MetaData - Gestion des Attributs d'Items](#MetaData-GestiondesAttributsdItems)
* 5.3.1. [Composition et Fonction](#CompositionetFonction-1)
* 5.3.2. [Cas d'utilisation](#Casdutilisation-1)
* 6. [Process](#Process)
* 7. [Exemples de Code](#ExemplesdeCode)
* 8. [Todo](#Todo)
## 3. Objectif
Les transactions Silent Payments SP intègrent directement dans l'architecture web de l'application, comme démontré dans le client web. La gestion et l'intégration des SP sont conçues pour être fluides avec les systèmes front-end, assurant une expérience `User` transparente tout en maintenant la sécurité et la confidentialité au cœur de l'interaction `User`.
## 4. Portée
## 5. Documents de référence
Voir [_Doc_references.md](_Doc_references.md).
### 5.1. Types d'Items
Dans le système 4NK, les items représentent les entités ou les objets appelés `Item` sur lesquels les transactions, les processus, et les interactions sont basés. Les types d'`items` incluent :
* **Process**: Définit un ensemble de règles et de procédures pour gérer des interactions spécifiques au sein du réseau.
* **Member**: Représente les `User` ou entités participant à un processus.
* **Peer**: Identifie les nœuds ou participants du réseau qui aident à faciliter les communications et les transactions.
* **Artefact** : Un type d'objet générique personnalisable dans les `Process` , il peut y avoir une quantité infinie de type d'`artefacts` différents par `Process`.
* **Payments, Deposit, commit**: Représentent divers types de transactions ou d'engagements au sein du réseau, avec des règles et des attributs spécifiques.
### 5.2. Composition et Fonction
* **uuid**: Identifiant unique de l'item, assurant sa traçabilité et son unicité au sein du système.
* **version**: Numéro de version de l'item, facilitant le suivi des mises à jour et des modifications.
* **hash**: Optionnel, fournit un hash de l'item pour vérifier son intégrité et son authenticité.
* **item_type**: Catégorie ou type de l'item, tel que Process, Member, Payments, qui détermine son rôle et son utilisation dans le réseau.
* **name**: Nom ou description de l'item, offrant un moyen de le référencer ou de l'identifier de manière lisible.
* **pagination_number_per_request_pcd**: Détermine comment l'item est paginé ou divisé dans le contexte des Pcd, affectant la manière dont il est présenté ou accessible.
* **metadata**: Comprend MetadataContractPublic, MetadataRoleConfidential, et MetadataPrivate, encapsulant les attributs de l'item selon différents niveaux de confidentialité.
#### 5.2.1. Cas d'utilisation
Les items sont utilisés pour tout, depuis la représentation des participants et des ressources dans le système jusqu'à la structuration des contrats et des processus. Ils sont essentiels pour organiser et gérer efficacement les données et les interactions au sein du réseau 4NK.
### 5.3. MetaData - Gestion des Attributs d'Items
La structure MetaData joue un rôle crucial dans la définition des attributs et des caractéristiques des items, enrichissant leur définition et leur utilité au sein du système.
#### 5.3.1. Composition et Fonction
* **tag_list**, **zone_list**, **label_list**, **ref_list**, **data_list**: Collections d'étiquettes, zones, labels, références, et données associées à l'item, permettant une classification et une organisation détaillées.
* **amount**, **number**: Champs numériques pour représenter des quantités ou des valeurs associées à l'item, utilisés dans divers contextes comme le suivi des ressources ou la définition des conditions.
* **render_template_list**, **legal_text_list**: Fournissent des templates pour la présentation de l'item et des textes légaux associés, cruciaux pour la documentation et la conformité.
* **key_list**: Liste des clés de chiffrement ou d'autres clés cryptographiques associées à l'item, essentielles pour la sécurité et l'authentification.
#### 5.3.2. Cas d'utilisation
La richesse et la diversité des métadonnées permettent une personnalisation et une spécification précises des items, soutenant des processus complexes, des contrats détaillés, et des interactions sécurisées au sein du réseau.
## 6. Process
* **item**: Base de l'Process, liant les processus aux items spécifiques au sein du système.
* **item_process_public_attribute_group**: Groupe d'attributs publics associés à un processus, définissant les règles, les rôles et les conditions d'exécution du processus.
## 7. Exemples de Code
## 8. Todo
* [ ] Extraits de code illustrant l'utilisation des `Pcd` et `Prd` dans des scénarios réels.
* [ ] Diagrammes de séquences