BERKIOSDocs
Studio

Actions de données SQLite — schéma 1.3

Le runtime Flutter générique implémente quatre types d'action, dans buttonAction ou dans events[].actions :

TypeChampsEffet
data-createmodelId, valuesCrée un enregistrement et génère un identifiant local.
data-readmodelId, targetWidgetId facultatifLit les enregistrements du modèle ; si la cible est indiquée, affiche le résultat JSON dans ce composant.
data-updatemodelId, recordId, valuesFusionne les champs fournis avec l'enregistrement existant.
data-deletemodelId, recordIdSupprime l'enregistrement ciblé.

values est un objet JSON clé/valeur. Les valeurs textuelles peuvent contenir {{nomDuComposant}} ; le runtime remplace ce marqueur par la valeur du contrôle dont le champ name correspond. Les actions signalent les erreurs de stockage ou les identifiants obligatoires manquants via un message dans l'interface.

Dans le Studio desktop Electron (depuis la v0.7.140), chaque projet a sa propre base SQLite et chaque modèle une table typée (voir data-core/README.md). La table générique berkios_records (model_id, record_id, payload JSON, updated_at) reste utilisée par le runtime Flutter généré et par la coque Tauri ; elle est reprise automatiquement par le Studio Electron à la première synchronisation. Sur Windows, macOS et Linux, elle utilise SQLite FFI ; sur Android et iOS, elle utilise SQLite natif via sqflite.

Limites actuelles

  • Tables typées générées à partir de dataModels[].fields : Studio desktop Electron uniquement. Le runtime Flutter généré et la coque Tauri utilisent encore la table générique JSON.
  • Les valeurs de recordId doivent être disponibles explicitement pour les actions de mise à jour et suppression ; la sélection visuelle d'un enregistrement n'est pas encore fournie automatiquement.
  • La liaison bidirectionnelle automatique entre modèles et contrôles n'est pas encore implémentée.
  • Le générateur spécialisé de gestion de stock garde son état en mémoire.
  • Les builds Flutter natifs doivent être exécutés sur une machine avec le SDK Flutter et les outils de compilation correspondants.