Aller au contenu

sync.commande_resultat

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