mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-16 19:59:30 +02:00
- /api/produits/search (POST démarre un job, GET suit l'avancement) : Qlik d'abord, repli catalogue FF (source: "db"), cache mémoire 10 min des seuls résultats Qlik exploitables, une recherche Qlik à la fois. - /api/produits/opportunites : produits de la même famille, local vs réseau. - Page produit-fiche (?codein= ou ?cc=) : getProduitFiche / getProduitFicheByCodeCentrale, report du stock de fin de mois. - normalizeMargePct (compare-reseau) et types JSON identiques au client. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LG2LLJuswrrTTPKJmunEVf
37 lines
1.2 KiB
Rust
37 lines
1.2 KiB
Rust
//! Module `produits` — recherche produit (Qlik d'abord, base FF Nancy en repli)
|
|
//! et fiche produit.
|
|
//!
|
|
//! - [`search`] : recherche asynchrone (jobs en mémoire, cache 10 min) ;
|
|
//! - [`fiche`] : assemblage de la fiche produit (local + réseau) ;
|
|
//! - [`compare_reseau`] : normalisation du taux de marge réseau ;
|
|
//! - [`types`] : formes JSON partagées avec l'interface ;
|
|
//! - [`routes`] : `/api/produits/search`, `/api/produits/opportunites`, page `produit-fiche`.
|
|
|
|
pub mod compare_reseau;
|
|
pub mod fiche;
|
|
pub mod routes;
|
|
pub mod search;
|
|
pub mod types;
|
|
|
|
use crate::handler;
|
|
use crate::rpc::Handler;
|
|
use axum::routing::get;
|
|
use axum::Router;
|
|
|
|
/// Routes HTTP du module.
|
|
pub fn router() -> Router {
|
|
Router::new()
|
|
.route("/api/produits/search", get(routes::search_get).post(routes::search_post))
|
|
.route("/api/produits/opportunites", get(routes::opportunites))
|
|
}
|
|
|
|
/// Actions (`POST /api/actions/{nom}`) du module.
|
|
pub fn actions() -> Vec<(&'static str, Handler)> {
|
|
vec![]
|
|
}
|
|
|
|
/// Données de pages (`GET /api/pages/{nom}`) du module.
|
|
pub fn pages() -> Vec<(&'static str, Handler)> {
|
|
vec![("produit-fiche", handler!(routes::page_produit_fiche))]
|
|
}
|