Module - Rendez-vous
Le module de rendez-vous permet de gérer les visites pour les propriétés immobilières. Il facilite la prise de rendez-vous entre les clients et les propriétaires, avec possibilité d'intervention d'un administrateur.
Statuts des rendez-vous
PENDING: En attente de confirmationCONFIRMED: ConfirméCANCELLED: AnnuléCOMPLETED: Terminé
Endpoints
GET
/appointments
Récupérer la liste des rendez-vous avec filtrage possible
Paramètres de requête
userId: ID de l'utilisateur (client)ownerId: ID du propriétairepropertyId: ID de la propriétéstatus: Statut du rendez-vousdate: Date du rendez-vous
Exemple de réponse
[
{
"id": "apt123",
"date": "2023-10-15T14:00:00Z",
"duration": 30,
"status": "CONFIRMED",
"notes": "Rdv pour visite villa moderne",
"property": {
"id": "cm5p90ics0001v2zzx604cd5p",
"title": "Villa moderne avec piscine"
},
"user": {
"id": "cm2y6lhu50000fspuentp5fx2",
"name": "Jean Dupont"
},
"owner": {
"id": "own123",
"userId": "cm2y6lhu50000fspuentp5fx2"
}
}
]
POST
/appointments
Créer un nouveau rendez-vous
Corps de la requête
{
"date": "2023-10-15T14:00:00Z",
"duration": 30,
"propertyId": "cm5p90ics0001v2zzx604cd5p",
"userId": "cm2y6lhu50000fspuentp5fx2",
"ownerId": "own123",
"notes": "Rdv pour visite villa moderne"
}
PATCH
/appointments/:id
Mettre à jour un rendez-vous (modifier la date, le statut, etc.)
Corps de la requête
{
"status": "CONFIRMED",
"date": "2023-10-16T15:00:00Z"
}
DELETE
/appointments/:id
Annuler un rendez-vous
Modèle de données
model Appointment {
id String @id @default(cuid())
date DateTime
duration Int? @default(30) // en minutes
status AppointmentStatus @default(PENDING)
notes String?
propertyId String
property Property @relation(fields: [propertyId], references: [id], onDelete: Cascade)
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
ownerId String
owner Owner @relation(fields: [ownerId], references: [id], onDelete: Cascade)
adminId String?
admin Admin? @relation(fields: [adminId], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
Énumération AppointmentStatus
enum AppointmentStatus {
PENDING
CONFIRMED
CANCELLED
COMPLETED
}