Commit Graph

31 Commits

Author SHA1 Message Date
C_Ma_For cf5bbf91d5 feat: module Images complet — drop, traitement IA, Shopify, upload plan2-deployed 2026-06-08 20:00:20 +02:00
C_Ma_For fe9c3b9ccb fix: inclure 'uploading' dans le compteur processing de GlobalActions 2026-06-08 19:18:40 +02:00
C_Ma_For 568fe0d38e feat: composants Lightbox plein écran + GlobalActions barre d'upload 2026-06-08 17:45:22 +02:00
C_Ma_For 683db58f4b feat: composant ImageCard avec miniatures avant/après, feather, rotation, upload 2026-06-08 17:44:45 +02:00
C_Ma_For 4c1cf73435 feat: composant DropZone drag & drop HEIC/JPG/PNG/ZIP 2026-06-08 17:43:40 +02:00
C_Ma_For 901199c45d feat: hook useImages — pipeline HEIC→IA→feather→rotation→search→upload 2026-06-08 17:41:00 +02:00
C_Ma_For 50469700d0 feat: utilitaires client heicConverter, bgRemover, imageRotator, zipImporter (TS)
Porte les 4 utilitaires de traitement d'images en TypeScript pour utilisation côté client :
- heicConverter.ts : convertit HEIC/HEIF en JPEG via heic2any
- bgRemover.ts : supprime les fonds d'images avec @imgly/background-removal + composite sur blanc
- imageRotator.ts : pivote les images JPEG via Canvas
- zipImporter.ts : extrait les images d'un fichier ZIP avec structure dossier-ref/image.ext

Tous les modules utilisent des APIs du navigateur et doivent être importés dynamiquement depuis du code 'use client'.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 17:30:01 +02:00
C_Ma_For a5ced27e93 feat: API route POST /api/images/upload (TDD) 2026-06-08 17:25:40 +02:00
C_Ma_For c9422be78e feat: API route GET /api/products/search (TDD)
Implémentation test-driven du endpoint de recherche de produits par référence.
- Tests unitaires complets validant les cas nominaux et d'erreur
- Validation du paramètre ref avec gestion des chaînes vides
- Intégration avec searchProductByRef de lib/shopify
- Gestion appropriée des erreurs HTTP (400, 500)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 17:15:58 +02:00
C_Ma_For 53008d1d43 fix: valider data.image.src dans uploadProductImage 2026-06-08 17:10:26 +02:00
C_Ma_For 9675366db9 feat: client Shopify Admin REST API (search + upload) 2026-06-08 16:21:55 +02:00
C_Ma_For c97a7faaa9 feat: types ImageItem + dépendances heic2any jszip
- Install heic2any and jszip dependencies
- Create src/types/images.ts with ImageItem, ImageStatus, ImageProgress, and ZipEntry types
- heic2any includes bundled TypeScript types (no declaration file needed)
- ImageItem is the central data model for the image processing module with support for:
  - HEIC to JPEG conversion
  - AI-powered background removal
  - Shopify product lookup and upload
  - Progress tracking and error handling
  - Rotation and feather adjustments (cached PNG blob for fast re-processing)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 15:47:34 +02:00
C_Ma_For b25a712a69 fix: correct adapter import name PrismaBetterSqlite3 in seed.mjs 2026-06-07 11:42:57 +02:00
C_Ma_For ee70ea377f fix: use better-sqlite3 adapter in seed.mjs (Prisma 7 requirement) 2026-06-07 11:41:42 +02:00
C_Ma_For 8bd49050f6 fix: add .dockerignore to exclude .env files from build context (was overriding DATABASE_URL) 2026-06-07 02:00:21 +02:00
C_Ma_For 79ebb6ced3 fix: use npm ci --omit=dev in runner (resolves all transitive prisma deps) 2026-06-07 01:37:03 +02:00
C_Ma_For d80e50e9de fix: recreate .bin/prisma as symlink in runner (preserves __dirname for WASM resolution) 2026-06-07 01:32:37 +02:00
C_Ma_For f022238a40 fix: copy full node_modules/prisma package for WASM files in runner stage 2026-06-07 01:28:41 +02:00
C_Ma_For f23c954ecd chore: add public/ directory (required by Next.js standalone build) 2026-06-07 01:25:00 +02:00
C_Ma_For 96700ae252 fix: eslint disable-next-line for required any casts (NextAuth v4 limitation) 2026-06-07 01:22:07 +02:00
C_Ma_For 99c3380d00 feat: dockerfile + docker-compose + déploiement VPS gestion.materiaux-destock.fr 2026-06-07 00:27:16 +02:00
C_Ma_For 51f87c0672 feat: app shell avec sidebar, header et pages placeholder
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 00:20:57 +02:00
C_Ma_For 8d06706a24 feat: page login avec gestion erreurs et rate limiting
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 00:20:36 +02:00
C_Ma_For 44b3b4dd8d fix: improve type safety in NextAuth callbacks (remove any, add explanatory comments) 2026-06-07 00:08:11 +02:00
C_Ma_For 38dc6efc09 feat: middleware protection routes + restriction admin /parametres
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 00:05:28 +02:00
C_Ma_For f9a14b009a feat: NextAuth credentials + JWT 8h + rate limiting
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 00:05:14 +02:00
C_Ma_For 2acf899465 feat: rate limiting connexion (5 essais / 15 min) 2026-06-06 17:24:19 +02:00
C_Ma_For dbb155cb3a fix: remove hardcoded seed password from package.json (use SEED_ADMIN_PASSWORD env var) 2026-06-06 17:22:25 +02:00
C_Ma_For 192def9008 feat: prisma schema User + SyncRun + seed admin
Sets up Prisma 7 with SQLite (better-sqlite3 adapter), User and SyncRun models, migration, and admin seed account for mathieu.fort@gmail.com.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 17:15:54 +02:00
C_Ma_For 1b60fd79f7 chore: replace boilerplate page.tsx with minimal placeholder 2026-06-06 16:21:34 +02:00
C_Ma_For f435b1f6cc chore: scaffold Next.js 14 app 2026-06-06 16:04:15 +02:00