# Commentaires

Le système de commentaires permet les discussions interactives, les questions-réponses des utilisateurs et les fils de retour d’expérience sur les entités de la place de marché (par exemple, les questions-réponses ou commentaires d’annonce et les actualités de la plateforme).

Il prend en charge les réponses imbriquées, les réactions J’aime/Je n’aime pas, les filtres de modération et les notifications automatiques par e-mail pour les échanges entre vendeurs et acheteurs.

**Exemple d’objet commentaire**

```json
{
  "id": 105,
  "tenant_id": "1791",
  "account_id": null,
  "user_id": "11474",
  "reference_id": 42,
  "reference_type": "listings_qa",
  "parent": 0,
  "message": "Is this product available for immediate shipping?",
  "active": true,
  "edited": false,
  "likes": 3,
  "unlikes": 0,
  "liked": false,
  "unliked": false,
  "created_at": "2026-08-08T12:00:00.000Z",
  "updated_at": "2026-08-08T12:00:00.000Z",
  "user": {
    "id": "11474",
    "first_name": "Thahaseen",
    "last_name": "Buyer",
    "profile_pic": "https://example.com/avatar.jpg"
  },
  "replies": [
    {
      "id": 108,
      "tenant_id": "1791",
      "account_id": 12,
      "user_id": "9023",
      "reference_id": 42,
      "reference_type": "listings_qa",
      "parent": 105,
      "message": "Yes, we ship within 24 business hours!",
      "active": true,
      "edited": false,
      "likes": 1,
      "unlikes": 0,
      "liked": false,
      "unliked": false,
      "created_at": "2026-08-08T12:15:00.000Z",
      "updated_at": "2026-08-08T12:15:00.000Z",
      "user": {
        "id": "9023",
        "first_name": "Tan",
        "last_name": "Shoppe",
        "profile_pic": "https://example.com/seller-avatar.jpg"
      }
    }
  ]
}
```

## Objet commentaire

| **attribut** | **type** | **description** |
| --- | --- | --- |
| `id` | `integer` | Identifiant unique du commentaire. |
| `reference_id` | `integer` | Identifiant de la ressource commentée (par exemple `listing_id`). |
| `reference_type` | `string` | Identifiant personnalisé du périmètre de l’entité (par exemple `listings_qa`, `listings_comments`, `updates`). |
| `parent` | `integer` | Identifiant du commentaire parent pour les réponses imbriquées (`0` pour un commentaire racine). |
| `message` | `string` | Texte du commentaire. |
| `user_id` | `string` | Identifiant unique de l’auteur. |
| `account_id` | `integer` | Identifiant facultatif du compte au nom duquel le commentaire est publié. |
| `active` | `boolean` | Indique si le commentaire est approuvé et visible publiquement. |
| `edited` | `boolean` | Indique si le commentaire a été modifié après sa publication. |
| `likes` | `integer` | Nombre total de réactions positives. |
| `unlikes` | `integer` | Nombre total de réactions négatives. |
| `liked` | `boolean` | Indique si l’utilisateur ayant effectué la requête a aimé ce commentaire. |
| `unliked` | `boolean` | Indique si l’utilisateur ayant effectué la requête n’a pas aimé ce commentaire. |
| `user` | `CommentUser` | Résumé du profil de l’auteur (`id`, `first_name`, `last_name`, `profile_pic`). |
| `replies` | `array<Comment>` | Tableau imbriqué des réponses au commentaire. |
| `created_at` | `string` | Horodatage ISO 8601 de publication du commentaire. |
| `updated_at` | `string` | Horodatage ISO 8601 de la dernière modification du commentaire. |
