Module - Favoris

Le module de favoris permet aux utilisateurs de sauvegarder leurs propriétés préférées pour y accéder facilement ultérieurement.

Endpoints

GET
/favorites

Récupérer la liste des favoris d'un utilisateur

Paramètres de requête

  • userId : ID de l'utilisateur

Exemple de réponse

[
  {
    "id": "fav123",
    "createdAt": "2023-09-15T14:30:00Z",
    "property": {
      "id": "cm5p90ics0001v2zzx604cd5p",
      "title": "Villa moderne avec piscine",
      "price": 1200000,
      "transactionType": "SALE",
      "status": "AVAILABLE",
      "images": [
        {
          "id": "img123",
          "url": "https://example.com/image1.jpg"
        }
      ]
    },
    "userId": "cm2y6lhu50000fspuentp5fx2"
  }
]
POST
/favorites

Ajouter une propriété aux favoris

Corps de la requête

{
  "propertyId": "cm5p90ics0001v2zzx604cd5p",
  "userId": "cm2y6lhu50000fspuentp5fx2"
}
DELETE
/favorites/:id

Supprimer un favori

DELETE
/favorites

Supprimer un favori en spécifiant l'utilisateur et la propriété

Paramètres de requête

  • propertyId : ID de la propriété
  • userId : ID de l'utilisateur

Modèle de données

model Favorite {
  id                String    @id @default(cuid())
  propertyId        String
  property          Property  @relation(fields: [propertyId], references: [id], onDelete: Cascade)
  userId            String
  user              User      @relation(fields: [userId], references: [id], onDelete: Cascade)
  createdAt         DateTime  @default(now())

  @@unique([propertyId, userId])
}