HOUSEKEEPING API v1.0

4U Housekeeping API

Documentation complète de l'API de gestion du ménage : tâches, checklists, notes de maintenance, statuts, équipes et superviseurs.

Base: /tasks
Référence: /housekeeping
Auth: x-api-key
Format: JSON
← Retour à la doc principale

Sommaire

🔐 Authentification

Clé API requise

Toutes les requêtes nécessitent une clé API valide envoyée via le header x-api-key.

curl -H "x-api-key: YOUR_API_KEY" https://listings.4u-realestate.org/tasks

🔄 Cycle de vie d'une tâche

pending checked_out supervisor_check_in cleaning cleaning_done windows_cleaned supervisor_check_out completed

À tout moment : issue_reported cancelled

Statuts disponibles

pending
En attente
checked_out
Client parti
supervisor_check_in
Inspection avant
cleaning
Nettoyage en cours
cleaning_done
Nettoyage terminé
windows_cleaned
Vitres nettoyées
supervisor_check_out
Inspection finale
completed
Terminé
issue_reported
Problème signalé
cancelled
Annulé
currentStep : cleaning, inventory, maintenance, building, cleaning_intermediate. priority : low, medium, high.

📡 Endpoints tâches

GET /tasks Lister les tâches (filtres + pagination)

Retourne les tâches de planning. Les tâches "standalone" (issues/maintenance hors planning) sont exclues par défaut.

QUERY PARAMS

ParamTypeDescription
dateYYYY-MM-DDTâches d'un jour précis
startDateYYYY-MM-DDDébut de plage
endDateYYYY-MM-DDFin de plage
lotIdObjectIdFiltrer par lot
statusstringUn ou plusieurs (séparés par virgule)
prioritystringlow / medium / high
currentStepstringcleaning, inventory, maintenance...
includeStandalonebooleantrue pour inclure les standalone
lightbooleantrue (défaut) exclut photos/videos
pagenumberPage (défaut 1)
limitnumberPar page (défaut 100, max 500)

Exemple

curl -H "x-api-key: YOUR_KEY" \
  "https://listings.4u-realestate.org/tasks?date=2026-06-20&status=pending,cleaning"
GET /tasks/stats Statistiques par statut

Compte total, completed, pending, inProgress et détail par statut. Accepte date / startDate / endDate.

Exemple

curl -H "x-api-key: YOUR_KEY" \
  "https://listings.4u-realestate.org/tasks/stats?date=2026-06-20"
GET /tasks/issues Tâches avec problème

Tâches en issue_reported ou avec un item de checklist en issue. Filtre optionnel lotId.

GET /tasks/maintenance-notes Toutes les notes de maintenance

Agrège les notes de maintenance de toutes les tâches. Filtres : lotId, status (pending / in_progress / resolved).

GET /tasks/:id Détail complet (avec photos/videos)

Retourne la tâche complète avec lot, équipe de ménage et superviseur peuplés.

Exemple

curl -H "x-api-key: YOUR_KEY" \
  "https://listings.4u-realestate.org/tasks/665f1a2b3c4d5e6f7a8b9c0d"
POST /tasks Créer une tâche de planning

BODY

ChampTypeDescription
lotIdrequisObjectIdLot concerné
scheduledDaterequisDateDate prévue
scheduledTimestringHeure (défaut 10:00)
prioritystringlow / medium / high
cleaningTeamObjectIdÉquipe assignée
assignedSupervisorIdObjectIdSuperviseur
notesstringNotes libres

Exemple

curl -X POST -H "x-api-key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"lotId":"665f...","scheduledDate":"2026-06-21","priority":"high"}' \
  "https://listings.4u-realestate.org/tasks"
PUT /tasks/:id Modifier une tâche (champs partiels)

Met à jour n'importe quel champ (scheduledDate, priority, cleaningTeam, assignedSupervisorId, notes...).

PATCH /tasks/:id/status Changer le statut

BODY

ChampTypeDescription
statusrequisstringNouveau statut
currentStepstringÉtape optionnelle
Quand status=completed, completedAt est rempli automatiquement.

Exemple

curl -X PATCH -H "x-api-key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"status":"cleaning"}' \
  "https://listings.4u-realestate.org/tasks/665f.../status"
POST /tasks/:id/checklist Ajouter un item de checklist

BODY

ChampTypeDescription
labelrequisstringLibellé
steprequisstringcleaning / inventory / maintenance / building
descriptionstringDétail
categorystringCatégorie
remarkstringRemarque
photosstring[]URLs de photos
PATCH /tasks/:id/checklist/:itemId Mettre à jour un item

Champs modifiables : label, description, category, status (pending/done/validated/issue), remark, photos, order. Si status=issue, la tâche passe en issue_reported.

POST /tasks/:id/maintenance-notes Ajouter une note de maintenance

BODY

ChampTypeDescription
descriptionrequisstringDescription du problème
prioritystringlow / medium / high
categorystringplumbing, electrical, appliance, furniture, paint, cleaning, other
photosstring[]URLs de photos
POST /tasks/maintenance Note de maintenance rapide par lot

Crée (ou réutilise) une tâche standalone pour le lot et y ajoute une note. N'apparaît pas dans le planning.

BODY

ChampTypeDescription
lotIdrequisObjectIdLot concerné
descriptionrequisstringDescription
prioritystringlow / medium / high
categorystringCatégorie
scheduledDateDateDate (défaut aujourd'hui)
photosstring[]URLs de photos
POST /tasks/missing-item Signaler un article manquant / problème

BODY

ChampTypeDescription
lotIdrequisObjectIdLot concerné
labelrequisstringArticle / problème
descriptionstringDétail
stepstringDéfaut inventory
remarkstringRemarque
scheduledDateDateDate
photosstring[]URLs de photos
DELETE /tasks/:id Supprimer une tâche

Suppression définitive de la tâche.

👥 Équipes & superviseurs

GET /housekeeping/cleaning-teams Lister les équipes de ménage

Retourne les équipes (name, members, phone, isActive) pour assignation.

GET /housekeeping/supervisors Lister les superviseurs

Retourne les superviseurs housekeeping pour assignation.

GET /lots Lister les lots (id, name, lotNo...)

Utile pour récupérer les lotId nécessaires à la création de tâches.

📋 Champs d'une tâche

ChampTypeDescription
_idObjectIdIdentifiant unique
lotIdobjectLot peuplé (name, lotNo, lodgifyId)
bookingIdObjectIdRéservation liée (optionnel)
scheduledDateDateDate prévue
scheduledTimestringHeure prévue
statusstringStatut courant
currentStepstringÉtape en cours
prioritystringlow / medium / high
cleaningTeamobjectÉquipe assignée
assignedSupervisorIdobjectSuperviseur
checklistarrayItems {label, step, status, remark, photos}
maintenanceNotesarrayNotes {description, priority, category, status}
conditionReportobjectRapport d'état (light: exclu)
photos / videosarrayMédias (light: exclus)
notesstringNotes libres
completedAtDateDate de fin
isStandalonebooleanHors planning (issue/maintenance)
isManual / isAutoGeneratedbooleanOrigine de la tâche

⚠️ Codes d'erreur

CodeSignificationSolution
400Données invalides ou ID malforméVérifier les champs requis
401Clé API manquante ou invalideAjouter un header x-api-key valide
403Clé API désactivéeContacter l'admin
404Tâche ou lot non trouvéVérifier l'ID
429Rate limit dépasséAttendre et réessayer
500Erreur serveurContacter contact@4u-realestate.org