Commit Graph
375 Commits
Author SHA1 Message Date
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 a2c4a065dd feat: add ExportDropdown component with Excel and PDF export functionality for grid data 2026-04-10 13:25:19 +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 f21f38f805 feat: add client-side component to display and filter automatic order data by site 2026-04-08 16:47:39 +02:00
Michael 910b0c96ef feat: add PostgreSQL client for bulk data retrieval and configure Claude permissions 2026-04-08 16:41:28 +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 d25ffdb3e7 feat: implement pg-ff-client to replace per-article HTTP calls with bulk PostgreSQL queries 2026-04-08 12:14:18 +02:00
Michael ff81bc1fc4 feat: implement interactive stock negative and no-sales data table with filtering, sorting, and Excel export functionality 2026-04-08 09:59:14 +02:00
Michael 5a13640884 feat: implement pg-ff-client to replace per-article HTTP calls with bulk PostgreSQL queries 2026-04-07 17:36:27 +02:00
Michael e8fb472a9f feat: implement shared LoadingModal component and integrate into dashboard route loading states 2026-04-07 17:16:33 +02:00
Michael 2264ced494 feat: add client-side data table components for negative stock and stagnant inventory with sorting and Excel export capabilities 2026-04-07 16:56:57 +02:00
Michael ac1c9a5522 feat: implement collapsible sidebar, PostgreSQL client for bulk data fetching, and stock-negatif page 2026-04-07 16:51:52 +02:00
Michael d96995fce9 feat: implement PostgreSQL bulk data client to replace per-article HTTP requests 2026-04-07 16:15:19 +02:00
Michael a378bff7e2 feat: implement pg-ff-client to replace HTTP per-article requests with bulk SQL queries 2026-04-07 15:37:01 +02:00
Michael 7bf42dfc01 feat: implement direct PostgreSQL bulk querying for FF Nancy data to replace per-article HTTP requests 2026-04-07 15:33:01 +02:00
Michael 13414c970c feat: implement client-side interactive table for advertising data with filtering and sorting capabilities 2026-04-07 13:04:12 +02:00
Michael 480cf5c460 feat: add PublicitesClient component with filtering, sorting, and data visualization for advertising performance 2026-04-07 13:00:58 +02:00
Michael 5e6b1d354b feat: add PublicitesClient component for displaying and filtering advertising data by year 2026-04-07 12:45:20 +02:00
Michael acd30cfdea feat: implement authentication middleware and configure Claude project permissions 2026-04-07 12:31:58 +02:00
Michael b5bda8abf7 feat: add dashboard page for publicites data retrieval and display 2026-04-07 12:22:18 +02:00
Michael 2bd40ae876 feat: add PublicitesPage to display advertising data with year-based filtering 2026-04-07 11:09:54 +02:00
Michael 78495cb8b6 feat: add interactive HitParadeClient component with filtering, sorting, and date range controls 2026-04-07 10:15:29 +02:00
Michael f1b0a74c5f feat: add HitParadeClient component with filtering, sorting, and date selection capabilities 2026-04-07 09:28:10 +02:00
Michael f5b2083c42 feat: add HitParadeClient component with filtering, sorting, and date selection capabilities 2026-04-07 09:24:06 +02:00
Michael 9469738ef0 feat: implement hit-parade dashboard with interactive filtering, sorting, and data visualization components 2026-04-07 08:49:38 +02:00
Michael 2c02807493 feat: implement Hit Parade dashboard with PostgreSQL-backed data aggregation and pivot logic 2026-04-07 08:38:25 +02:00
Michael 788bf96006 feat: implement grid feature with server-side data fetching and product analytics dashboard 2026-04-07 08:21:22 +02:00
MichaelandClaude Sonnet 4.6 de46e056d2 fix: robustify suspended product filter using ::text cast
The previous ::boolean cast caused query failure when suspendu column
is not a native boolean type. Casting to ::text first handles all
column types (char, varchar, int, boolean).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:07:07 +02:00
MichaelandClaude Sonnet 4.6 a60e21eb04 fix: exclude suspended products from supplier grid
Add WHERE NOT COALESCE(af.suspendu::boolean, false) AND NOT COALESCE(a.suspendu::boolean, false)
to pgGetArticlesByFournisseur — products flagged as suspended in artfou1
or articles table are no longer shown in the grid.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:04:08 +02:00
MichaelandClaude Sonnet 4.6 6b26676836 feat: flag products whose last registered supplier differs from current view
Instead of unreliable preference=1, use artfou1.no_id DESC (most recently
added artfou1 entry) to identify the last supplier for each product.
Shows an amber warning icon in the Désignation column when the last
supplier ≠ current supplier view, with tooltip showing who to attribute
the sales to.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:55:42 +02:00
MichaelandClaude Sonnet 4.6 6ef23de317 feat: restrict AI analysis to admin role only
- FloatingSummaryBar: hide BulkAiAnalyzer button for non-admins
- AiInsightBlock: hide individual Analyser button for non-admins
- Both use useSession() to check role === "admin"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:43:48 +02:00
MichaelandClaude 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
MichaelandClaude 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 bd21f07c8e feat: implement bulk PostgreSQL client to replace per-article HTTP API calls 2026-04-03 11:21:38 +02:00
Michael e90a567446 feat: implement bulk PostgreSQL data fetching client to replace per-article HTTP requests 2026-04-03 11:17:04 +02:00
Michael b4ea795770 feat: add settings page with database configuration, API status monitoring, and theme toggling 2026-04-03 11:07:34 +02:00
Michael ebd819bfa4 feat: implement PostgreSQL bulk data access client to replace per-article HTTP requests 2026-04-03 10:58:43 +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 687009dba1 feat: add HitParadeClient component with filtering, sorting, and date selection capabilities 2026-04-03 07:46:43 +02:00
Michael e9e1fdd246 feat: implement PostgreSQL client for bulk data retrieval to replace per-article HTTP requests 2026-04-03 07:40:05 +02:00
Michael 5a506c750c feat: add pg-ff-client to replace per-article HTTP requests with bulk SQL queries 2026-04-03 07:19:45 +02:00
Michael 659019e722 feat: implement PostgreSQL-based bulk data retrieval client for FF Nancy to replace HTTP API calls 2026-04-03 07:14:56 +02:00
Michael a4debe992b feat: implement dashboard page and add loading skeletons for all dashboard modules 2026-04-03 07:12:15 +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 49928e9c08 feat: implement useInfiniteGrid hook for paginated data fetching and state management 2026-04-02 17:53:09 +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 f70249555e feat: implement high-performance virtualized heatmap grid with granular Zustand state management 2026-04-02 17:36:42 +02:00
Michael 43644a7d1d feat: implement server-side product row data fetching with caching and aggregation logic 2026-04-02 17:28:23 +02:00