Aller au contenu

app.referentiel

Catalogue global des référentiels (EC-089) : un code par référentiel, relié au pack référentiel qui porte ses états de qualité, ses grilles et ses tables de décision (AM-06). Écrit par la publication des packs et par les migrations.

Name Type Default Nullable Children Parents Comment
id uuid app.uuid_v7() false Identifiant stable (UUID v7).
code text false app.organisation_referentiel app.lot_qualite app.vente Code du référentiel (UE, NOP, CCPB…), valeur du facteur referentiel.
nature text true Nature : norme publique, organisme de certification, standard privé ; vide tant que le pack n’est pas publié.
libelle_fr text false Libellé en français.
libelle_en text false Libellé en anglais.
pack_id uuid true app.pack Pack référentiel qui porte les états, les grilles et les tables de décision ; vide tant qu’aucun pack n’est publié.
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.
Name Type Definition
referentiel_code_check1 CHECK CHECK ((code ~ ‘^[A-Za-z0-9_.-]{1,30}$’::text))
referentiel_libelle_en_check1 CHECK CHECK ((libelle_en <> ‘’::text))
referentiel_libelle_fr_check1 CHECK CHECK ((libelle_fr <> ‘’::text))
referentiel_nature_check CHECK CHECK ((nature = ANY (ARRAY[‘norme_publique’::text, ‘organisme’::text, ‘standard_prive’::text])))
referentiel_pack_id_fkey FOREIGN KEY FOREIGN KEY (pack_id) REFERENCES app.pack(id)
referentiel_pkey1 PRIMARY KEY PRIMARY KEY (id)
referentiel_code_key UNIQUE UNIQUE (code)
Name Definition
referentiel_pkey1 CREATE UNIQUE INDEX referentiel_pkey1 ON app.referentiel USING btree (id)
referentiel_code_key CREATE UNIQUE INDEX referentiel_code_key ON app.referentiel USING btree (code)
Name Definition
journal CREATE TRIGGER journal AFTER INSERT OR DELETE OR UPDATE ON app.referentiel FOR EACH ROW EXECUTE FUNCTION journal.tg_journaliser()
modifie_le CREATE TRIGGER modifie_le BEFORE UPDATE ON app.referentiel FOR EACH ROW EXECUTE FUNCTION app.tg_modifie_le()
erDiagram

"app.organisation_referentiel" }o--|| "app.referentiel" : "FOREIGN KEY (code) REFERENCES app.referentiel(code)"
"app.lot_qualite" }o--|| "app.referentiel" : "FOREIGN KEY (referentiel_code) REFERENCES app.referentiel(code)"
"app.vente" }o--o| "app.referentiel" : "FOREIGN KEY (referentiel_code) REFERENCES app.referentiel(code)"
"app.referentiel" }o--o| "app.pack" : "FOREIGN KEY (pack_id) REFERENCES app.pack(id)"

"app.referentiel" {
  uuid id "Identifiant stable (UUID v7)."
  text code "Code du référentiel (UE, NOP, CCPB…), valeur du facteur `referentiel`."
  text nature "Nature : norme publique, organisme de certification, standard privé ; vide tant que le pack n'est pas publié."
  text libelle_fr "Libellé en français."
  text libelle_en "Libellé en anglais."
  uuid pack_id FK "Pack référentiel qui porte les états, les grilles et les tables de décision ; vide tant qu'aucun pack n'est publié."
  timestamp_with_time_zone cree_le "Date de création de la ligne."
  timestamp_with_time_zone modifie_le "Date de dernière modification."
}
"app.organisation_referentiel" {
  uuid id "Identifiant stable (UUID v7)."
  uuid organisation_id FK "Organisation propriétaire. Sert à l'isolation par RLS (EC-032)."
  text code FK "Code du référentiel coché, pris dans le catalogue global (clé étrangère), unique par organisation."
  text libelle_fr "Libellé en français, propre à l'organisation."
  text libelle_en "Libellé en anglais, propre à l'organisation."
  boolean actif "Faux quand l'organisation ne revendique plus ce référentiel. Une ligne n'est jamais supprimée."
  timestamp_with_time_zone cree_le "Date de création de la ligne."
  timestamp_with_time_zone modifie_le "Date de dernière modification."
}
"app.lot_qualite" {
  uuid id "Identifiant de la ligne (UUID v7)."
  uuid organisation_id FK "Organisation propriétaire du lot (isolation par ligne)."
  uuid lot_id FK "Lot dont la qualité est décrite ; se pose tant que le lot est en brouillon ou en attente."
  text referentiel_code FK "Code du référentiel du catalogue global (UE, NOP…), coché par l'organisation."
  text etat "Code d'un état de qualité du référentiel (bio, conversion_annee_1…), pris dans les états de la dernière version publiée de son pack ; un état « hors statut » est refusé."
  uuid cree_par FK "Utilisateur qui a posé la qualité."
  timestamp_with_time_zone cree_le "Date de pose de la qualité."
}
"app.vente" {
  uuid id "Identifiant de la vente (UUID v7)."
  uuid organisation_id FK "Organisation propriétaire (isolation par ligne)."
  uuid client_id FK "Client acheteur."
  uuid contrat_id FK "Contrat de vente actif du même client, facultatif : vide pour une vente « spot ». Sa tolérance s'ajoute à la quantité engagée."
  uuid produit_id FK "Produit vendu : celui de tous les lots expédiés."
  text referentiel_code FK "Référentiel revendiqué sur la vente (RG-156, AV1-03) ; vide si la vente ne revendique aucun référentiel."
  bigint quantite_engagee_g "Quantité vendue en grammes. Le total expédié ne la dépasse pas, tolérance du contrat comprise."
  bigint prix_unite_mineure "Prix par unité de prix, en unités mineures de la devise."
  text unite_prix FK "Unité à laquelle le prix s'applique (kilogramme, tonne…)."
  text devise FK "Devise du prix."
  date date_operation "Date de la vente."
  text statut "Statut : brouillon, validee, soldee ou annulee. Une vente annulée ne peut plus avoir d'expédition validée."
  uuid valide_par FK "Utilisateur qui a validé la vente ; vide tant qu'elle est en brouillon."
  timestamp_with_time_zone valide_le "Date de validation de la vente."
  uuid cree_par FK "Utilisateur qui a saisi la vente."
  timestamp_with_time_zone cree_le "Date de saisie de la vente."
  timestamp_with_time_zone modifie_le "Date de la dernière modification de la vente."
}
"app.pack" {
  uuid id "Identifiant du pack (UUID v7)."
  text code "Code du pack (ex. fruits)."
  text libelle "Libellé du pack."
  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 type "Type de pack (AM-06) : filiere (produits, paramètres, arbre d'activités) ou referentiel (états de qualité, grilles, tables de décision)."
}

Generated by tbls