diff --git a/src/app/api/diag-fournisseurs/route.ts b/src/app/api/diag-fournisseurs/route.ts index ee7e2e3..14f3a94 100644 --- a/src/app/api/diag-fournisseurs/route.ts +++ b/src/app/api/diag-fournisseurs/route.ts @@ -4,34 +4,39 @@ import { sql } from "drizzle-orm"; export async function GET() { try { - // 1. Colonnes réelles de fouadr1 - const cols = await db.execute(sql` + // 1. Colonnes de v_ca_fournisseur + const vCols = await db.execute(sql` SELECT column_name, data_type FROM information_schema.columns - WHERE table_name = 'fouadr1' + WHERE table_name = 'v_ca_fournisseur' ORDER BY ordinal_position `); - // 2. Toutes les tables contenant "fou" - const tables = await db.execute(sql` - SELECT table_name - FROM information_schema.tables - WHERE table_schema = 'public' - AND table_name ILIKE '%fou%' - ORDER BY table_name + // 2. Sample de v_ca_fournisseur + const vSample = await db.execute(sql` + SELECT * FROM v_ca_fournisseur LIMIT 10 `); - // 3. Sample de fouadr1 (5 lignes brutes) - const sample = await db.execute(sql`SELECT * FROM fouadr1 LIMIT 5`); + // 3. D005 dans v_ca_fournisseur + const vD005 = await db.execute(sql` + SELECT * FROM v_ca_fournisseur + WHERE code = 'D005' OR codefou = 'D005' + OR raisonsociale ILIKE '%depot%' OR raisonsociale ILIKE '%bazar%' + LIMIT 10 + `); - // 4. Sample de fouadr1 pour code D005 - const d005 = await db.execute(sql`SELECT * FROM fouadr1 WHERE code = 'D005' LIMIT 10`); + // 4. Définition SQL de la vue + const vDef = await db.execute(sql` + SELECT definition + FROM pg_views + WHERE viewname = 'v_ca_fournisseur' + `); return NextResponse.json({ - fouadr1_columns: cols.rows, - tables_with_fou: tables.rows, - fouadr1_sample: sample.rows, - fouadr1_d005: d005.rows, + v_ca_fournisseur_columns: vCols.rows, + v_ca_fournisseur_sample: vSample.rows, + v_ca_fournisseur_d005: vD005.rows, + view_definition: vDef.rows, }); } catch (e) { return NextResponse.json({ error: String(e) }, { status: 500 });