Module - Utilisateurs
Le module utilisateurs gère l'ensemble des utilisateurs de la plateforme, avec différents types d'utilisateurs ayant des rôles et permissions spécifiques.
Types d'utilisateurs
-
CUSTOMER: Client cherchant à acheter ou louer un bien OWNER: Propriétaire qui propose des biensADMIN: Administrateur de la plateforme
Endpoints
GET
/users
Récupérer la liste des utilisateurs (réservé aux administrateurs)
Paramètres de requête
-
userType: type d'utilisateur (CUSTOMER, OWNER, ADMIN) email: filtrer par email
GET
/users/:id
Récupérer les détails d'un utilisateur spécifique
Exemple de réponse
{
"id": "cm2y6lhu50000fspuentp5fx2",
"name": "Jean Dupont",
"email": "jean.dupont@example.com",
"phone": "+33600000000",
"userType": "OWNER",
"image": "https://example.com/avatar.jpg",
"createdAt": "2023-09-15T14:30:00Z",
"updatedAt": "2023-09-15T14:30:00Z",
"owner": {
"id": "own123",
"properties": [
{
"id": "cm5p90ics0001v2zzx604cd5p",
"title": "Villa moderne avec piscine"
}
]
}
}
POST
/users/register
Créer un nouveau compte utilisateur
Corps de la requête
{
"name": "Jean Dupont",
"email": "jean.dupont@example.com",
"password": "motdepasse123",
"phone": "+33600000000",
"userType": "OWNER"
}
POST
/users/login
Connecter un utilisateur
Corps de la requête
{
"email": "jean.dupont@example.com",
"password": "motdepasse123"
}
PATCH
/users/:id
Mettre à jour les informations d'un utilisateur
DELETE
/users/:id
Supprimer un compte utilisateur
Modèle de données
Voici la structure du modèle User :
model User {
id String @id @default(cuid())
name String?
email String @unique
emailVerified DateTime?
image String?
hash String?
salt String?
phone String?
userType UserType? @default(CUSTOMER)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
accounts Account[]
sessions Session[]
owner Owner?
customer Customer?
admin Admin?
favorites Favorite[]
notifications Notification[]
appointments Appointment[]
}
Énumération UserType
enum UserType {
CUSTOMER
OWNER
ADMIN
}