Michael
bd8339b27d
feat: add pg-ff-client to replace HTTP API calls with bulk PostgreSQL queries
2026-04-23 10:36:37 +02:00
Michael
d955c17af2
feat: add probe for N/A suppliers to retrieve franco details in GET route
2026-04-13 15:47:14 +02:00
Michael
33ff92aec0
feat: add commandes-auto audit with franco_ht filtering to GET route
2026-04-13 15:43:37 +02:00
Michael
2cbf8a753a
feat: add foucad sample retrieval and columns to franco diagnostic
2026-04-13 15:40:56 +02:00
Michael
457903a611
feat: add franco diagnostic and raw commandes-auto retrieval in GET route
2026-04-13 15:34:26 +02:00
Michael
8dd2394893
feat: implement admin AI chat route with SQL execution and database schema context
2026-04-10 16:03:00 +02:00
Michael
6e10364922
feat: implement admin AI chat API with SQL execution tools and database schema context
2026-04-10 15:44:59 +02:00
Michael
0c1d3c10bd
feat: implement admin AI chat API with SQL execution and schema retrieval tools
2026-04-10 15:23:46 +02:00
Michael
4994d55ffc
feat: implement admin AI chat route with SQL execution tools and multi-provider support
2026-04-10 15:16:34 +02:00
Michael
ade120a9da
feat: add settings page with database configuration, AI provider management, and FF API status tracking.
2026-04-10 15:05:51 +02:00
Michael
d0ca0c3602
feat: implement database and AI provider configuration settings with Google GenAI integration
2026-04-10 15:00:47 +02:00
Michael
9f05eb9bc9
feat: implement admin AI chat API with SQL execution and database schema tools
2026-04-10 13:51:18 +02:00
Michael
6891aff668
feat: implement admin AI chat route with SQL execution and database schema access tools
2026-04-10 13:38:26 +02:00
Michael
63d89e5029
feat: add API endpoint to fetch and format OpenRouter models list
2026-04-10 13:35:54 +02:00
Michael
d9859ff9e0
feat: add API route to fetch and format OpenRouter models with pricing data
2026-04-10 13:29:31 +02:00
Michael
78cdc608d0
feat: implement admin AI chat interface with model selection and real-time cost tracking
2026-04-10 13:23:35 +02:00
Michael
638c4b5f3b
feat: implement direct PostgreSQL data access and API proxy for automated orders
2026-04-08 16:37:42 +02:00
Michael
70c425befb
feat: implement sidebar navigation and automated order management module with PostgreSQL client integration
2026-04-08 15:53:59 +02:00
Michael and Claude Sonnet 4.6
bbb04a4d2a
fix: immediate AI loading feedback + auto-fallback for deprecated model
...
- BulkAiAnalyzer: set isAnalyzing=true immediately on click (before
context fetch), so the spinner appears instantly instead of after
1-2 seconds of silence
- analyze/route.ts: if configured model returns 400/404 (e.g., deprecated
google/gemini-flash-1.5), automatically retry with google/gemini-2.0-flash-001
- batch-analyze/route.ts: same fallback logic
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 11:34:14 +02:00
Michael and Claude Sonnet 4.6
2aa9cbecaa
revert: restore grid to pre-infinite-scroll state
...
Remove infinite grid loading, useInfiniteGrid hook, and server-side
pagination API route. Revert grid components to the simpler version
that avoids 2MB+ cache failures from unstable_cache.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-03 11:26:13 +02:00
Michael
83d101ddc1
feat: add interactive client component for Hit Parade data visualization with sorting, filtering, and date range controls
2026-04-03 10:46:09 +02:00
Michael
b39e010903
feat: implement infinite grid loading with server-side pagination and client-side integration
2026-04-02 18:39:29 +02:00
Michael
4dfdcc1144
feat: implement infinite scrolling and background data loading for the product grid component
2026-04-02 17:47:10 +02:00
Michael
2893114fca
feat: implement infinite grid pagination with server-side data fetching and custom hook
2026-04-02 17:17:32 +02:00
Michael and Claude Sonnet 4.6
8b3ed4c435
chore: improve diag to check mntmvtht vs mntmvtttc totals and artfou1.preference distribution
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 09:40:28 +02:00
Michael and Claude Sonnet 4.6
63641e9de9
chore: add mvtart column diag to /api/diag, remove unused diag-mvtart
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 09:36:21 +02:00
Michael and Claude Sonnet 4.6
3e4b320cbe
chore: add diag-mvtart to inspect columns and CA totals
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 09:28:53 +02:00
Michael and Claude Sonnet 4.6
bc76237f48
feat: sort analytics by name (fournisseur) or code asc (nomenclature); show code in nomenclature label; remove diag-fournisseurs endpoint
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 08:42:21 +02:00
Michael
f0a360115f
chore: inspect fouident table for correct supplier names
2026-03-31 17:32:54 +02:00
Michael
67b0c8c74f
chore: inspect v_ca_fournisseur view structure
2026-03-31 13:52:22 +02:00
Michael
072479b30f
chore: fix diag-fournisseurs to inspect real fouadr1 column structure
2026-03-31 13:44:19 +02:00
Michael
09f80b35cb
chore: add diag-fournisseurs endpoint to investigate fouadr1 sit_code and naming
2026-03-31 13:40:08 +02:00
Michael and Claude Sonnet 4.6
cfd3a7e601
chore: remove temporary diag-supplier investigation endpoint
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 12:08:15 +02:00
Michael and Claude Sonnet 4.6
51adac0349
fix: attribute CA to supplier of last stock entry (dernière entrée en stock)
...
Previous approach (artfou1 DISTINCT ON no_id DESC) picked the most recent
artfou1 record, but artfou1 is a commercial reference table that may not
reflect actual current sourcing.
New approach: for each article, find the most recent reception movement
(genremvt IN (1,2)) in mvtart — this is the actual last delivery. Join
artfou1 to get the supplier code (ORDER BY datmvt DESC, af.no_id DESC to
break ties). This correctly attributes CA to whoever last physically
delivered the goods, not to a historical commercial reference.
Articles with no reception history are excluded (no INNER JOIN fallback
needed as all sold articles must have been received at least once).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 12:05:38 +02:00
Michael and Claude Sonnet 4.6
3d77f6b879
chore: add diag-supplier endpoint for artfou1 supplier attribution investigation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 11:08:23 +02:00
Michael
41a8b32aff
feat: Add API route to export modified gammes data to an Excel file.
2026-03-19 15:28:16 +01:00
Michael
aa02d019bd
feat: Implement AI Copilot for product analysis and add comprehensive product grid data fetching.
2026-03-18 21:25:53 +01:00
Michael
ab603e3a6f
feat: Add a diagnostic API route and implement server-side logic for fetching and scoring product grid data.
2026-03-18 19:54:44 +01:00
Michael and Claude Sonnet 4.6
ca467c73f6
chore: probe /api/articles/:no_id/referentiel in diag
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 19:24:09 +01:00
Michael and Claude Sonnet 4.6
06e1b1a238
chore: add ventesProduits diagnostic to diag endpoint
...
Shows row counts, gamme/code3 fill rates, and sample rows
for AUXENCE/A025 to diagnose missing classification data.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 19:17:22 +01:00
Michael and Claude Sonnet 4.6
2d37a134d4
chore: update diag to probe new mensuel, stock/periode, and mouvements/types endpoints
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 16:44:01 +01:00
Michael and Claude Sonnet 4.6
c33e22f7eb
fix: extractList includes API-specific wrapper keys, diag uses real codefou
...
- extractList now explicitly checks "mouvements", "articles", "fournisseurs",
"ventes", "stocks", "commandes" wrapper keys before generic array fallback
- Diag endpoint auto-fetches first real codefou from fournisseurs instead
of hardcoded "AUXENCE" (which was supplier nom, not actual codefou)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 14:57:49 +01:00
Michael and Claude Sonnet 4.6
9e500b6650
feat: enhance diag endpoint to probe mouvements API with multiple date param variants
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-18 14:50:32 +01:00
Michael
c056750ea7
feat: implement FF Nancy API client including data models and functions for suppliers, articles, movements, and stock.
2026-03-18 14:44:44 +01:00
Michael
1035489db1
feat: Add FF Nancy API client and status endpoint, implement grid product fetching and draft change saving, and introduce AI Copilot core logic.
2026-03-18 14:31:29 +01:00
Michael
5eb3f6732e
feat: Add Drizzle ORM database setup, product data fetching and processing with scoring, and a diagnostic API endpoint.
2026-03-10 16:04:55 +01:00
Michael
b921f5ad40
fix(ai): implement automatic network retry for OpenRouter 502/503/529 overloads in Bulk Analyzer
2026-02-27 14:57:14 +01:00
Michael
02fdd18a52
feat: implement AI product analysis endpoint using OpenRouter with optimized timeout handling and N+1 query prevention.
2026-02-27 10:36:34 +01:00
Michael
c95eb0ecb6
feat: Add new settings page with Apple-style UI, OpenRouter AI integration, and Mary v4 analysis.
2026-02-27 10:02:23 +01:00
Michael
3438d1b35d
feat: add HeatmapCell component and Apple-inspired global design system with dark/light mode support.
2026-02-26 15:54:47 +01:00