Rendez-vous (Dart)
Le module MultiServiceAppointmentModule permet de gérer les rendez-vous clients.
Accès : applite.app.multiService.appointment
Méthodes
list
final response = await applite.app.multiService.appointment.list(
ListAppointmentsParams(apiKey: 'api_key', appId: 'app_id'),
);
for (final apt in response.data) {
print('${apt.serviceName} - ${apt.status} - ${apt.date}');
}create
final response = await applite.app.multiService.appointment.create(
CreateAppointmentParams(
apiKey: 'api_key',
appId: 'app_id',
serviceId: 'service_id',
date: '2024-01-25T14:00:00Z',
totalPrice: 1500,
agentId: 'agent_id',
customerId: 'customer_id',
filledFields: {
'notes': 'Première visite',
},
commune: 'Cocody',
),
);updateStatus
// Confirmer le rendez-vous
await applite.app.multiService.appointment.updateStatus(
UpdateAppointmentStatusParams(
apiKey: 'api_key',
appId: 'app_id',
id: 'appointment_id',
status: AppointmentStatus.confirmed,
),
);
// Démarrer le service
await applite.app.multiService.appointment.updateStatus(
UpdateAppointmentStatusParams(
apiKey: 'api_key',
appId: 'app_id',
id: 'appointment_id',
status: AppointmentStatus.inProgress,
),
);
// Terminer le service
await applite.app.multiService.appointment.updateStatus(
UpdateAppointmentStatusParams(
apiKey: 'api_key',
appId: 'app_id',
id: 'appointment_id',
status: AppointmentStatus.completed,
),
);Types
AppointmentStatus
enum AppointmentStatus {
pending, // En attente de confirmation
confirmed, // Confirmé
inProgress, // En cours
completed, // Terminé
cancelled, // Annulé
}Workflow des statuts
pending → confirmed → inProgress → completed
↓ ↓ ↓
└─────────┴───────────┴──→ cancelledUn rendez-vous completed ou cancelled ne peut plus être modifié.
Exemple complet
// Workflow complet de rendez-vous
try {
// 1. Créer le rendez-vous
final appointment = await applite.app.multiService.appointment.create(
CreateAppointmentParams(
apiKey: 'api_key',
appId: 'app_id',
serviceId: 'service_id',
customerId: 'customer_id',
date: DateTime.now().add(Duration(days: 1)).toIso8601String(),
totalPrice: 1500,
commune: 'Cocody',
filledFields: {},
),
);
print('RDV créé: ${appointment.data.id}');
// 2. Confirmer
await applite.app.multiService.appointment.updateStatus(
UpdateAppointmentStatusParams(
apiKey: 'api_key',
appId: 'app_id',
id: appointment.data.id,
status: AppointmentStatus.confirmed,
),
);
print('RDV confirmé');
// 3. Démarrer
await applite.app.multiService.appointment.updateStatus(
UpdateAppointmentStatusParams(
apiKey: 'api_key',
appId: 'app_id',
id: appointment.data.id,
status: AppointmentStatus.inProgress,
),
);
print('Service en cours');
// 4. Terminer
await applite.app.multiService.appointment.updateStatus(
UpdateAppointmentStatusParams(
apiKey: 'api_key',
appId: 'app_id',
id: appointment.data.id,
status: AppointmentStatus.completed,
),
);
print('Service terminé');
} on ApiException catch (e) {
print('Erreur: ${e.message}');
}Last updated on