import 'package:manager_api_new/api.dart'; import 'package:manager_app/client.dart'; /// Façade unique sur les deux jeux d'endpoints de parcours. /// /// Un parcours vit sous une `SectionParcours` ou sous une `SectionMap` (les /// sections d'événement passent aussi par la seconde). Les opérations sont /// identiques des deux côtés, seule la classe générée change : l'éditeur n'a /// pas à connaître ce détail. /// /// Il n'y a volontairement pas d'endpoint de question : les questions partent /// avec leur étape, `GuidedStep.FromDTO` les synchronise côté serveur. class GuidedPathApi { GuidedPathApi(this._client, {required this.isParcours}); final Client _client; final bool isParcours; SectionParcoursApi get _parcours => _client.sectionParcoursApi!; SectionMapApi get _map => _client.sectionMapApi!; Future createPath(String sectionId, GuidedPathDTO path) => isParcours ? _parcours.sectionParcoursCreateGuidedPath(sectionId, path) : _map.sectionMapCreateGuidedPath(sectionId, path); Future updatePath(GuidedPathDTO path) => isParcours ? _parcours.sectionParcoursUpdateGuidedPath(path) : _map.sectionMapUpdateGuidedPath(path); Future createStep(String pathId, GuidedStepDTO step) => isParcours ? _parcours.sectionParcoursCreateGuidedStep(pathId, step) : _map.sectionMapCreateGuidedStep(pathId, step); Future updateStep(GuidedStepDTO step) => isParcours ? _parcours.sectionParcoursUpdateGuidedStep(step) : _map.sectionMapUpdateGuidedStep(step); Future deleteStep(String stepId) => isParcours ? _parcours.sectionParcoursDeleteGuidedStep(stepId) : _map.sectionMapDeleteGuidedStep(stepId); }