<?php
require_once __DIR__ . '/../includes/init.php';
require_once __DIR__ . '/../includes/plugins.php';
require_once __DIR__ . '/../includes/paypal.php';
require_login();
$u = current_user();

$slug = $_GET['plugin'] ?? '';
$plugin = plugin_get($slug);
if (!$plugin) { http_response_code(404); exit('Plugin no encontrado.'); }

// ¿ya tiene licencia?
if (user_has_license((int)$u['id'], $slug)) {
    flash_set('info', 'Ya tienes la Premium de ' . $plugin['name'] . '.');
    redirect(BASE . '/panel/');
}

// ¿ya tiene una orden pendiente para este plugin?
$st = db()->prepare("SELECT 1 FROM orders WHERE user_id=? AND plugin_slug=? AND status='pending' LIMIT 1");
$st->execute([$u['id'], $slug]);
$pending = (bool)$st->fetchColumn();

if ($_SERVER['REQUEST_METHOD'] === 'POST' && !$pending) {
    csrf_check();
    $email = trim($_POST['paypal_email'] ?? '');
    $txn   = trim($_POST['paypal_txn'] ?? '');
    if (($_POST['agree'] ?? '') !== '1') {
        flash_set('error', 'Debes aceptar los términos de compra para continuar.');
    } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        flash_set('error', 'Pon el correo de PayPal con el que pagaste.');
    } else {
        $note = 'Usuario: ' . $u['username'];
        $st = db()->prepare(
            'INSERT INTO orders (user_id, plugin_slug, edition, amount, paypal_email, paypal_txn, note, status)
             VALUES (?, ?, "premium", ?, ?, ?, ?, "pending")'
        );
        $st->execute([$u['id'], $slug, $plugin['price'], $email, ($txn ?: null), $note]);
        flash_set('ok', 'Pago registrado. Lo verificaremos y activaremos tu licencia pronto.');
        redirect(BASE . '/panel/license.php');
    }
    redirect(BASE . '/panel/buy.php?plugin=' . urlencode($slug));
}

$ppEnabled = paypal_enabled();
$page_title = 'Comprar ' . $plugin['name'] . ' Premium';
require __DIR__ . '/../includes/header.php';
?>
<div class="player">
  <?php $active='builds'; require __DIR__ . '/../includes/panel_side.php'; ?>
  <main class="pcontent">
    <div class="phead"><div class="eyebrow">Compra</div><h1><?= e($plugin['name']) ?> Premium — $<?= e($plugin['price']) ?></h1><p><?= $ppEnabled ? 'Paga con PayPal o tarjeta. Tu licencia se activa al instante.' : 'Pago por PayPal. Al verificar tu pago, activamos tu licencia (suele ser rápido).' ?></p></div>

    <?php if ($ppEnabled): ?>
      <div class="card" style="margin-bottom:16px">
        <h3 style="font-size:16px;font-weight:800;margin-bottom:4px">Pago seguro — <?= e($plugin['name']) ?> Premium</h3>
        <div style="color:var(--muted);font-size:13.5px;margin-bottom:16px">Total: <b style="color:var(--gold)">$<?= e($plugin['price']) ?> <?= e(paypal_currency()) ?></b> · pago único · <?= PAYPAL_ENV === 'live' ? 'PayPal o tarjeta' : '<span style="color:var(--gold)">MODO PRUEBA (sandbox)</span>' ?></div>

        <div style="font-weight:800;font-size:13.5px;margin-bottom:6px">📋 Términos de compra — léelos antes de pagar</div>
        <div style="max-height:190px;overflow-y:auto;background:var(--panel2,#1b1533);border:1px solid var(--line2,rgba(255,255,255,.12));border-radius:10px;padding:12px 14px;font-size:12.5px;line-height:1.6;color:var(--muted)">
          <p style="margin:0 0 8px"><b style="color:var(--text)">1. Licencia permanente y personal.</b> Compras una licencia de uso <b>permanente</b> de <?= e($plugin['name']) ?> Premium para los servidores que tú administres. La licencia es personal e intransferible.</p>
          <p style="margin:0 0 8px"><b style="color:var(--text)">2. Prohibida la reproducción y la reventa.</b> Queda estrictamente prohibido copiar, reproducir, redistribuir, revender, sublicenciar, filtrar (leak) o compartir el archivo <code>.jar</code> o la llave de licencia. Cualquier infracción anulará la licencia <b>sin reembolso</b> y podrá dar lugar a <b>acciones legales por daños y perjuicios</b> (incluidas retiradas por DMCA y demandas).</p>
          <p style="margin:0 0 8px"><b style="color:var(--text)">3. Producto digital, sin reembolsos.</b> Es un producto digital de <b>entrega y activación inmediata</b>. Al pagar aceptas recibirlo de inmediato y <b>renuncias a cualquier derecho de desistimiento</b>. <b>No se aceptan reembolsos, devoluciones ni cancelaciones</b> una vez activada la licencia.</p>
          <p style="margin:0 0 8px"><b style="color:var(--text)">4. Sin contracargos.</b> El pago es voluntario y definitivo. No se permiten contracargos (chargebacks). Un contracargo indebido se considerará uso fraudulento y esta aceptación se aportará como prueba en la disputa.</p>
          <p style="margin:0 0 8px"><b style="color:var(--text)">5. Autorización del método de pago.</b> Declaras ser <b>mayor de edad</b> o, si usas la tarjeta o cuenta de un tercero (por ejemplo, de tu madre, padre o tutor), contar con su <b>consentimiento expreso</b> y estar plenamente autorizado a usar ese método de pago.</p>
          <p style="margin:0"><b style="color:var(--text)">6. Aceptación.</b> Al marcar la casilla y completar el pago confirmas que <b>has leído, entendido y aceptado</b> estos términos.</p>
        </div>
        <label style="display:flex;gap:9px;align-items:flex-start;margin:12px 0 4px;font-size:13px;cursor:pointer">
          <input type="checkbox" id="agree" style="margin-top:3px;width:16px;height:16px;flex:none">
          <span>He leído y <b>acepto los términos de compra</b>: licencia permanente, sin reproducción ni reventa, <b>sin reembolsos ni contracargos</b>, y confirmo estar autorizado a usar este método de pago.</span>
        </label>

        <div id="paypal-buttons" style="margin-top:10px"></div>
        <div id="pp-msg" style="margin-top:12px;font-size:13.5px"></div>
      </div>
      <script src="https://www.paypal.com/sdk/js?client-id=<?= urlencode(PAYPAL_CLIENT_ID) ?>&currency=<?= urlencode(paypal_currency()) ?>&intent=capture"></script>
      <script>
      (function(){
        var CSRF = <?= json_encode(csrf_token()) ?>;
        var SLUG = <?= json_encode($slug) ?>;
        var LICENSE_URL = <?= json_encode(BASE . '/panel/license.php?activated=1') ?>;
        var msg = document.getElementById('pp-msg');
        function post(url, data){
          var body = Object.keys(data).map(function(k){return encodeURIComponent(k)+'='+encodeURIComponent(data[k]);}).join('&');
          return fetch(url, {method:'POST', headers:{'Content-Type':'application/x-www-form-urlencoded'}, body:body, credentials:'same-origin'});
        }
        if (!window.paypal) { msg.innerHTML = '<span style="color:#e46">No se pudo cargar PayPal. Revisa tu conexión o el Client ID.</span>'; return; }
        var agree = document.getElementById('agree');
        paypal.Buttons({
          style: { layout:'vertical', color:'gold', shape:'pill', label:'pay' },
          onInit: function(data, actions){
            actions.disable();
            agree.addEventListener('change', function(){ if(agree.checked){ actions.enable(); msg.innerHTML=''; } else { actions.disable(); } });
          },
          onClick: function(data, actions){
            if(!agree.checked){ msg.innerHTML = '<span style="color:#e46">Debes aceptar los términos de compra para continuar.</span>'; return actions.reject(); }
            return actions.resolve();
          },
          createOrder: function(){
            return post('paypal_create.php', {csrf:CSRF, plugin:SLUG, agreed:'1'})
              .then(function(r){ return r.json(); })
              .then(function(d){ if(d.id) return d.id; throw new Error(d.error||'create'); });
          },
          onApprove: function(data){
            msg.innerHTML = '<span style="color:var(--muted)">Verificando el pago…</span>';
            return post('paypal_capture.php', {csrf:CSRF, plugin:SLUG, orderID:data.orderID, agreed:'1'})
              .then(function(r){ return r.json(); })
              .then(function(d){
                if(d.ok){ msg.innerHTML = '<span style="color:#3fae54">✓ ¡Pago confirmado! Redirigiendo…</span>'; window.location = LICENSE_URL; }
                else { msg.innerHTML = '<span style="color:#e46">No se pudo verificar el pago ('+(d.error||'error')+'). Si te cobraron, escríbenos y lo activamos.</span>'; }
              });
          },
          onError: function(){ msg.innerHTML = '<span style="color:#e46">Ocurrió un error con PayPal. Intenta de nuevo.</span>'; }
        }).render('#paypal-buttons');
      })();
      </script>
    <?php else: ?>
      <div class="card" style="margin-bottom:16px">
        <h3 style="font-size:16px;font-weight:800;margin-bottom:12px">1 · Paga por PayPal</h3>
        <ol class="mono" style="color:var(--muted);font-size:14px;line-height:2;margin:0 0 14px;padding-left:20px">
          <li>Envía <b style="color:var(--gold)">$<?= e($plugin['price']) ?> USD</b> a nuestro PayPal.</li>
          <li>En la nota del pago escribe tu usuario: <b style="color:var(--text)"><?= e($u['username']) ?></b></li>
        </ol>
        <a class="btn primary" href="<?= e(PAYPAL_LINK) ?>" target="_blank" rel="noopener">💳 Pagar por PayPal</a>
        <div style="font-size:12.5px;color:var(--muted2);margin-top:10px">PayPal: <span class="mono"><?= e(PAYPAL_EMAIL) ?></span></div>
      </div>

      <div class="card">
        <h3 style="font-size:16px;font-weight:800;margin-bottom:6px">2 · Confirma tu pago</h3>
        <?php if ($pending): ?>
          <div class="alert alert-ok" style="margin-top:12px">✓ Ya registraste un pago para <?= e($plugin['name']) ?>. Estamos verificándolo — lo verás en <a href="<?= e(BASE) ?>/panel/license.php" style="color:var(--gold)">Mis licencias</a>.</div>
        <?php else: ?>
          <p style="color:var(--muted);font-size:13.5px;margin:0 0 14px">Tras pagar, déjanos el correo de PayPal para poder verificarlo.</p>
          <form method="post">
            <?= csrf_field() ?>
            <div class="field"><label>Correo de PayPal con el que pagaste</label>
              <input class="input" type="email" name="paypal_email" required placeholder="tucorreo@ejemplo.com"></div>
            <div class="field"><label>ID de transacción PayPal (opcional)</label>
              <input class="input" name="paypal_txn" placeholder="Ej: 5AB12345CD678901E"></div>
            <label style="display:flex;gap:9px;align-items:flex-start;margin:0 0 14px;font-size:12.5px;cursor:pointer;color:var(--muted)">
              <input type="checkbox" name="agree" value="1" required style="margin-top:3px;width:16px;height:16px;flex:none">
              <span>Acepto los <b>términos de compra</b>: licencia permanente, sin reproducción ni reventa, <b>sin reembolsos ni contracargos</b>, y confirmo estar autorizado a usar este método de pago.</span>
            </label>
            <button class="btn primary" type="submit">Ya pagué — enviar para verificar</button>
          </form>
        <?php endif; ?>
      </div>
    <?php endif; ?>
  </main>
</div>
<?php require __DIR__ . '/../includes/footer.php'; ?>
