Aller au contenu

app.parametre

Valeur de paramètre versionnée par organisation, en ajout seul. Les anciennes versions restent lisibles pour les opérations passées.

Name Type Default Nullable Children Parents Comment
id uuid app.uuid_v7() false Identifiant de la version (UUID v7).
organisation_id uuid false app.organisation app.utilisateur Organisation propriétaire de la ligne. Sert à l’isolation par RLS (EC-032) et au filtrage de la synchronisation.
cle text false Clé du paramètre, en notation pointée (ex. tolerance.rendement).
version integer false Numéro de version, à partir de 1.
valeur jsonb false Valeur du paramètre, en JSON.
schema_ref text false JSON Schema de la valeur, dans packages/schemas.
applicable_du timestamp with time zone false Date à partir de laquelle la version s’applique.
motif text false Motif du changement.
cree_par uuid false app.utilisateur Utilisateur qui a créé la version.
cree_le timestamp with time zone now() false Date de création de la ligne.
Name Type Definition
parametre_cle_check CHECK CHECK ((cle ~ ‘^[a-z0-9_]+(.[a-z0-9_]+)*$’::text))
parametre_version_check CHECK CHECK ((version > 0))
parametre_organisation_id_fkey FOREIGN KEY FOREIGN KEY (organisation_id) REFERENCES app.organisation(id)
parametre_organisation_id_cree_par_fkey FOREIGN KEY FOREIGN KEY (organisation_id, cree_par) REFERENCES app.utilisateur(organisation_id, id)
parametre_pkey PRIMARY KEY PRIMARY KEY (id)
parametre_organisation_id_cle_version_key UNIQUE UNIQUE (organisation_id, cle, version)
Name Definition
parametre_pkey CREATE UNIQUE INDEX parametre_pkey ON app.parametre USING btree (id)
parametre_organisation_id_cle_version_key CREATE UNIQUE INDEX parametre_organisation_id_cle_version_key ON app.parametre USING btree (organisation_id, cle, version)
Name Definition
journal CREATE TRIGGER journal AFTER INSERT OR DELETE OR UPDATE ON app.parametre FOR EACH ROW EXECUTE FUNCTION journal.tg_journaliser()
ajout_seul CREATE TRIGGER ajout_seul BEFORE DELETE OR UPDATE ON app.parametre FOR EACH ROW EXECUTE FUNCTION app.tg_ajout_seul()
erDiagram

"app.parametre" }o--|| "app.organisation" : "FOREIGN KEY (organisation_id) REFERENCES app.organisation(id)"
"app.parametre" }o--|| "app.utilisateur" : "FOREIGN KEY (organisation_id, cree_par) REFERENCES app.utilisateur(organisation_id, id)"

"app.parametre" {
  uuid id "Identifiant de la version (UUID v7)."
  uuid organisation_id FK "Organisation propriétaire de la ligne. Sert à l'isolation par RLS (EC-032) et au filtrage de la synchronisation."
  text cle "Clé du paramètre, en notation pointée (ex. tolerance.rendement)."
  integer version "Numéro de version, à partir de 1."
  jsonb valeur "Valeur du paramètre, en JSON."
  text schema_ref "JSON Schema de la valeur, dans packages/schemas."
  timestamp_with_time_zone applicable_du "Date à partir de laquelle la version s'applique."
  text motif "Motif du changement."
  uuid cree_par FK "Utilisateur qui a créé la version."
  timestamp_with_time_zone cree_le "Date de création de la ligne."
}
"app.organisation" {
  uuid id "Identifiant de l'organisation (UUID v7)."
  text code "Code court en majuscules. Immuable : il figure dans les identifiants Keycloak (coopa.agent01). « EXT » est réservé."
  text nom "Nom de l'organisation."
  text pays "Pays, code ISO 3166-1 alpha-2."
  text langue "Langue de l'organisation : fr ou en."
  text fuseau_horaire "Fuseau horaire IANA utilisé pour l'affichage des dates."
  text devise_defaut "Devise par défaut des montants, code ISO 4217."
  text keycloak_organisation_id "Identifiant de l'organisation dans Keycloak."
  text organisme_certificateur "Organisme de certification de l'organisation. Aucun contrôle de format (EC-027)."
  text code_operateur "Code d'opérateur attribué par l'organisme certificateur."
  uuid logo_fichier_id FK "Fichier du logo (EC-029)."
  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."
  text source_conformite "Source des décisions de conformité : `interne` (contrôle interne de BioTrace) ou `externe` (outil tiers). Une seule source active à la fois ; app.statut_conformite.source doit lui être égale."
  text statut "État du compte client : `active` ou `suspendue`. Une organisation suspendue est refusée par la garde d'authentification (`organisation_suspendue`) ; ses données et ses comptes sont conservés. Décidé par l'équipe de l'éditeur (EC-126)."
  timestamp_with_time_zone suspendue_le "Date de la suspension en cours ; nulle tant que l'organisation est active."
}
"app.utilisateur" {
  uuid id "Identifiant de l'utilisateur (UUID v7)."
  uuid organisation_id FK "Organisation propriétaire de la ligne. Sert à l'isolation par RLS (EC-032) et au filtrage de la synchronisation."
  uuid keycloak_sub "Identifiant du compte Keycloak (revendication sub). Identique d'une organisation à l'autre pour un compte externe."
  text identifiant "Identifiant local de connexion, sans le code de l'organisation : 3 à 32 caractères parmi a-z, 0-9, _ et -. Unique dans l'organisation."
  text nom_affiche "Nom affiché dans l'application."
  text telephone "Numéro de téléphone. Attribut du compte, jamais son identifiant."
  text statut "Statut du compte : actif, suspendu ou desactive."
  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."
}

Generated by tbls