Modèles de Champs (FieldTemplateApi)
Le module FieldTemplateApi permet de gérer les modèles de champs réutilisables pour vos services multi-service. Les modèles définissent la structure et les contraintes de validation des données collectées lors de la création de rendez-vous.
Accès : client.multiService.fieldTemplate
Méthodes
list
Liste tous les modèles de champs de l’application.
Exemple
final response = await client.multiService.fieldTemplate.list(
ListFieldTemplatesParams(
appId: 'app_id',
apiKey: 'user_api_key',
),
);
// Afficher les modèles disponibles
for (final template in response.data) {
print('${template.label} (${template.type.name})');
}create
Crée un nouveau modèle de champ.
Exemple
// Créer un modèle de type SELECT avec options
final response = await client.multiService.fieldTemplate.create(
CreateFieldTemplateParams(
appId: 'app_id',
apiKey: 'user_api_key',
ref: 'delivery_zone',
label: 'Zone de livraison',
description: 'Sélectionnez votre zone',
type: FieldType.select,
required: true,
options: [
FieldOptionInput(
label: 'Zone 1 - Centre',
value: 'zone_1',
price: 1000,
),
FieldOptionInput(
label: 'Zone 2 - Périphérie',
value: 'zone_2',
price: 2000,
),
],
),
);
print('Modèle créé: ${response.data.id}');// Créer un modèle de type NUMBER avec contraintes
final response = await client.multiService.fieldTemplate.create(
CreateFieldTemplateParams(
appId: 'app_id',
apiKey: 'user_api_key',
ref: 'quantity',
label: 'Quantité',
type: FieldType.number,
min: 1,
max: 50,
required: true,
multiplier: true, // Le prix sera multiplié par cette valeur
),
);update
Met à jour un modèle de champ existant.
Exemple
final response = await client.multiService.fieldTemplate.update(
UpdateFieldTemplateParams(
appId: 'app_id',
apiKey: 'user_api_key',
id: 'template_789',
label: 'Zone de livraison (mise à jour)',
options: [
FieldOptionInput(label: 'Zone 1 - Centre-ville', value: 'zone_1', price: 1500),
FieldOptionInput(label: 'Zone 2 - Banlieue', value: 'zone_2', price: 2500),
FieldOptionInput(label: 'Zone 3 - Éloignée', value: 'zone_3', price: 4000),
],
),
);
print('Modèle mis à jour: ${response.data.label}');delete
Supprime un modèle de champ.
Exemple
final response = await client.multiService.fieldTemplate.delete(
DeleteFieldTemplateParams(
appId: 'app_id',
apiKey: 'user_api_key',
id: 'template_789',
),
);
print('Modèle supprimé');La suppression d’un modèle ne supprime pas les champs des services qui l’utilisent.
Types de champs
| Enum | Valeur JSON | Description |
|---|---|---|
FieldType.text | TEXT | Texte libre |
FieldType.number | NUMBER | Valeur numérique |
FieldType.select | SELECT | Liste à choix unique |
FieldType.multipleSelect | MULTIPLE_SELECT | Liste à choix multiples |
FieldType.email | EMAIL | Adresse email |
FieldType.phone | PHONE | Numéro de téléphone |
FieldType.date | DATE | Date |
FieldType.address | ADDRESS | Adresse postale |
Multiplicateur de prix
Lorsque multiplier: true, la valeur du champ multiplie le prix de base du service :
Prix total = Prix de base × Valeur du champ multiplicateur + Somme des suppléments d'optionsGestion des erreurs
| Code erreur | Description |
|---|---|
template-not-found | Le modèle n’existe pas ou n’appartient pas à l’application |
not-authorized | La clé API n’a pas les droits nécessaires |
invalid-request | Paramètres manquants ou invalides |
Last updated on