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