contactForm top-level property

Map<String, dynamic> contactForm
getter/setter pair

Implementation

Map<String, dynamic> contactForm = {
  "formType": "PUBLIC_CONTACT",
  "currentStepIndex": 0,
  "formTitle": "Contacte-nous",
  "formSubTitle": "Une question, une remarque, ou simplement envie de nous écrire ? Remplis ce formulaire.",
  "theme": {
    "appBackgroundImage": "https://images.pexels.com/photos/2471235/pexels-photo-2471235.jpeg", // optionnel
    "quizHeaderImage": "https://images.pexels.com/photos/2471234/pexels-photo-2471234.jpeg", // optionnel
    "maxQuizHeight": 650,
    "maxQuizWidth": 660,
  },
  "steps": [
    {
      "stepKey": "contact_info",
      "stepLabel": "Informations",
      "questions": [
        {
          "questionKey": "name",
          "label": "Nom complet",
          "type": "text",
          "params": {"mandatory": true, "placeholder": "Ton nom ou ton pseudo"}
        },
        {
          "questionKey": "email",
          "label": "Adresse e-mail",
          "type": "email",
          "params": {"mandatory": true, "placeholder": "exemple@mail.com"}
        },
        {
          "questionKey": "subject",
          "label": "Sujet du message",
          "type": "text",
          "params": {"mandatory": true, "placeholder": "Ex : Problème technique, suggestion, etc."}
        }
      ]
    },
    {
      "stepKey": "message",
      "stepLabel": "Ton message",
      "questions": [
        {
          "questionKey": "message",
          "label": "Message",
          "type": "textarea",
          "params": {"mandatory": true, "placeholder": "Écris ton message ici"}
        },
        {
          "questionKey": "attachment",
          "label": "Joindre un fichier (optionnel)",
          "type": "file",
          "params": {
            "mandatory": false,
            "accept": [".jpg", ".png", ".pdf", ".docx"],
            "maxFileSizeMB": 5
          }
        },
        {
          "questionKey": "consent",
          "label": "J'accepte que mes données soient utilisées pour être recontacté",
          "type": "boolean",
          "params": {"mandatory": true}
        }
      ]
    },
    {
      "stepKey": "success",
      "stepLabel": "Merci !",
      "questions": [
        {
          "questionKey": "thank_you",
          "label": "🎉 Merci pour ton message ! Nous reviendrons vers toi rapidement.",
          "type": "info",
          "params": {"mandatory": false}
        }
      ]
    }
  ]
};