0, 'allowed_product_types' => 'subscription,carnet,drop_in', 'payment_methods' => 'manual', 'currency_code' => 'EUR', 'enable_notifications' => 1, 'allow_freeze_global' => 1, 'freeze_max_days_global' => 30, 'auto_propagate_on_purchase' => 1, 'allow_full_access_rebooking' => 1, // ... aggiungi tutti gli altri campi con default sensati ]; } else { $pdo = DBHandlerSelect::getInstance()->getConnection(); $stmt = $pdo->prepare(" SELECT * FROM school_settings WHERE school_id = ? LIMIT 1 "); $stmt->execute([$school_id]); $settings = $stmt->fetch(PDO::FETCH_ASSOC); if ($settings) { $schoolSettings = $settings; } else { // Scuola senza impostazioni → crea record con default $stmt_insert = $pdo->prepare(" INSERT INTO school_settings (school_id) VALUES (?) "); $stmt_insert->execute([$school_id]); // Ricarica dopo insert $stmt = $pdo->prepare("SELECT * FROM school_settings WHERE school_id = ? LIMIT 1"); $stmt->execute([$school_id]); $schoolSettings = $stmt->fetch(PDO::FETCH_ASSOC) ?: []; } // Fallback per campi che potrebbero essere NULL $schoolSettings = array_merge([ 'portal_purchases_enabled' => 1, 'allowed_product_types' => 'subscription,carnet,drop_in', 'payment_methods' => 'manual', 'currency_code' => 'EUR', 'enable_notifications' => 1, 'allow_freeze_global' => 1, 'freeze_max_days_global' => 30, 'auto_propagate_on_purchase' => 1, 'allow_full_access_rebooking' => 1, // ... tutti gli altri campi che vuoi default ], $schoolSettings); } // Trasforma stringhe separate da virgola in array (molto comodo) $schoolSettings['payment_methods_array'] = array_filter(explode(',', $schoolSettings['payment_methods'] ?? '')); $schoolSettings['allowed_product_types_array'] = array_filter(explode(',', $schoolSettings['allowed_product_types'] ?? ''));