# Formulaires

Les administrateurs du tenant peuvent construire des formulaires dynamiques à partir d'attributs préconfigurés (texte, listes déroulantes, cases à cocher, fichiers, etc.) afin de recueillir des réponses structurées.

Les formulaires ont un état (draft, active, inactive), un slug, des validations de champs obligatoires et un historique des réponses. Seuls les formulaires active acceptent les réponses.

## Objet formulaire

Les propriétés comprennent id, title, description, status, slug, metadata, attributes, created_at et updated_at. Chaque attribut lié comporte id, form_id, attribute_id, required, order_by, metadata et attribute (définition du champ, contraintes et options).

## Objet réponse

Une réponse contient id, submission_ref, form_id, user_id (0 pour une réponse anonyme), user (profil succinct), ip_address, user_agent, metadata, attribute_values, created_at et updated_at. Chaque valeur inclut id, submission_id, form_id, attribute_id, values_ (chaînes choisies ou saisies) et une définition d'attribut résumée.
