CoreCashbook V1.0.0
This commit is contained in:
commit
7dbdd2dc5b
18 files changed
+1149
No files matched your search
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
// /var/www/data/database.php
|
||||
$dbPath = '/var/www/data/core.sqlite';
|
||||
|
||||
try {
|
||||
$pdo = new PDO("sqlite:" . $dbPath);
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
|
||||
|
||||
$pdo->exec("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, password_hash TEXT NOT NULL, role TEXT DEFAULT 'user')");
|
||||
$pdo->exec("CREATE TABLE IF NOT EXISTS audit_logs (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, username TEXT, action TEXT, target TEXT, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP)");
|
||||
$pdo->exec("CREATE TABLE IF NOT EXISTS settings (config_key TEXT PRIMARY KEY, config_value TEXT NOT NULL)");
|
||||
|
||||
$pdo->exec("CREATE TABLE IF NOT EXISTS transactions (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
type TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
amount REAL NOT NULL,
|
||||
date DATE NOT NULL,
|
||||
category TEXT,
|
||||
is_recurring INTEGER DEFAULT 0,
|
||||
frequency TEXT,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)");
|
||||
|
||||
// Dynamische Spalten
|
||||
try { $pdo->exec("ALTER TABLE transactions ADD COLUMN receipt_path TEXT"); } catch (PDOException $e) {}
|
||||
try { $pdo->exec("ALTER TABLE transactions ADD COLUMN company TEXT"); } catch (PDOException $e) {}
|
||||
try { $pdo->exec("ALTER TABLE transactions ADD COLUMN description TEXT"); } catch (PDOException $e) {}
|
||||
try { $pdo->exec("ALTER TABLE transactions ADD COLUMN is_paid INTEGER DEFAULT 1"); } catch (PDOException $e) {} // NEU
|
||||
|
||||
$pdo->exec("CREATE TABLE IF NOT EXISTS logbook (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
date DATE NOT NULL,
|
||||
start_location TEXT NOT NULL,
|
||||
end_location TEXT NOT NULL,
|
||||
distance_km REAL NOT NULL,
|
||||
purpose TEXT,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)");
|
||||
|
||||
$stmt = $pdo->query("SELECT COUNT(*) FROM users");
|
||||
if ($stmt->fetchColumn() == 0) {
|
||||
$hash = password_hash('admin', PASSWORD_DEFAULT);
|
||||
$insert = $pdo->prepare("INSERT INTO users (username, password_hash, role) VALUES (?, ?, ?)");
|
||||
$insert->execute(['admin', $hash, 'admin']);
|
||||
}
|
||||
|
||||
} catch (PDOException $e) {
|
||||
die(json_encode(['success' => false, 'error' => 'Datenbankfehler: ' . $e->getMessage()]));
|
||||
}
|
||||
?>
|
||||
Reference in new issue
Block a user