From 559e6ed714e621259bd4ba41f443506ce08e344c Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 12 Oct 2026 18:57:16 +0000 Subject: [PATCH] Contrat minimal ff::pg pour le module qlik Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01LG2LLJuswrrTTPKJmunEVf --- server/src/ff/mod.rs | 4 +++- server/src/ff/pg.rs | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 server/src/ff/pg.rs diff --git a/server/src/ff/mod.rs b/server/src/ff/mod.rs index d861561..fd1f2fc 100644 --- a/server/src/ff/mod.rs +++ b/server/src/ff/mod.rs @@ -1,4 +1,6 @@ -//! Module `ff` — à porter. +//! Module `ff` — données FF Nancy (base miroir PostgreSQL et API REST) — à porter. + +pub mod pg; use crate::rpc::Handler; use axum::Router; diff --git a/server/src/ff/pg.rs b/server/src/ff/pg.rs new file mode 100644 index 0000000..fc481d7 --- /dev/null +++ b/server/src/ff/pg.rs @@ -0,0 +1,22 @@ +//! Client PostgreSQL FF Nancy (port de `src/lib/pg-ff-client.ts`) — À PORTER. +//! +//! Contrat minimal fixé d'avance (utilisé par le module `qlik`) : la structure +//! [`PgArticle`] et [`pg_get_articles_by_fournisseur`]. Le reste du fichier est +//! à porter ; garder ces deux signatures (champs ajoutables). + +use serde::Serialize; + +#[derive(Debug, Clone, Default, Serialize)] +pub struct PgArticle { + pub no_id: i64, + pub codein: String, + /// Code centrale = articles.artcentrale (format 10000XXXXXX) — clé jointure Qlik « Article Code ». + #[serde(rename = "codeCentrale", skip_serializing_if = "Option::is_none")] + pub code_centrale: Option, + pub codefou: String, +} + +/// Tous les articles d'un fournisseur (une requête). Erreur SQL propagée. +pub async fn pg_get_articles_by_fournisseur(_codefou: &str) -> anyhow::Result> { + anyhow::bail!("pg_get_articles_by_fournisseur : pas encore porté") +}