<?php
session_start();
if (!isset($_SESSION['usuario']) || $_SESSION['tipo'] !== 'inversionista') {
    header("Location: index.php");
    exit();
}

include "conexion.php";
include "funciones.php";

$mensaje = '';
$saldo_disponible = null;
$fecha_seleccionada = date('Y-m-d');
$nombre_inversionista = '';
$idinv_actual = null;
$mensaje_actualizacion = '';

// Obtener datos del inversionista logueado
$stmt_inv = $conn->prepare("SELECT idinv, nominv, mailinv FROM inversionista WHERE mailinv = ?");
$stmt_inv->bind_param("s", $_SESSION['usuario']);
$stmt_inv->execute();
$result_inv = $stmt_inv->get_result();

if ($result_inv->num_rows === 0) {
    session_destroy();
    header("Location: index.php?error=inversionista_no_encontrado");
    exit();
}

$inv_data = $result_inv->fetch_assoc();
$idinv_actual = $inv_data['idinv'];
$nombre_inversionista = $inv_data['nominv'];
$mail_actual = $inv_data['mailinv'];

// Si se envió el formulario para actualizar datos
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['accion']) && $_POST['accion'] === 'actualizar_datos') {
    $nuevo_email = trim($_POST['email'] ?? '');
    $nueva_contrasena = $_POST['password'] ?? '';
    $confirmar_contrasena = $_POST['password_confirm'] ?? '';

    $errores = [];

    if (empty($nuevo_email)) {
        $errores[] = "El correo electrónico es obligatorio.";
    } elseif (!filter_var($nuevo_email, FILTER_VALIDATE_EMAIL)) {
        $errores[] = "El correo electrónico no es válido.";
    } else {
        $stmt_check = $conn->prepare("SELECT idinv FROM inversionista WHERE mailinv = ? AND idinv != ?");
        $stmt_check->bind_param("si", $nuevo_email, $idinv_actual);
        $stmt_check->execute();
        $result_check = $stmt_check->get_result();
        if ($result_check->num_rows > 0) {
            $errores[] = "El correo electrónico ya está en uso por otro inversionista.";
        }
        $stmt_check->close();
    }

    if (!empty($nueva_contrasena)) {
        if (strlen($nueva_contrasena) < 6) {
            $errores[] = "La contraseña debe tener al menos 6 caracteres.";
        }
        if ($nueva_contrasena !== $confirmar_contrasena) {
            $errores[] = "Las contraseñas no coinciden.";
        }
    }

    if (empty($errores)) {
        if (!empty($nueva_contrasena)) {
            $sql_update = "UPDATE inversionista SET mailinv = ?, coninv = ? WHERE idinv = ?";
            $stmt_update = $conn->prepare($sql_update);
            $stmt_update->bind_param("ssi", $nuevo_email, $nueva_contrasena, $idinv_actual);
        } else {
            $sql_update = "UPDATE inversionista SET mailinv = ? WHERE idinv = ?";
            $stmt_update = $conn->prepare($sql_update);
            $stmt_update->bind_param("si", $nuevo_email, $idinv_actual);
        }

        if ($stmt_update->execute()) {
            $_SESSION['usuario'] = $nuevo_email;
            $mensaje_actualizacion = "<div class='alert alert-success'>✅ Datos actualizados correctamente.</div>";
        } else {
            $mensaje_actualizacion = "<div class='alert alert-danger'>❌ Error al actualizar los datos.</div>";
        }
        $stmt_update->close();
    } else {
        $mensaje_actualizacion = "<div class='alert alert-warning'>" . implode("<br>", $errores) . "</div>";
    }
}

// Si se envió el formulario para consultar saldo
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['accion']) && $_POST['accion'] === 'consultar_saldo') {
    $fecha_seleccionada = $_POST['fecha_consulta'] ?? date('Y-m-d');
    $saldo_disponible = dame_saldo($conn, $idinv_actual, $fecha_seleccionada);
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Consulta de Saldo - Inversionista</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        body { padding: 20px; background-color: #f8f9fa; }
        .card { box-shadow: 0 0 10px rgba(0,0,0,0.1); }
        .form-label { font-weight: bold; }
        .saldo-display {
            font-size: 2rem;
            font-weight: bold;
            color: #28a745;
        }
        .user-display {
            background: #e9ecef;
            padding: 10px;
            border-radius: 5px;
            margin-bottom: 20px;
        }
        .btn-personal {
            background-color: #6f42c1;
            border-color: #6f42c1;
        }
        .btn-personal:hover {
            background-color: #5a32a3;
            border-color: #5a32a3;
        }
    </style>
</head>
<body>
    <nav class="mb-4 d-flex gap-2">
        <button type="button" class="btn btn-personal" data-bs-toggle="modal" data-bs-target="#modalDatosPersonales">
            📝 Datos Personales
        </button>
        <a href="index.php" class="btn btn-outline-secondary">Cerrar Sesión</a>
    </nav>

    <div class="container">
        <div class="card p-4">
            <h2 class="mb-4">Consulta de Saldo</h2>

            <div class="user-display">
                <strong>Inversionista:</strong> <?= htmlspecialchars($nombre_inversionista) ?> <br>
                <small><?= htmlspecialchars($_SESSION['usuario']) ?></small>
            </div>

            <?php if ($mensaje_actualizacion): ?>
                <?= $mensaje_actualizacion ?>
            <?php endif; ?>

            <form method="POST" class="row g-3">
                <input type="hidden" name="accion" value="consultar_saldo">

                <div class="col-md-8">
                    <label for="fecha_consulta" class="form-label">Fecha de Consulta</label>
                    <input type="date" class="form-control" id="fecha_consulta" name="fecha_consulta"
                           value="<?= htmlspecialchars($fecha_seleccionada) ?>" required>
                </div>

                <div class="col-md-4 d-flex align-items-end">
                    <button type="submit" class="btn btn-primary w-100">Consultar Saldo</button>
                </div>
            </form>

            <?php if ($saldo_disponible !== null): ?>
                <div class="row mt-4">
                    <div class="col-md-12">
                        <div class="alert alert-success">
                            <h4>Saldo hasta el <strong><?= htmlspecialchars($fecha_seleccionada) ?></strong>:</h4>
                            <div class="saldo-display">
                                $<?= number_format($saldo_disponible, 2) ?>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="row mt-3">
                    <div class="col-md-12">
                        <a href="historial.php?fecha=<?= urlencode($fecha_seleccionada) ?>" 
                           class="btn btn-outline-info btn-lg w-100">
                            📊 Ver Historial de Movimientos
                        </a>
                    </div>
                </div>
            <?php endif; ?>
        </div>
    </div>

    <!-- Modal para Datos Personales -->
    <div class="modal fade" id="modalDatosPersonales" tabindex="-1" aria-labelledby="modalDatosPersonalesLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header" style="background-color: #6f42c1; color: white;">
                    <h5 class="modal-title" id="modalDatosPersonalesLabel">📝 Editar Datos Personales</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Cerrar"></button>
                </div>
                <div class="modal-body">
                    <form method="POST" id="formDatosPersonales">
                        <input type="hidden" name="accion" value="actualizar_datos">

                        <div class="mb-3">
                            <label for="email" class="form-label">Correo Electrónico</label>
                            <input type="email" class="form-control" id="email" name="email" 
                                   value="<?= htmlspecialchars($mail_actual) ?>" required>
                        </div>

                        <div class="mb-3">
                            <label for="password" class="form-label">Nueva Contraseña (opcional)</label>
                            <input type="password" class="form-control" id="password" name="password" placeholder="Dejar vacío para no cambiar">
                        </div>

                        <div class="mb-3">
                            <label for="password_confirm" class="form-label">Confirmar Contraseña</label>
                            <input type="password" class="form-control" id="password_confirm" name="password_confirm" 
                                   placeholder="Repetir si cambia contraseña">
                        </div>

                        <div class="alert alert-info">
                            <small>💡 Si no deseas cambiar la contraseña, deja los campos de contraseña vacíos.</small>
                        </div>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                    <button type="button" class="btn btn-personal" onclick="document.getElementById('formDatosPersonales').submit();">
                        Guardar Cambios
                    </button>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

<?php
$stmt_inv->close();
$conn->close();
?>