conn = $conn; } /** * Get all preferences for a user * @param int $userId User ID * @return array Associative array of preference_key => preference_value */ public function getUserPreferences($userId) { $sql = "SELECT preference_key, preference_value FROM user_preferences WHERE user_id = ?"; $stmt = $this->conn->prepare($sql); $stmt->bind_param("i", $userId); $stmt->execute(); $result = $stmt->get_result(); $prefs = []; while ($row = $result->fetch_assoc()) { $prefs[$row['preference_key']] = $row['preference_value']; } return $prefs; } /** * Set or update a preference for a user * @param int $userId User ID * @param string $key Preference key * @param string $value Preference value * @return bool Success status */ public function setPreference($userId, $key, $value) { $sql = "INSERT INTO user_preferences (user_id, preference_key, preference_value) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE preference_value = VALUES(preference_value)"; $stmt = $this->conn->prepare($sql); $stmt->bind_param("iss", $userId, $key, $value); return $stmt->execute(); } /** * Get a single preference value for a user * @param int $userId User ID * @param string $key Preference key * @param mixed $default Default value if preference doesn't exist * @return mixed Preference value or default */ public function getPreference($userId, $key, $default = null) { $sql = "SELECT preference_value FROM user_preferences WHERE user_id = ? AND preference_key = ?"; $stmt = $this->conn->prepare($sql); $stmt->bind_param("is", $userId, $key); $stmt->execute(); $result = $stmt->get_result(); if ($row = $result->fetch_assoc()) { return $row['preference_value']; } return $default; } /** * Delete a preference for a user * @param int $userId User ID * @param string $key Preference key * @return bool Success status */ public function deletePreference($userId, $key) { $sql = "DELETE FROM user_preferences WHERE user_id = ? AND preference_key = ?"; $stmt = $this->conn->prepare($sql); $stmt->bind_param("is", $userId, $key); return $stmt->execute(); } /** * Delete all preferences for a user * @param int $userId User ID * @return bool Success status */ public function deleteAllPreferences($userId) { $sql = "DELETE FROM user_preferences WHERE user_id = ?"; $stmt = $this->conn->prepare($sql); $stmt->bind_param("i", $userId); return $stmt->execute(); } } ?>