<?php
// config.php — Valu-Basic v2.0
// SQLite-basierte Einzelnutzer-Inventarverwaltung

// ── Datenbank (SQLite) ────────────────────────────────────────────────────────
define('SQLITE_PATH', __DIR__ . '/data/valu_basic.sqlite');

// ── Anwendung ─────────────────────────────────────────────────────────────────
define('APP_NAME',    'Valu-Basic');
define('APP_TAGLINE', 'Kostenlose Inventarverwaltung für Privatnutzer');

// ── Session ───────────────────────────────────────────────────────────────────
define('CSRF_TOKEN_NAME',  'csrf_token');
define('SESSION_NAME',     'valubasic_session');
define('SESSION_LIFETIME', 3600);

// ── Uploads ───────────────────────────────────────────────────────────────────
define('UPLOAD_DIR',    __DIR__ . '/upload/');
define('BACKUP_DIR',    __DIR__ . '/backups/');
define('UPLOAD_MAX_SIZE', 4 * 1024 * 1024);  // 4MB
define('MAX_FILE_SIZE',   4 * 1024 * 1024);
define('ALLOWED_IMAGE_TYPES', [
    'image/jpeg', 'image/png', 'image/gif', 'image/webp',
    'image/heic', 'image/heif'
]);
define('ALLOWED_EXTENSIONS', ['jpg','jpeg','png','gif','webp','heic','heif']);

// ── Sicherheit ────────────────────────────────────────────────────────────────
define('MARKTWERT_ASSISTENT_ENABLED', false);

// BACKUP_TOKEN: pro Installation individuell generiert (nicht mehr fest im Code,
// da Valu-Basic als frei herunterladbares Paket sonst überall denselben Token hätte).
// Wird beim ersten Aufruf automatisch erzeugt und in data/backup_token.php abgelegt.
$_backupTokenDir  = __DIR__ . '/data';
$_backupTokenFile = $_backupTokenDir . '/backup_token.php';
if (!is_dir($_backupTokenDir)) {
    @mkdir($_backupTokenDir, 0755, true);
}
if (!file_exists($_backupTokenFile)) {
    $_generatedToken = 'bk_' . bin2hex(random_bytes(32));
    @file_put_contents(
        $_backupTokenFile,
        "<?php\n// Automatisch generiert bei der Ersteinrichtung — nicht committen/teilen!\nif (!defined('BACKUP_TOKEN')) { define('BACKUP_TOKEN', '" . $_generatedToken . "'); }\n"
    );
}
if (file_exists($_backupTokenFile)) {
    require_once $_backupTokenFile;
}
if (!defined('BACKUP_TOKEN')) {
    // Fallback falls data/ nicht beschreibbar ist: wenigstens kein geteilter Token,
    // aber pro Request neu — cron_backup.php sollte in diesem Fall lieber deaktiviert bleiben.
    define('BACKUP_TOKEN', 'bk_' . bin2hex(random_bytes(32)));
}
unset($_backupTokenDir, $_backupTokenFile, $_generatedToken);

// ── Features ──────────────────────────────────────────────────────────────────
define('VALU_BASIC_MODE', true);          // Aktiviert Valu-Basic Einschränkungen
define('VALUSAFE_UPGRADE_URL', 'https://valusafe.palindrom.de'); // Upgrade-Link

// ── Sprache ───────────────────────────────────────────────────────────────────
define('DEFAULT_LANGUAGE', 'de');

// ── PHP-Einstellungen ─────────────────────────────────────────────────────────
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_samesite', 'Lax');
ini_set('session.use_strict_mode', 1);
ini_set('display_errors', 0);
ini_set('log_errors', 1);
error_reporting(E_ALL);

require_once __DIR__ . '/lang/language.php';
