Issue du traitement d’une commande, descendue vers l’appareil par la synchronisation.
| Name |
Type |
Default |
Nullable |
Children |
Parents |
Comment |
| id |
uuid |
|
false |
|
sync.commande |
Identifiant de la commande concernée (PowerSync exige une colonne id). |
| organisation_id |
uuid |
|
false |
|
app.appareil sync.commande |
Organisation propriétaire de la ligne. Sert à l’isolation par RLS (EC-032) et au filtrage de la synchronisation. |
| appareil_id |
uuid |
|
false |
|
app.appareil |
Appareil destinataire. |
| issue |
text |
|
false |
|
|
Issue : acceptee, acceptee_controle ou rejetee. |
| motifs |
text[] |
‘{}’::text[] |
false |
|
|
Motifs de contrôle ou de rejet. Vide si la commande est acceptée. |
| alertes |
text[] |
‘{}’::text[] |
false |
|
|
Alertes non bloquantes. |
| numero_officiel |
text |
|
true |
|
|
Numéro officiel attribué par le serveur. |
| entites |
jsonb |
‘{}’::jsonb |
false |
|
|
Entités créées, par identifiant, en JSON. |
| date_operation |
timestamp with time zone |
|
false |
|
|
Date d’opération retenue. |
| traitee_le |
timestamp with time zone |
now() |
false |
|
|
Date de traitement par le serveur. |
| Name |
Type |
Definition |
| commande_resultat_check |
CHECK |
CHECK (((issue = ‘acceptee’::text) = (cardinality(motifs) = 0))) |
| commande_resultat_issue_check |
CHECK |
CHECK ((issue = ANY (ARRAY[‘acceptee’::text, ‘acceptee_controle’::text, ‘rejetee’::text]))) |
| commande_resultat_organisation_id_appareil_id_fkey |
FOREIGN KEY |
FOREIGN KEY (organisation_id, appareil_id) REFERENCES app.appareil(organisation_id, id) |
| commande_resultat_organisation_id_id_fkey |
FOREIGN KEY |
FOREIGN KEY (organisation_id, id) REFERENCES sync.commande(organisation_id, id) |
| commande_resultat_pkey |
PRIMARY KEY |
PRIMARY KEY (id) |
| Name |
Definition |
| commande_resultat_pkey |
CREATE UNIQUE INDEX commande_resultat_pkey ON sync.commande_resultat USING btree (id) |
| commande_resultat_appareil_idx |
CREATE INDEX commande_resultat_appareil_idx ON sync.commande_resultat USING btree (appareil_id) |
| Name |
Definition |
| journal |
CREATE TRIGGER journal AFTER INSERT OR DELETE OR UPDATE ON sync.commande_resultat FOR EACH ROW EXECUTE FUNCTION journal.tg_journaliser() |
| ajout_seul |
CREATE TRIGGER ajout_seul BEFORE DELETE OR UPDATE ON sync.commande_resultat FOR EACH ROW EXECUTE FUNCTION app.tg_ajout_seul() |
erDiagram
"sync.commande_resultat" }o--|| "sync.commande" : "FOREIGN KEY (organisation_id, id) REFERENCES sync.commande(organisation_id, id)"
"sync.commande_resultat" }o--|| "app.appareil" : "FOREIGN KEY (organisation_id, appareil_id) REFERENCES app.appareil(organisation_id, id)"
"sync.commande_resultat" {
uuid id FK "Identifiant de la commande concernée (PowerSync exige une colonne id)."
uuid organisation_id FK "Organisation propriétaire de la ligne. Sert à l'isolation par RLS (EC-032) et au filtrage de la synchronisation."
uuid appareil_id FK "Appareil destinataire."
text issue "Issue : acceptee, acceptee_controle ou rejetee."
text__ motifs "Motifs de contrôle ou de rejet. Vide si la commande est acceptée."
text__ alertes "Alertes non bloquantes."
text numero_officiel "Numéro officiel attribué par le serveur."
jsonb entites "Entités créées, par identifiant, en JSON."
timestamp_with_time_zone date_operation "Date d'opération retenue."
timestamp_with_time_zone traitee_le "Date de traitement par le serveur."
}
"sync.commande" {
uuid id "Identifiant de la commande (UUID v7 généré sur l'appareil). Clé d'idempotence."
uuid organisation_id FK "Organisation propriétaire de la ligne. Sert à l'isolation par RLS (EC-032) et au filtrage de la synchronisation."
uuid appareil_id FK "Appareil émetteur."
uuid utilisateur_id FK "Agent auteur."
bigint sequence "Séquence locale de l'appareil, à partir de 1. Unique par appareil."
text type "Type de commande (ex. collecte.enregistrer)."
integer version_schema "Version du JSON Schema de la charge utile."
timestamp_with_time_zone cree_le_appareil "Heure du téléphone à la saisie."
timestamp_with_time_zone date_operation "Date d'opération retenue par le serveur, jamais postérieure à la réception (protocole §6.4)."
timestamp_with_time_zone recue_le "Heure de réception par le serveur."
text reference_provisoire "Référence provisoire du document de terrain (EC-009)."
text empreinte "Empreinte SHA-256 de la commande canonique."
jsonb enveloppe "Commande complète en JSON, telle que reçue."
}
"app.appareil" {
uuid id "Identifiant de l'appareil (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 code "Code court unique de l'appareil, utilisé dans les références provisoires (EC-009)."
uuid utilisateur_id FK "Agent titulaire de l'appareil."
text modele "Modèle du téléphone."
boolean gnss_bifrequence "Vrai si le téléphone dispose d'un récepteur GNSS bifréquence (GPS-03, GPS-05)."
text version_application "Dernière version de l'application terrain connue."
text statut "Statut : actif, revoque ou remplace."
timestamp_with_time_zone enrole_le "Date d'enrôlement."
timestamp_with_time_zone revoque_le "Date de révocation. Nulle si l'appareil n'est pas révoqué."
uuid revoque_par FK "Utilisateur qui a révoqué l'appareil."
text motif_revocation "Motif de la révocation, obligatoire dès qu'elle a lieu."
bigint derniere_sequence "Dernière séquence de commande traitée pour cet appareil. Ne diminue jamais."
timestamp_with_time_zone derniere_synchro "Date de la dernière synchronisation."
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