Commit Graph
118 Commits
Author SHA1 Message Date
Michael 7e4b370267 feat: implement PostgreSQL client for bulk data retrieval to replace per-article HTTP requests and configure Claude permissions 2026-04-02 16:31:11 +02:00
MichaelandClaude Sonnet 4.6 ead53db496 feat: restrict gamme/export/exports-page to admin; fix create user button style
- Non-admin users see gamme as read-only badge (no select)
- Export button hidden for non-admin in grid
- Save drafts button hidden for non-admin
- Exports page hidden in sidebar for non-admin
- Create user button: explicit blue style (was unreadable with apple-btn-primary)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 13:29:52 +02:00
Michael 8ecba594cf feat: introduce virtualized heatmap grid component with dynamic monthly data and optimized cell rendering. 2026-03-23 16:20:17 +01:00
Michael ffa257fda1 feat: Implement product heatmap grid with comprehensive data aggregation and PostgreSQL client for product rows. 2026-03-23 16:09:09 +01:00
Michael bba6fe05e8 feat: implement client-side grid orchestrator and core heatmap table component. 2026-03-23 14:13:39 +01:00
Michael 53b85381fa feat: add server-side API for fetching and processing comprehensive product data for the grid. 2026-03-23 14:00:27 +01:00
Michael 99954fb001 feat: Add AI Copilot Zustand store for managing and persisting product insights. 2026-03-23 13:34:36 +01:00
Michael 86df5d6f29 feat: introduce BulkAiAnalyzer component for bulk product classification and AI context profiling. 2026-03-23 12:43:02 +01:00
Michael e391550a30 feat: Introduce product assortment grid client and direct PostgreSQL data access for FF Nancy. 2026-03-20 14:25:30 +01:00
MichaelandClaude Sonnet 4.6 a16ec24cd7 perf+fix: parallelize article pagination, filter inactive articles, add gamme Y
Performance fixes for large suppliers (14k+ articles):
- fetchAllPages now fetches page 1, reads total count from response,
  then fetches remaining pages in parallel (10 at a time) instead of
  sequentially. Falls back to sequential if no count in response.
- getProductRows filters out suspended/inactive articles before calling
  getMensuelByArticles and getReferentielByArticles, reducing API calls
  from N_total to N_active (e.g. 14775→~2500 for S053).
- getRankingByArticles receives only active articles for bulk fetch.
- FfArticle now exposes actif and suspendu fields.

Gamme Y support:
- GammeSelect: add Y option with violet color
- GridFilterBar: add Y filter button with violet color
- BulkActionToolbar: add Y bulk assignment button

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 20:23:38 +01:00
MichaelandClaude Opus 4.6 414bf6133d fix: correct snapshot save to detect all gamme changes (drafts + validated)
handleSnapshot was only looking at active draftChanges to build the
snapshot. After validation (Valider), drafts are cleared but changes
are applied to row.codeGamme via applyDraftsToRows. This caused
handleSnapshot (Camera/Export) to save an empty snapshot that
overwrote the real one, losing all gamme changes on page reload.

Now handleSnapshot compares (draftChanges[codein] ?? row.codeGamme)
vs row.codeGammeInit to detect ALL changes, whether drafted or
already validated. Uses codeGammeInit as "before" reference (API
value, never modified).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 17:13:49 +01:00
Michael 01d2dc8b34 feat: add BulkAiAnalyzer component for automatic product classification and AI context profiling. 2026-03-19 15:52:48 +01:00
Michael aa69637f98 feat: Introduce bulk AI analyzer component to pre-classify products and prepare data for AI analysis, including context profiling. 2026-03-19 13:19:49 +01:00
Michael a4528c6d14 feat: Add HeatmapGrid component for visualizing product data with TanStack Table, virtualization, and performance optimizations. 2026-03-19 13:02:16 +01:00
Michael 8b7d81b20c feat: implement product grid with comprehensive product data fetching, processing, and heatmap display. 2026-03-19 12:41:03 +01:00
Michael d8a9329075 feat: Introduce AI Copilot feature with product analysis engine, state management, and UI components for insights. 2026-03-19 07:53:56 +01:00
Michael 95795ce7e3 feat: Introduce AI analysis engine for product A/Z recommendations based on detailed business rules. 2026-03-18 22:15:14 +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 cefe6060d0 feat: implement virtualized heatmap grid component using TanStack Table and Virtual for product data display. 2026-03-18 20:52:13 +01:00
Michael aa77025d14 feat: introduce virtualized heatmap grid component with client-side filtering, sorting, and optimized Zustand state management. 2026-03-18 20:49:57 +01:00
Michael 9aca3b8ead feat: Add virtualized heatmap grid component with dynamic columns, filtering, and row selection. 2026-03-18 20:34:23 +01:00
Michael 7b209292b9 feat: introduce GridClient component to manage grid state, scoring, and UI orchestration. 2026-03-18 14:35:24 +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 2d3a90d6c7 feat: add floating summary bar component with grid statistics, draft management, snapshot, and export functionality. 2026-03-12 14:25:39 +01:00
Michael f15fbe69ec feat: Implement core grid state management with Zustand, define grid data types, and introduce a heatmap cell component. 2026-03-10 12:56:37 +01:00
Michael 54a4e7f4d1 feat: add bulk AI analyzer component for product scoring and context profiling. 2026-03-06 16:00:42 +01:00
Michael 34e8f4a767 feat: add bulk action toolbar component for applying gamme codes to selected items. 2026-03-06 15:53:24 +01:00
Michael cdc310223c feat: implement virtualized heatmap grid component using TanStack Table and a new Zustand store for product data. 2026-03-06 15:27:18 +01:00
Michael 1ba507da94 feat: implement virtualized heatmap grid component with a Zustand store for managing grid data, filters, and draft product gamme changes. 2026-03-06 15:15:11 +01:00
Michael 38955ab02a feat: introduce HeatmapGrid component for virtualized product data display with gamme selection and performance optimizations. 2026-03-06 15:08:35 +01:00
Michael d75454dd56 feat: Implement virtualized product heatmap grid with data fetching and client integration. 2026-03-06 15:03:25 +01:00
Michael 57449ec603 feat: introduce heatmap grid component for displaying and managing product data with virtualization and performance optimizations. 2026-03-06 11:18:35 +01:00
Michael eb5bceb5bf feat: introduce DropdownMenu UI component and create HeatmapGrid file. 2026-03-06 11:14:56 +01:00
Michael baebf50d7a feat: implement new DropdownMenu UI component and create tsc-errors.txt to log existing TypeScript compilation issues. 2026-03-06 11:04:14 +01:00
Michael 02a382e815 feat: implement virtualized HeatmapGrid component for efficient product data display and management. 2026-03-06 10:41:35 +01:00
Michael 8902b535a8 feat: Add ExportDropdown component with Excel and PDF export functionalities for grid data. 2026-03-05 16:18:03 +01:00
Michael 02079423c3 feat: Introduce HeatmapGrid component, a virtualized table for product data with heatmap visualization, gamme selection, and performance optimizations. 2026-03-05 16:13:43 +01:00
Michael 287da96f09 feat: Add grid data export functionality to Excel and PDF. 2026-03-05 16:05:40 +01:00
Michael 4de420cd48 feat: implement HeatmapGrid component using TanStack Table and Virtual for efficient product data visualization with state management and performance optimizations. 2026-03-05 15:56:06 +01:00
Michael c7fa25a5d1 feat: Implement an Apple-inspired design system with dark/light modes and introduce the initial dashboard layout including a heatmap grid component. 2026-03-05 14:08:29 +01:00
Michael a008b40a59 feat: implement AI copilot scoring engine for product analysis and recommendations, including a verification script for recent product logic. 2026-03-05 10:58:29 +01:00
Michael 56b09a438d feat: implement client-side grid with heatmap and associated components for product assortment revision. 2026-03-05 10:23:39 +01:00
Michael 4716659c29 feat(grid): optimize global search to filter strictly by product name (libelle1) and codein 2026-02-27 15:00:57 +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 d86eacaef7 feat: implement HeatmapGrid component for product data visualization with virtualized rows and performance optimizations. 2026-02-27 13:23:47 +01:00
Michael a053556a64 feat: add BulkAiAnalyzer component for AI-driven product scoring and gamme suggestions. 2026-02-27 10:49:58 +01:00
Michael b0bb8cc09a feat: Implement bulk AI product analysis, including algorithmic scoring and context profiling, with a new OpenRouter client. 2026-02-27 10:44:02 +01:00
Michael 51a30b26e4 feat: establish Apple-inspired global design system and add initial AI analysis UI components. 2026-02-27 10:26:09 +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 324a2621c1 feat: Implement AI Copilot context profiling to generate adaptive product analysis profiles and signals. 2026-02-27 09:37:49 +01:00