prepare("SELECT first_name, avatar FROM auth_users WHERE id = ? LIMIT 1"); $stmt->execute([$iduserlogin]); $user = $stmt->fetch(PDO::FETCH_ASSOC) ?: []; // User schools only $stmt = $pdo->prepare(" SELECT s.id, s.name, s.logo, s.address_street, s.address_postal_code, s.address_city, s.address_province, s.address_country FROM user_schools us JOIN schools s ON us.school_id = s.id WHERE us.user_id = ? AND us.status = 'active' AND s.status = 'active' ORDER BY s.name "); $stmt->execute([$iduserlogin]); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); $schools = array_map(function (array $s): array { $street = trim((string)($s['address_street'] ?? '')); $zip = trim((string)($s['address_postal_code'] ?? '')); $city = trim((string)($s['address_city'] ?? '')); $prov = trim((string)($s['address_province'] ?? '')); $cntry = trim((string)($s['address_country'] ?? '')); $line2Parts = []; if ($zip !== '') $line2Parts[] = $zip; if ($city !== '') $line2Parts[] = $city; $line2 = implode(' ', $line2Parts); if ($prov !== '') $line2 .= ' (' . $prov . ')'; if ($cntry !== '') $line2 .= ' - ' . $cntry; return [ 'id' => (int)$s['id'], 'name' => (string)($s['name'] ?? ''), 'logo' => ($s['logo'] ?? null) !== null && trim((string)$s['logo']) !== '' ? (string)$s['logo'] : null, 'address_street' => $street !== '' ? $street : null, 'address_postal_code' => $zip !== '' ? $zip : null, 'address_city' => $city !== '' ? $city : null, 'address_province' => $prov !== '' ? $prov : null, 'address_country' => $cntry !== '' ? $cntry : null, 'address_full' => trim($street . ($street && $line2 ? ', ' : '') . $line2), ]; }, $rows); $autoSelect = (count($schools) === 1); $selectedSchoolId = $autoSelect ? (int)$schools[0]['id'] : null; echo json_encode([ 'success' => true, 'auto_select' => $autoSelect, 'selected_school_id' => $selectedSchoolId, 'user' => [ 'id' => $iduserlogin, 'first_name' => $user['first_name'] ?? null, 'avatar' => $user['avatar'] ?? null, ], 'schools' => $schools, 'message' => empty($schools) ? 'No active schools assigned to this user. Please contact your school.' : null ], JSON_UNESCAPED_UNICODE); } catch (Throwable $e) { http_response_code(500); echo json_encode([ 'success' => false, 'message' => 'Server error.', 'error' => $e->getMessage() ]); }