Initial commit: charles.secourit.fr - App de suivi maintenance 360 Partners

This commit is contained in:
2026-08-24 12:12:51 +00:00
commit c7109893b2
21 changed files with 704 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
const Database = require('better-sqlite3');
const path = require('path');
const bcrypt = require('bcryptjs');
const dbDir = path.join(__dirname, '..', 'data');
const db = new Database(path.join(dbDir, 'charles.db'));
db.pragma('journal_mode = WAL');
db.exec(`
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL,
name TEXT NOT NULL,
role TEXT NOT NULL CHECK(role IN ('admin', 'client'))
);
CREATE TABLE IF NOT EXISTS domains (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
company_name TEXT NOT NULL,
parent_id INTEGER,
sort_order INTEGER DEFAULT 0,
has_cloud INTEGER DEFAULT 0,
cloud_details TEXT DEFAULT '',
has_website INTEGER DEFAULT 0,
website_wordpress INTEGER DEFAULT 0,
website_managed_by TEXT DEFAULT '',
website_details TEXT DEFAULT '',
has_emails INTEGER DEFAULT 0,
email_count INTEGER DEFAULT 0,
email_addresses TEXT DEFAULT '[]',
has_team INTEGER DEFAULT 0,
team_members TEXT DEFAULT '[]',
notes TEXT DEFAULT '',
monthly_price REAL DEFAULT 0,
created_at TEXT DEFAULT (datetime('now')),
updated_at TEXT DEFAULT (datetime('now')),
FOREIGN KEY (parent_id) REFERENCES domains(id)
);
`);
const userCount = db.prepare('SELECT COUNT(*) as count FROM users').get().count;
if (userCount === 0) {
const insert = db.prepare('INSERT INTO users (username, password_hash, name, role) VALUES (?, ?, ?, ?)');
insert.run('pierre', bcrypt.hashSync('Charles2026!', 10), 'Pierre', 'admin');
insert.run('charles', bcrypt.hashSync('360partners!', 10), 'Charles', 'client');
}
const domainCount = db.prepare('SELECT COUNT(*) as count FROM domains').get().count;
if (domainCount === 0) {
const insert = db.prepare('INSERT INTO domains (name, company_name, parent_id, sort_order) VALUES (?, ?, ?, ?)');
const result = insert.run('360-partners.fr', '360 Partners', null, 0);
const pid = result.lastInsertRowid;
insert.run('monsieur-edgar.fr', 'Monsieur Edgar', pid, 1);
insert.run('monsieur-edgar.com', 'Monsieur Edgar', pid, 2);
insert.run('qwarter.fr', 'Qwarter', pid, 3);
insert.run('agenceredo.fr', 'Agence Redo', pid, 4);
insert.run('hub-grade.com', 'HUB-GRADE', pid, 5);
insert.run('momentz.online', 'MOMENTZ', pid, 6);
insert.run('momentz.paris', 'MOMENTZ', pid, 7);
}
module.exports = db;