connect_error) { http_response_code(500); die(json_encode(['error' => 'Koneksi database gagal: ' . $conn->connect_error])); } $conn->select_db($db); // Auto create tables $conn->query("CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(100) NOT NULL UNIQUE, nama_lengkap VARCHAR(200) NOT NULL, role ENUM('admin','petugas','pengurus','walikota') NOT NULL, password_hash VARCHAR(255) NOT NULL, aktif TINYINT(1) NOT NULL DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); $conn->set_charset('utf8mb4'); function getDB() { global $conn; return $conn; } header('Content-Type: application/json; charset=utf-8'); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type'); if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(200); exit(); } ?>