Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.chataigne.ai/llms.txt

Use this file to discover all available pages before exploring further.

La documentation des adapters est cruciale pour comprendre leur portée et leurs contraintes. Nous utilisons TSDoc pour documenter directement dans le code.

Structure de la Documentation

1

Classe Adapter

/**
 * Adapter pour transformer les commandes entre notre domaine et Hubrise.
 *
 * Cet adapter gère la transformation des commandes dans le contexte de l'intégration
 * avec Hubrise. Il ne crée pas de relations (customer, items) mais les référence
 * uniquement par leur ID.
 *
 * @example
 * ```typescript
 * // Transformation vers Hubrise
 * const hubriseOrder = HubriseOrderAdapter.toHubriseOrder(domainOrder);
 *
 * // Transformation depuis Hubrise
 * const domainOrder = HubriseOrderAdapter.toDomainOrder(hubriseOrder);
 * ```
 */
export class HubriseOrderAdapter {
  // ... implementation
}
2

Méthodes de Transformation

/**
 * Transforme une commande de notre domaine vers le format Hubrise.
 *
 * @param order - La commande de notre domaine
 * @returns La commande au format Hubrise
 * @throws {ValidationError} Si la commande n'a pas d'items ou de customer
 *
 * @remarks
 * - Ne crée pas de relations (customer, items)
 * - Référence les relations par leur ID
 * - Valide la présence d'au moins un item
 *
 * @example
 * ```typescript
 * const hubriseOrder = HubriseOrderAdapter.toHubriseOrder({
 *   id: "123",
 *   customerId: "456",
 *   items: [{ id: "789", quantity: 1 }]
 * });
 * ```
 */
static toHubriseOrder(order: Order): HubriseOrder {
  // ... implementation
}

/**
 * Transforme une commande du format Hubrise vers notre domaine.
 *
 * @param order - La commande au format Hubrise
 * @returns La commande de notre domaine
 * @throws {ValidationError} Si les données Hubrise sont invalides
 *
 * @remarks
 * - Ne crée pas de relations
 * - Conserve les IDs des relations
 * - Valide le format des données Hubrise
 */
static toDomainOrder(order: HubriseOrder): Order {
  // ... implementation
}

Points à Documenter

1

Portée de l'Adapter

• Types transformés• Contexte d’utilisation• Opérations supportées
2

Contraintes

• Champs obligatoires• Champs optionnels• Validations effectuées
3

Comportements

• Gestion des relations• Valeurs par défaut• Gestion des erreurs

Bonnes Pratiques

1

Documentation de la Classe

• Description générale• Contexte d’utilisation• Exemple d’utilisation basique
2

Documentation des Méthodes

• Description de la transformation• Paramètres et types• Type de retour• Exceptions possibles• Exemples concrets
3

Remarques Importantes

• Contraintes spécifiques• Comportements particuliers• Limitations connues

Exemple Complet

/**
 * Adapter pour transformer les commandes entre notre domaine et Hubrise.
 *
 * Cet adapter gère la transformation des commandes dans le contexte de l'intégration
 * avec Hubrise. Il ne crée pas de relations (customer, items) mais les référence
 * uniquement par leur ID.
 *
 * @example
 * ```typescript
 * // Transformation vers Hubrise
 * const hubriseOrder = HubriseOrderAdapter.toHubriseOrder(domainOrder);
 *
 * // Transformation depuis Hubrise
 * const domainOrder = HubriseOrderAdapter.toDomainOrder(hubriseOrder);
 * ```
 */
export class HubriseOrderAdapter {
  /**
   * Transforme une commande de notre domaine vers le format Hubrise.
   *
   * @param order - La commande de notre domaine
   * @returns La commande au format Hubrise
   * @throws {ValidationError} Si la commande n'a pas d'items ou de customer
   *
   * @remarks
   * - Ne crée pas de relations (customer, items)
   * - Référence les relations par leur ID
   * - Valide la présence d'au moins un item
   *
   * @example
   * ```typescript
   * const hubriseOrder = HubriseOrderAdapter.toHubriseOrder({
   *   id: "123",
   *   customerId: "456",
   *   items: [{ id: "789", quantity: 1 }]
   * });
   * ```
   */
  static toHubriseOrder(order: Order): HubriseOrder {
    // ... implementation
  }

  /**
   * Transforme une commande du format Hubrise vers notre domaine.
   *
   * @param order - La commande au format Hubrise
   * @returns La commande de notre domaine
   * @throws {ValidationError} Si les données Hubrise sont invalides
   *
   * @remarks
   * - Ne crée pas de relations
   * - Conserve les IDs des relations
   * - Valide le format des données Hubrise
   */
  static toDomainOrder(order: HubriseOrder): Order {
    // ... implementation
  }
}