'pdo_mysql', 'host' => DB_HOST, 'dbname' => DB_NAME, 'user' => DB_USER, 'password' => DB_PASS, 'charset' => 'utf8mb4', ]); // PDO für delight-im/auth $pdo = $conn->getNativeConnection(); $auth = new \Delight\Auth\Auth($pdo); // Tabellen anlegen falls nicht vorhanden $conn->executeStatement(' CREATE TABLE IF NOT EXISTS goals ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, name VARCHAR(255) NOT NULL, unit VARCHAR(50) NOT NULL DEFAULT \'Stück\', daily FLOAT NOT NULL DEFAULT 1, days INT NOT NULL DEFAULT 30, start DATETIME NOT NULL, sets JSON NOT NULL DEFAULT (\'[]\'), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci '); $conn->executeStatement(' CREATE TABLE IF NOT EXISTS schema_migrations ( version VARCHAR(64) NOT NULL PRIMARY KEY, applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci '); $conn->executeStatement(' CREATE TABLE IF NOT EXISTS invites ( id INT AUTO_INCREMENT PRIMARY KEY, token VARCHAR(64) NOT NULL UNIQUE, note VARCHAR(255) DEFAULT NULL, created_by INT NOT NULL, used_by INT DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, expires_at TIMESTAMP NOT NULL, used_at TIMESTAMP DEFAULT NULL ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci '); // Migrations ausführen foreach (glob(__DIR__ . '/../migrations/*.sql') as $file) { $version = basename($file, '.sql'); if (!$conn->fetchOne('SELECT 1 FROM schema_migrations WHERE version = ?', [$version])) { $conn->executeStatement(file_get_contents($file)); $conn->executeStatement('INSERT INTO schema_migrations (version) VALUES (?)', [$version]); } }