Aller au contenu

app.variable_dictionnaire

Dictionnaire de données (AM-09, P5) : variables qu’une règle a le droit de lire, avec leur type, leur unité et leur disponibilité hors ligne. Généré depuis les manifestes des modules et, plus tard, les packs publiés.

Name Type Default Nullable Children Parents Comment
id uuid app.uuid_v7() false Identifiant stable (UUID v7).
nom text false Nom pointé de la variable, lu par les conditions (reception.quantite_g).
type text false Type : entier, texte, booléen, liste de textes, table texte → texte. Jamais de décimal.
unite text ‘’::text false Unité de la valeur (g, cp…) ; vide pour un texte ou un booléen.
origine text false Origine : noyau (code), pack (mesure déclarée par une étape), indicateur (calcul du noyau).
hors_ligne boolean false Vrai si la variable est disponible sur le téléphone ; sinon la ligne qui la lit est évaluée au serveur (AM-10).
module_code text true app.module Module qui déclare la variable ; exclusif de pack_version_id.
pack_version_id uuid true app.pack_version Version de pack qui déclare la variable ; exclusif de module_code.
cree_le timestamp with time zone now() false Date de création de la ligne.
modifie_le timestamp with time zone now() false Date de dernière modification (par migration seulement).
Name Type Definition
variable_dictionnaire_check CHECK CHECK (((module_code IS NULL) <> (pack_version_id IS NULL)))
variable_dictionnaire_nom_check CHECK CHECK ((nom ~ ‘^[a-z][a-z0-9_](.[a-z][a-z0-9_])*$’::text))
variable_dictionnaire_origine_check CHECK CHECK ((origine = ANY (ARRAY[‘noyau’::text, ‘pack’::text, ‘indicateur’::text])))
variable_dictionnaire_type_check CHECK CHECK ((type = ANY (ARRAY[‘entier’::text, ‘texte’::text, ‘booleen’::text, ‘liste_texte’::text, ‘table_texte’::text])))
variable_dictionnaire_pack_version_id_fkey FOREIGN KEY FOREIGN KEY (pack_version_id) REFERENCES app.pack_version(id)
variable_dictionnaire_module_code_fkey FOREIGN KEY FOREIGN KEY (module_code) REFERENCES app.module(code)
variable_dictionnaire_pkey PRIMARY KEY PRIMARY KEY (id)
variable_dictionnaire_nom_key UNIQUE UNIQUE (nom)
Name Definition
variable_dictionnaire_pkey CREATE UNIQUE INDEX variable_dictionnaire_pkey ON app.variable_dictionnaire USING btree (id)
variable_dictionnaire_nom_key CREATE UNIQUE INDEX variable_dictionnaire_nom_key ON app.variable_dictionnaire USING btree (nom)
Name Definition
journal CREATE TRIGGER journal AFTER INSERT OR DELETE OR UPDATE ON app.variable_dictionnaire FOR EACH ROW EXECUTE FUNCTION journal.tg_journaliser()
modifie_le CREATE TRIGGER modifie_le BEFORE UPDATE ON app.variable_dictionnaire FOR EACH ROW EXECUTE FUNCTION app.tg_modifie_le()
erDiagram

"app.variable_dictionnaire" }o--o| "app.module" : "FOREIGN KEY (module_code) REFERENCES app.module(code)"
"app.variable_dictionnaire" }o--o| "app.pack_version" : "FOREIGN KEY (pack_version_id) REFERENCES app.pack_version(id)"

"app.variable_dictionnaire" {
  uuid id "Identifiant stable (UUID v7)."
  text nom "Nom pointé de la variable, lu par les conditions (reception.quantite_g)."
  text type "Type : entier, texte, booléen, liste de textes, table texte → texte. Jamais de décimal."
  text unite "Unité de la valeur (g, cp…) ; vide pour un texte ou un booléen."
  text origine "Origine : noyau (code), pack (mesure déclarée par une étape), indicateur (calcul du noyau)."
  boolean hors_ligne "Vrai si la variable est disponible sur le téléphone ; sinon la ligne qui la lit est évaluée au serveur (AM-10)."
  text module_code FK "Module qui déclare la variable ; exclusif de pack_version_id."
  uuid pack_version_id FK "Version de pack qui déclare la variable ; exclusif de module_code."
  timestamp_with_time_zone cree_le "Date de création de la ligne."
  timestamp_with_time_zone modifie_le "Date de dernière modification (par migration seulement)."
}
"app.module" {
  uuid id "Identifiant stable (UUID v7)."
  text code "Code du module ; préfixe de ses permissions (EC-092)."
  text libelle_fr "Libellé en français."
  text libelle_en "Libellé en anglais."
  boolean toujours_actif "Vrai pour le noyau : il ne s'active ni ne se désactive."
  smallint ordre "Ordre d'affichage."
  timestamp_with_time_zone cree_le "Date de création de la ligne."
  timestamp_with_time_zone modifie_le "Date de dernière modification (par migration seulement)."
}
"app.pack_version" {
  uuid id "Identifiant de la version (UUID v7)."
  uuid pack_id FK "Pack concerné."
  text version "Version sémantique (majeure.mineure.correctif)."
  jsonb contenu "Contenu du pack, en JSON."
  text sha256 "Empreinte SHA-256 du contenu."
  boolean calibre "Vrai si les rendements du pack ont été calibrés (EC-007)."
  text statut "Statut : brouillon, publie ou retire."
  timestamp_with_time_zone publie_le "Date de publication. Nulle pour un brouillon."
  timestamp_with_time_zone cree_le "Date de création de la ligne."
  timestamp_with_time_zone modifie_le "Date de la dernière modification, tenue par un déclencheur."
  uuid publie_par "Identifiant Keycloak (sub) du membre de l'équipe de l'éditeur qui a publié la version depuis le cockpit. Nul pour les versions publiées par le pipeline ou la ligne de commande avant CP-5."
}

Generated by tbls