{% extends "online/base.html" %}
{% block title %}Cuenta y privacidad{% endblock %}
{% block content %}
<header><p class="eyebrow">SEGURIDAD Y DATOS</p><h1>Cuenta y privacidad</h1><p>Controla tu contraseña, descarga tus datos y presenta solicitudes al responsable del servidor.</p></header>
<div class="admin-columns">
<section class="server-card" aria-labelledby="mfa-settings-title">
  <h2 id="mfa-settings-title">Verificación en dos pasos</h2>
  {% if account.totp_enabled %}
    <p><strong>Activa.</strong> La contraseña necesita además un código TOTP o un código de recuperación.</p>
    <form method="post" action="{{ url_for('online_mfa_disable') }}" class="server-form">
      <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
      <label for="mfa-current-password">Contraseña actual</label><input id="mfa-current-password" name="current_password" type="password" autocomplete="current-password" required>
      <label for="mfa-disable-code">Código TOTP o de recuperación</label><input id="mfa-disable-code" name="code" autocomplete="one-time-code" required>
      <button class="button" type="submit">Desactivar segundo factor y cerrar sesiones</button>
    </form>
  {% elif mfa_setup_secret %}
    <p>Introduce esta clave en una aplicación TOTP. Se muestra como texto para que también sea accesible sin cámara ni código QR.</p>
    <label>Clave secreta TOTP<input value="{{ mfa_setup_secret }}" readonly spellcheck="false"></label>
    <label>Dirección de configuración completa<textarea readonly spellcheck="false">{{ mfa_setup_uri }}</textarea></label>
    <form method="post" action="{{ url_for('online_mfa_confirm') }}" class="server-form">
      <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
      <label for="mfa-confirm-code">Código de seis cifras generado por la aplicación</label><input id="mfa-confirm-code" name="code" inputmode="numeric" pattern="[0-9]{6}" maxlength="6" autocomplete="one-time-code" required>
      <button class="button button-primary" type="submit">Confirmar y activar</button>
    </form>
  {% else %}
    <p>Añade una aplicación de autenticación compatible con TOTP. Se generarán diez códigos de recuperación de un solo uso.</p>
    <form method="post" action="{{ url_for('online_mfa_prepare') }}"><input type="hidden" name="csrf_token" value="{{ csrf_token() }}"><button class="button button-primary" type="submit">Preparar segundo factor</button></form>
  {% endif %}
  {% if mfa_recovery_codes %}
    <div class="notice notice-warning" role="status"><h3>Guarda estos códigos ahora</h3><p>No volverán a mostrarse. Cada uno funciona una sola vez.</p><ul>{% for code in mfa_recovery_codes %}<li><code>{{ code }}</code></li>{% endfor %}</ul></div>
  {% endif %}
</section>
<section class="server-card" aria-labelledby="password-title">
  <h2 id="password-title">Cambiar contraseña</h2>
  <form method="post" action="{{ url_for('online_change_password') }}" class="server-form">
    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
    <label for="current-password">Contraseña actual</label><input id="current-password" name="current_password" type="password" autocomplete="current-password" required>
    <label for="new-password">Contraseña nueva</label><input id="new-password" name="new_password" type="password" minlength="12" maxlength="128" autocomplete="new-password" required>
    <label for="password-confirm">Repetir contraseña nueva</label><input id="password-confirm" name="password_confirm" type="password" minlength="12" maxlength="128" autocomplete="new-password" required>
    <button class="button button-primary" type="submit">Cambiar contraseña y cerrar sesiones</button>
  </form>
</section>
<section class="server-card" aria-labelledby="data-title">
  <h2 id="data-title">Mis datos</h2>
  <p>La descarga incluye cuenta, membresías, reportes, compras y registros asociados.</p>
  <a class="button" href="{{ url_for('online_privacy_export') }}">Descargar mis datos en JSON</a>
  <form method="post" class="server-form">
    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
    <label for="request-type">Tipo de solicitud</label>
    <select id="request-type" name="request_type">{% for key, label in PRIVACY_REQUEST_TYPES.items() %}<option value="{{ key }}">{{ label }}</option>{% endfor %}</select>
    <label for="details">Detalles</label><textarea id="details" name="details" maxlength="3000"></textarea>
    <button class="button button-primary" type="submit">Registrar solicitud</button>
  </form>
</section>
</div>
<section aria-labelledby="privacy-history-title">
  <h2 id="privacy-history-title">Solicitudes registradas</h2>
  {% if privacy_requests %}<div class="server-table-wrap"><table class="server-table"><thead><tr><th>Tipo</th><th>Estado</th><th>Respuesta</th><th>Fecha</th></tr></thead><tbody>
  {% for item in privacy_requests %}<tr><td>{{ PRIVACY_REQUEST_TYPES.get(item.request_type, item.request_type) }}</td><td>{{ item.status }}</td><td>{{ item.response or "Pendiente" }}</td><td>{{ item.updated_at|date_label }}</td></tr>{% endfor %}
  </tbody></table></div>{% else %}<p>No hay solicitudes.</p>{% endif %}
</section>
{% endblock %}
