Implementation de la feature de gestion des fichiers sur les investissements
This commit is contained in:
1 parent
f6829dec9d
commit
8953d0bb35
21 files changed
+1729
-181
No files matched your search
@@ -2532,4 +2532,48 @@ db.exec('CREATE INDEX IF NOT EXISTS idx_pertes_inv ON investissement_pertes(inve
|
||||
}
|
||||
}
|
||||
|
||||
// ── Migration : table documents ───────────────────────────────────────────
|
||||
// Pièces jointes de l'utilisateur (compte de login) — pour l'instant
|
||||
// uniquement des documents rattachés à un investissement (entity_type
|
||||
// ='investissement', entity_id=investissements.id), mais entity_type/
|
||||
// entity_id/categorie restent génériques pour accueillir d'autres types de
|
||||
// documents à l'avenir (demande Olivier 29/08/26). Quota de stockage et de
|
||||
// nombre de documents par utilisateur — valeur fixe globale pour l'instant,
|
||||
// cf. QUOTA_BYTES/QUOTA_COUNT dans backend/src/routes/documents.js.
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS documents (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
categorie TEXT NOT NULL DEFAULT 'investissement',
|
||||
entity_type TEXT,
|
||||
entity_id INTEGER,
|
||||
nom_affichage TEXT NOT NULL,
|
||||
nom_original TEXT NOT NULL,
|
||||
extension TEXT NOT NULL,
|
||||
mime_type TEXT,
|
||||
taille_octets INTEGER NOT NULL,
|
||||
filename TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
)
|
||||
`);
|
||||
db.exec('CREATE INDEX IF NOT EXISTS idx_documents_user ON documents(user_id)');
|
||||
db.exec('CREATE INDEX IF NOT EXISTS idx_documents_entity ON documents(entity_type, entity_id)');
|
||||
|
||||
// ── Migration : quotas documentaires configurables (Admin > Général) ──────
|
||||
// Demande Olivier 29/08/26 : plutôt qu'une valeur fixe codée en dur dans
|
||||
// backend/src/routes/documents.js, le quota (par utilisateur — même valeur
|
||||
// pour tous les comptes, pas de personnalisation individuelle pour l'instant)
|
||||
// est stocké sur la ligne unique de smtp_config, comme le reste des
|
||||
// paramètres généraux (app_name, app_url...), et lu à la volée par
|
||||
// documents.js à chaque requête. Défauts alignés sur les anciennes
|
||||
// constantes : 5 Go / 500 documents.
|
||||
const smtpCols = db.prepare("PRAGMA table_info(smtp_config)").all().map(c => c.name);
|
||||
if (!smtpCols.includes('documents_quota_bytes')) {
|
||||
db.exec('ALTER TABLE smtp_config ADD COLUMN documents_quota_bytes INTEGER NOT NULL DEFAULT 5368709120'); // 5 Go (Gio)
|
||||
}
|
||||
if (!smtpCols.includes('documents_quota_count')) {
|
||||
db.exec('ALTER TABLE smtp_config ADD COLUMN documents_quota_count INTEGER NOT NULL DEFAULT 500');
|
||||
}
|
||||
|
||||
export default db;
|
||||
Reference in new issue
Block a user