# Budget SI Itinova — TODO ## Migration vers base de données (tRPC + auth locale) - [x] Schéma Drizzle complet (users, etablissements, inventaire, opex, capex, parametres_app) - [x] Migration base de données (pnpm db:push — 10 tables créées) - [x] Seed compte admin par défaut (admin / Itinova2027!) - [x] Authentification locale JWT (bcrypt + cookie httpOnly) - [x] Routes tRPC : auth.login, auth.me, auth.logout - [x] Routes tRPC : users.list, users.create, users.update, users.delete, users.importBulk - [x] Routes tRPC : etablissements.list, etablissements.upsert, etablissements.delete - [x] Routes tRPC : parametres.get, parametres.set, parametres.setBulk - [x] Routes tRPC : opex.getPostes, opex.upsertPoste, opex.getMontantsEtab, opex.setMontantEtab, opex.getValidated, opex.validate - [x] Routes tRPC : inventaire.get, inventaire.import - [x] Routes tRPC : capex.get, capex.save - [x] Page de connexion avec branding Itinova/Santinova - [x] Protection des routes (ProtectedRoute dans App.tsx) - [x] Hook useAuth branché sur tRPC (auth.me) - [x] Bouton déconnexion dans la sidebar - [x] Page Paramètres — onglet Établissements branché sur tRPC - [x] Page Paramètres — onglet Utilisateurs branché sur tRPC - [x] ImportModal — import inventaire sauvegardé en BDD via tRPC - [x] ImportModal — import établissements sauvegardé en BDD via tRPC - [x] ImportModal — import utilisateurs sauvegardé en BDD via tRPC - [x] Tests Vitest (14 tests passent) : auth.logout, auth.me, auth.login, etablissements.list, users.list, parametres.get ## Fonctionnalités existantes (localStorage — conservées) - [x] Page Renouvellement PC (Home.tsx) — données inventaire depuis localStorage - [x] Page Budget 2027 — données depuis localStorage - [x] Page DSI CAPEX — données depuis localStorage - [x] Page DSI OPEX — données depuis localStorage - [x] Pages Santinova, Soins Santé, St-Exupéry — données depuis localStorage - [x] Contexte Paramètres (seuils, coûts) — localStorage - [x] Contexte Année — localStorage ## Améliorations futures - [ ] Migrer les pages Budget2027, DsiCapex, DsiOpex pour lire depuis la BDD via tRPC - [ ] Gestion des droits par établissement (userEtablissements) - [ ] Export PDF/Excel des budgets - [ ] Historique des modifications (audit log)