Services (MultiServiceService)
Le module MultiServiceServiceModule permet de gérer les services (prestations) offerts par les entreprises ou professionnels. Chaque service peut avoir des champs personnalisés pour collecter des informations lors de la prise de rendez-vous.
Accès : client.app.multiService.service
Méthodes
create
Crée un nouveau service avec ses champs personnalisés.
Exemple
const response = await client.app.multiService.service.create({
appId: "app_id",
apiKey: "user_api_key",
name: "Coupe Homme",
description: "Coupe aux ciseaux et tondeuse",
basePrice: 1500,
categories: ["coiffure", "homme"],
fields: [
{
label: "Type de coupe",
type: "SELECT",
required: true,
options: [
{ label: "Classique", value: "classique", price: 0 },
{ label: "Dégradé", value: "degrade", price: 500 },
{ label: "Avec barbe", value: "barbe", price: 1000 }
]
},
{
label: "Commentaires",
type: "TEXT",
required: false,
maxLength: 500
}
]
});Le champ slug est généré automatiquement à partir du nom du service et est
unique par entreprise.
list
Liste les services disponibles.
Exemple
const response = await client.app.multiService.service.list({
appId: "app_id",
apiKey: "user_api_key"
});
// Parcourir les services
for (const service of response.data) {
console.log(`${service.name} - ${service.basePrice}€`);
console.log(`Champs: ${service.fields.length}`);
}get
Récupère les détails d’un service.
Exemple
const response = await client.app.multiService.service.get({
appId: "app_id",
apiKey: "user_api_key",
id: "service_id"
});
if (response.success) {
const service = response.data;
console.log(`Service: ${service.name}`);
console.log(`Prix de base: ${service.basePrice}`);
console.log(`Nombre de champs: ${service.fields.length}`);
}update
Met à jour un service existant.
Exemple
// Mise à jour simple (prix et description)
const response = await client.app.multiService.service.update({
appId: "app_id",
apiKey: "user_api_key",
id: "service_id",
companyId: "company_id",
basePrice: 2000,
description: "Nouvelle description"
});
// Mise à jour complète avec nouveaux champs
const response2 = await client.app.multiService.service.update({
appId: "app_id",
apiKey: "user_api_key",
id: "service_id",
companyId: "company_id",
name: "Coupe Homme Premium",
fields: [
{
label: "Type de prestation",
type: "SELECT",
required: true,
options: [
{ label: "Standard", value: "standard", price: 0 },
{ label: "Premium", value: "premium", price: 1000 }
]
}
]
});delete
Supprime un service.
Exemple
const response = await client.app.multiService.service.delete({
appId: "app_id",
apiKey: "user_api_key",
id: "service_id"
});
if (response.success) {
console.log("Service supprimé avec succès");
}Exemples avancés
Service avec calcul de prix dynamique
// Service de nettoyage avec prix basé sur la surface
const cleaningService = await client.app.multiService.service.create({
appId: "app_id",
apiKey: "user_api_key",
name: "Nettoyage à domicile",
basePrice: 5000, // Prix de base
fields: [
{
label: "Surface (m²)",
type: "NUMBER",
required: true,
min: 10,
max: 500,
multiplier: true, // Le prix sera multiplié par cette valeur
},
{
label: "Services additionnels",
type: "MULTIPLE_SELECT",
required: false,
options: [
{ label: "Vitres", value: "vitres", price: 2000 },
{ label: "Repassage", value: "repassage", price: 3000 },
{ label: "Four/Frigo", value: "electromenager", price: 1500 },
],
useSelect: true, // Pour configurer le UI d'une certaine maniere
},
],
});Service avec validation de champs
// Service médical avec validation stricte
const medicalService = await client.app.multiService.service.create({
appId: "app_id",
apiKey: "user_api_key",
name: "Consultation médicale",
basePrice: 15000,
fields: [
{
label: "Email de confirmation",
type: "EMAIL",
required: true,
},
{
label: "Téléphone",
type: "PHONE",
required: true,
},
{
label: "Date de naissance",
type: "DATE",
required: true,
},
{
label: "Numéro de sécurité sociale",
type: "TEXT",
required: true,
minLength: 13,
maxLength: 15,
regex: "^[0-9]{13,15}$",
},
],
});Gestion des erreurs
| Code erreur | Description |
|---|---|
service-not-found | Le service n’existe pas ou n’appartient pas à l’entreprise |
not-authorized | La clé API n’a pas les droits nécessaires |
app-not-found | L’application n’existe pas |
Last updated on