<?php
// Ce script met à jour directement la base de données sans utiliser les fonctions abstraites
require_once './config.php';

echo "<h1>Mise à jour directe des paramètres</h1>";

// Formulaire de mise à jour
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = $_POST['name'] ?? '';
    $email = $_POST['email'] ?? '';
    $phone = $_POST['phone'] ?? '';
    $address = $_POST['address'] ?? '';
    $city = $_POST['city'] ?? '';
    
    try {
        // Connexion directe à la base de données
        $dbFile = __DIR__ . '/database/association.db';
        $db = new PDO('sqlite:' . $dbFile);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        
        // D'abord, vérifier si la table existe
        $query = "SELECT name FROM sqlite_master WHERE type='table' AND name='settings'";
        $stmt = $db->query($query);
        $tableExists = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if (!$tableExists) {
            // La table n'existe pas, la créer
            $query = "CREATE TABLE settings (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                name TEXT NOT NULL,
                email TEXT,
                phone TEXT,
                address TEXT,
                city TEXT,
                description TEXT,
                founding_date TEXT,
                logo TEXT,
                created_at TEXT DEFAULT CURRENT_TIMESTAMP,
                updated_at TEXT
            )";
            $db->exec($query);
            echo "<div class='alert alert-info'>La table settings a été créée.</div>";
        }
        
        // Vérifier si des données existent
        $query = "SELECT COUNT(*) as count FROM settings";
        $stmt = $db->query($query);
        $count = $stmt->fetch(PDO::FETCH_ASSOC)['count'];
        
        if ($count > 0) {
            // Supprimer les données existantes
            $query = "DELETE FROM settings";
            $db->exec($query);
            echo "<div class='alert alert-info'>Les données existantes ont été supprimées.</div>";
        }
        
        // Insérer les nouvelles données
        $query = "INSERT INTO settings (name, email, phone, address, city, created_at, updated_at) 
                 VALUES (:name, :email, :phone, :address, :city, :created_at, :updated_at)";
        
        $stmt = $db->prepare($query);
        $stmt->bindParam(':name', $name);
        $stmt->bindParam(':email', $email);
        $stmt->bindParam(':phone', $phone);
        $stmt->bindParam(':address', $address);
        $stmt->bindParam(':city', $city);
        
        $now = date('Y-m-d H:i:s');
        $stmt->bindParam(':created_at', $now);
        $stmt->bindParam(':updated_at', $now);
        
        $result = $stmt->execute();
        
        if ($result) {
            echo "<div class='alert alert-success'>Les paramètres ont été mis à jour avec succès.</div>";
            
            // Afficher les données mises à jour
            $query = "SELECT * FROM settings";
            $stmt = $db->query($query);
            $settings = $stmt->fetchAll(PDO::FETCH_ASSOC);
            
            echo "<h2>Paramètres mis à jour :</h2>";
            echo "<pre>";
            print_r($settings);
            echo "</pre>";
        } else {
            echo "<div class='alert alert-danger'>Erreur lors de la mise à jour des paramètres.</div>";
        }
        
    } catch (PDOException $e) {
        echo "<div class='alert alert-danger'>Erreur PDO : " . $e->getMessage() . "</div>";
    }
}

// Récupérer les données actuelles
try {
    $dbFile = __DIR__ . '/database/association.db';
    $db = new PDO('sqlite:' . $dbFile);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    $query = "SELECT * FROM settings LIMIT 1";
    $stmt = $db->query($query);
    $settings = $stmt->fetch(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    echo "<div class='alert alert-danger'>Erreur lors de la récupération des paramètres : " . $e->getMessage() . "</div>";
    $settings = [];
}
?>

<div class="container mt-4">
    <form method="post">
        <div class="mb-3">
            <label for="name" class="form-label">Nom de l'association</label>
            <input type="text" class="form-control" id="name" name="name" value="<?php echo isset($settings['name']) ? htmlspecialchars($settings['name']) : ''; ?>">
        </div>
        
        <div class="mb-3">
            <label for="email" class="form-label">Email</label>
            <input type="email" class="form-control" id="email" name="email" value="<?php echo isset($settings['email']) ? htmlspecialchars($settings['email']) : ''; ?>">
        </div>
        
        <div class="mb-3">
            <label for="phone" class="form-label">Téléphone</label>
            <input type="text" class="form-control" id="phone" name="phone" value="<?php echo isset($settings['phone']) ? htmlspecialchars($settings['phone']) : ''; ?>">
        </div>
        
        <div class="mb-3">
            <label for="address" class="form-label">Adresse</label>
            <input type="text" class="form-control" id="address" name="address" value="<?php echo isset($settings['address']) ? htmlspecialchars($settings['address']) : ''; ?>">
        </div>
        
        <div class="mb-3">
            <label for="city" class="form-label">Ville</label>
            <input type="text" class="form-control" id="city" name="city" value="<?php echo isset($settings['city']) ? htmlspecialchars($settings['city']) : ''; ?>">
        </div>
        
        <button type="submit" class="btn btn-primary">Mettre à jour</button>
    </form>
    
    <div class="mt-4">
        <a href="settings/association.php" class="btn btn-secondary">Retour à la page des paramètres</a>
    </div>
</div>
