`cube_pv` a une clé `(artnoid, site)`, mais la base n'en porte qu'une ligne par article — 428 530 lignes pour 427 857 articles, là où deux magasins tarifés en donneraient le double. Le prix n'est donc pas ventilé : la colonne serait restée vide dès qu'on consulte le magasin qui n'a pas la ligne, alors même que l'article a un prix. La cellule couvre maintenant les quatre cas : le prix du magasin consulté quand il existe ; le prix unique quand il n'y a qu'un tarif, avec la mention « prix unique, non ventilé par magasin » ; rien quand plusieurs prix coexistent sans concerner ce magasin — celui du voisin n'est pas le sien ; et, en « tous magasins », le prix commun ou le plus élevé assorti du « ≠ ». Vérifié sur build de production, quatre articles couvrant les quatre cas, dans les trois modes de magasin. Le cas décisif : prix porté par le seul site 292, consulté depuis Houdemont — 12,90 € et la mention, au lieu du « - » d'avant. La route de diagnostic est retirée : `cube_pv` est confirmé alimenté et synchronisé, elle a fait son office. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EYGgoQCG1VCe42HzbzhAXR
CollectFlow
CollectFlow est une application de révision d'assortiment et d'analyse de performances des produits en point de vente, conçue pour consolider les données issues de plusieurs fournisseurs et magasins.
Prérequis
- Node.js 18+ (pour le développement local)
- Docker et Docker Compose (pour le déploiement conteneurisé)
- PostgreSQL 16+
Lancer avec Docker
Le projet est configuré pour tourner dans un conteneur Docker optimisé (mode standalone de Next.js). Note : Vous devez disposer d'une base de données PostgreSQL séparée (le conteneur ne lance que l'application web).
1. Démarrer l'application
À la racine du projet, lancez :
npm run docker:build
# ou directement
docker-compose up -d --build
L'application sera accessible sur http://localhost:5643.
L'application sera attachée au réseau Docker externe nginx_default afin d'être exposée derrière votre reverse proxy Nginx. Assurez-vous que ce réseau existe (docker network create nginx_default).
2. Arrêter l'application
npm run docker:down
# ou directement
docker-compose down
Développement Local (Sans Docker)
Si vous préférez développer en local, vous devrez configurer votre propre base de données PostgreSQL.
- Installer les dépendances :
npm install
-
Configurer la connexion DB : Allez sur la page des Paramètres (
/settings) dans l'application pour configurer l'accès à votre PostgreSQL local. -
Lancer le serveur de développement :
npm run dev
Structure du Projet (BMAD)
Ce projet respecte l'architecture BMAD (Business, Model, Application/API, Data) :
src/features/*: Logique métier (Business) isolée par feature (ex:grid,snapshots)src/types/*: Interfaces TypeScript (Model)src/app/*: Routeurs Next.js UI et endpoints d'API (Application/API)src/db/*: Schémas Drizzle ORM et connexions (Data)