Files
demat-facturation/drizzle/0000_dashing_earthquake.sql
Manus 5a01860aba Checkpoint: Application complète de dématérialisation de facturation avec extraction IA (Mistral), authentification locale + Azure AD, stockage local, et export SFTP.
Fonctionnalités implémentées :
✅ Authentification locale (email/password) + Azure AD + Manus OAuth
✅ Upload drag-and-drop de fichiers PDF avec suivi en temps réel
✅ Extraction automatique avec Mistral AI (OCR + LLM)
✅ Détection de doublons (fournisseur, numéro, date)
✅ Score de qualité d'extraction (0-100)
✅ Tableau de bord avec statistiques
✅ Liste des factures avec recherche et filtres
✅ Paramètres utilisateur (LLM, keywords, SFTP)
✅ Historique des imports avec logs détaillés
✅ Gestion des utilisateurs (admin)
✅ Export SFTP manuel/automatique
✅ Stockage local avec organisation YYYY-MM
✅ Tests unitaires d'authentification

Architecture :
- Frontend : React 19 + Vite + TailwindCSS + Radix UI
- Backend : Express + tRPC + Drizzle ORM
- Base de données : MySQL (6 tables)
- IA : Mistral AI pour extraction
- Stockage : Local filesystem
- Export : SFTP

Pages :
- Login (choix local/Azure/Manus)
- Dashboard (statistiques)
- Upload (drag-and-drop)
- Invoices (liste avec recherche)
- Settings (LLM, keywords, SFTP)
- History (logs d'import)
- Users (gestion admin)
2026-01-08 06:02:07 -05:00

14 lines
483 B
SQL

CREATE TABLE `users` (
`id` int AUTO_INCREMENT NOT NULL,
`openId` varchar(64) NOT NULL,
`name` text,
`email` varchar(320),
`loginMethod` varchar(64),
`role` enum('user','admin') NOT NULL DEFAULT 'user',
`createdAt` timestamp NOT NULL DEFAULT (now()),
`updatedAt` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP,
`lastSignedIn` timestamp NOT NULL DEFAULT (now()),
CONSTRAINT `users_id` PRIMARY KEY(`id`),
CONSTRAINT `users_openId_unique` UNIQUE(`openId`)
);