<?php
require_once __DIR__ . '/api/db.php';
$db = getDB();
$settings = [];
$res = $db->query("SELECT * FROM settings");
while ($r = $res->fetchArray(SQLITE3_ASSOC)) $settings[$r['key']] = $r['value'];
$wa = $settings['whatsapp_number'] ?? '905344250782';

// Rezervasyon bilgisi varsa doldur
$rez_id = (int)($_GET['id'] ?? 0);
$rez = null;
if ($rez_id) {
    $stmt = $db->prepare("SELECT * FROM reservations WHERE id=:id");
    $stmt->bindValue(':id', $rez_id);
    $rez = $stmt->execute()->fetchArray(SQLITE3_ASSOC);
}
$musteri_adi = $rez ? htmlspecialchars($rez['customer_name']) : '';
$rez_no      = $rez ? htmlspecialchars($rez['rezervasyon_no'] ?? '') : '';
?>
<!DOCTYPE html>
<html lang="tr">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Kiralama Sözleşmesi | Avis Uygun Araç</title>
  <style>
    * { box-sizing: border-box; margin: 0; padding: 0; }
    body { font-family: Arial, sans-serif; background: #f5f5f5; color: #222; }
    .container { max-width: 780px; margin: 0 auto; background: #fff; min-height: 100vh; }
    .top-bar { background: #c0392b; color: #fff; padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; }
    .top-bar h1 { font-size: 1.1rem; font-weight: 700; }
    .top-bar a { color: #fff; font-size: .85rem; opacity: .85; text-decoration: none; }
    .sozlesme-body { padding: 24px; }
    .sozlesme-body h2 { font-size: 1.2rem; color: #c0392b; text-align: center; margin-bottom: 20px; border-bottom: 2px solid #c0392b; padding-bottom: 10px; }
    .maddeler { font-size: .92rem; line-height: 1.85; color: #333; margin-bottom: 24px; }
    .maddeler p { margin-bottom: 10px; text-align: justify; }
    .maddeler strong { color: #c0392b; }
    .not-kutu { background: #fff3cd; border-left: 4px solid #f39c12; padding: 12px 16px; border-radius: 0 6px 6px 0; margin: 16px 0; font-size: .88rem; color: #7d5a00; }
    .imza-section { border-top: 2px solid #eee; padding-top: 20px; }
    .imza-section h3 { font-size: 1rem; color: #333; margin-bottom: 6px; }
    .ad-soyad-row { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
    .ad-soyad-row input { flex: 1; min-width: 200px; padding: 10px 14px; border: 1.5px solid #ddd; border-radius: 6px; font-size: .95rem; }
    .ad-soyad-row input:focus { outline: none; border-color: #c0392b; }
    .imza-label { font-size: .85rem; color: #555; margin-bottom: 6px; font-weight: 600; }
    .canvas-wrap { border: 2px dashed #c0392b; border-radius: 8px; background: #fafafa; position: relative; margin-bottom: 10px; }
    canvas { display: block; width: 100%; height: 180px; cursor: crosshair; touch-action: none; }
    .canvas-placeholder { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); color: #ccc; font-size: .9rem; pointer-events: none; text-align: center; }
    .btn-row { display: flex; gap: 10px; flex-wrap: wrap; }
    .btn { padding: 11px 22px; border: none; border-radius: 6px; font-size: .95rem; font-weight: 700; cursor: pointer; }
    .btn-temizle { background: #eee; color: #555; }
    .btn-temizle:hover { background: #ddd; }
    .btn-onayla { background: #c0392b; color: #fff; flex: 1; }
    .btn-onayla:hover { background: #a93226; }
    .btn-onayla:disabled { opacity: .6; cursor: not-allowed; }
    .onay-notu { font-size: .8rem; color: #888; margin-top: 10px; line-height: 1.5; }
    .success-screen { display: none; text-align: center; padding: 40px 24px; }
    .success-screen .check { font-size: 3.5rem; }
    .success-screen h3 { color: #27ae60; margin: 12px 0 8px; font-size: 1.3rem; }
    .success-screen p { color: #555; font-size: .92rem; line-height: 1.7; }
    .success-screen .btn-indir { display: inline-block; margin-top: 18px; background: #c0392b; color: #fff; padding: 12px 28px; border-radius: 8px; text-decoration: none; font-weight: 700; font-size: .95rem; }
    @media print {
      .top-bar, .btn-row, .onay-notu, .canvas-wrap { display: none !important; }
      .imzali-gorsel { display: block !important; }
    }
    .imzali-gorsel { display: none; max-width: 100%; border: 1px solid #eee; border-radius: 4px; margin-top: 8px; }
  </style>
</head>
<body>
<div class="container">
  <div class="top-bar">
    <h1>📋 Kiralama Sözleşmesi</h1>
    <a href="index.php">← Ana Sayfa</a>
  </div>

  <div class="sozlesme-body" id="sozlesme-form">
    <h2>ARAÇ KİRALAMA SÖZLEŞMESİ</h2>

    <div class="maddeler">
      <p><strong>1-)</strong> Araçlarda HGS olup (Hızlı Geçiş Sistemi), kiracı kira dönüşü geçiş yaptığı bedel online olarak kontrol edilip araç teslim ettiğinde anlık provizyon ücretinden düşülecektir.</p>

      <p><strong>2-)</strong> Kiralanan aracın her ne şekilde ve şartta olursa olsun kiraya verilmesi, bedelsiz de olsa üçüncü şahıslara kullandırılması yasak olup, aracın:</p>
      <p style="padding-left:16px">a) Ek sürücü olarak belirtilmeyen sürücü tarafından aracın kullanılması.<br>
      b) Herhangi bir vasıtayı çekmek veya itmek.<br>
      c) Gelir karşılığı yolcu veya mal taşımasında.<br>
      d) Türkiye Cumhuriyeti sınırları dışında kullanılmasında.</p>

      <p><strong>3-)</strong> Aracın sürücüsü alkol, uyuşturucu, uyku hapları etkisinde olmadığı sürece, aracın zarar görmesi durumunda hasar sorumluluğunu itiraz etmeksizin karşılamayı firmamız olarak kabul ediyoruz.</p>
      <p style="padding-left:16px">a) Poliçe ödemeleri sizin hesaplarınızda kalacaktır. Kasko ve sigorta poliçesi 50.000 TL'dir. 15 dakika sonrasında ödemelerinizi kullanabilirsiniz. İşlemler 15 dakikalık bir süredir.<br>
      b) Kaza anında alkol, uyuşturucu veya uyku geciktirici ilaçlar etkisi altındaysanız; yasal hız sınırlarının aşıldığı durumlarda ve aracın zarar görmesi durumunda masraflar kiracıya aittir.<br>
      c) Sözleşmenin akdinden sonra kiracı herhangi bir nedenle araç kullanma yetkisini kaybederse (ehliyete el konulması durumunda) aracın konumunu atarak vale görevlimize teslim etmesi gerekir.<br>
      d) Araçla alkollü veya uyuşturucu etkisinde kaza yapmanız durumunda araç masrafı ve aracın minimum 120.000 TL pert (değer kaybı) bedeli sizlere aittir.<br>
      e) Kiracı ve kira sözleşmesinde ek sürücü olarak belirlenenlerin haricindeki şahısların aracı kullanması neticesinde meydana gelen hasar ve/veya kazalarda: Aracın çalınması veya zarar görmesi durumunda kasko ve sigorta firmaları araç masraflarını öder.</p>

      <p><strong>4-)</strong> Kiracının kiralanan araç ile karıştığı herhangi bir kazada; kiracı alkol, uyuşturucu etkisinde olay yerini terk etmesi durumunda, doğrudan ve dolaylı zararlar kiracıdan talep edilecektir.</p>

      <p><strong>5-) Cayma Bedeli (Cezai Şart)</strong><br>
      Kiracı, sözleşmenin imzalanmasından veya WhatsApp üzerinden onay verilmesinden sonra; aracı teslim almaktan vazgeçmesi, kiralama süresini tek taraflı olarak iptal etmesi, sözleşme hükümlerine aykırı davranması nedeniyle sözleşmenin firma tarafından feshedilmesi hallerinde, <strong>250.000 TL (İki Yüz Elli Bin Türk Lirası)</strong> tutarında cayma bedelini, hiçbir ihtar veya ihbara gerek kalmaksızın firmaya ödemeyi kabul ve taahhüt eder.</p>

      <div class="not-kutu">
        <strong>NOT:</strong> Görüşmelerimiz kayıt altına alınmaktadır. Sözleşmenin WhatsApp üzerinden atılması gereklidir. Sözleşme muhasebe departmanımız tarafından atılacaktır.<br><br>
        <strong>ŞARTLAR UYGUN OLDUĞU TAKDİRDE, WHATSAPP ÜZERİNDEN "OKUDUM, KABUL EDİYORUM" YAZMANIZ GEREKLİDİR. HATTA İKEN SÖZLEŞMEYİ OKUMANIZ GEREKLİDİR.</strong>
      </div>
    </div>

    <div class="imza-section">
      <div class="ad-soyad-row">
        <input type="text" id="musteri-adi" placeholder="Ad Soyad" value="<?= $musteri_adi ?>">
        <?php if ($rez_no): ?>
        <input type="text" value="Rez. No: <?= $rez_no ?>" readonly style="background:#f8f9fa;color:#888;max-width:200px">
        <?php endif; ?>
      </div>

      <div class="imza-label">İmzanız:</div>
      <div class="canvas-wrap">
        <canvas id="imzaCanvas"></canvas>
        <div class="canvas-placeholder" id="canvas-placeholder">Dokunmatik ekranda parmağınızı,<br>bilgisayarda farenizi kullanarak<br>yukarıdaki alana imzanızı atın.</div>
      </div>
      <img id="imzali-gorsel" class="imzali-gorsel" alt="İmza">

      <div class="btn-row">
        <button class="btn btn-temizle" onclick="temizle()">İmzayı Temizle</button>
        <button class="btn btn-onayla" id="btn-onayla" onclick="onayla()">Onayla ve İndir</button>
      </div>
      <p class="onay-notu">Onayladığınızda sözleşme imzanızla birlikte PDF olarak indirilecektir. Bu işlem sözleşmeyi dijital olarak kabul ettiğiniz anlamına gelir.</p>
    </div>
  </div>

  <div class="success-screen" id="success-screen">
    <div class="check">✅</div>
    <h3>Sözleşme İmzalandı!</h3>
    <p>Sözleşmeniz başarıyla imzalandı ve kaydedildi.<br>
    Muhasebe departmanımız en kısa sürede sizinle iletişime geçecektir.</p>
    <a href="https://wa.me/+<?= htmlspecialchars($wa) ?>?text=Merhaba%2C+s%C3%B6zle%C5%9Fmeyi+imzaladım." class="btn-indir" target="_blank">📱 WhatsApp ile Bildir</a>
  </div>
</div>

<script>
const canvas  = document.getElementById('imzaCanvas');
const ctx     = canvas.getContext('2d');
let drawing   = false;
let hasDrawn  = false;

function resizeCanvas() {
  const w = canvas.offsetWidth;
  const h = canvas.offsetHeight;
  const img = ctx.getImageData(0, 0, canvas.width, canvas.height);
  canvas.width  = w;
  canvas.height = h;
  ctx.putImageData(img, 0, 0);
  ctx.strokeStyle = '#1a1a2e';
  ctx.lineWidth   = 2.5;
  ctx.lineCap     = 'round';
  ctx.lineJoin    = 'round';
}
resizeCanvas();
window.addEventListener('resize', resizeCanvas);

function getPos(e) {
  const rect = canvas.getBoundingClientRect();
  const scaleX = canvas.width  / rect.width;
  const scaleY = canvas.height / rect.height;
  if (e.touches) {
    return { x: (e.touches[0].clientX - rect.left) * scaleX, y: (e.touches[0].clientY - rect.top) * scaleY };
  }
  return { x: (e.clientX - rect.left) * scaleX, y: (e.clientY - rect.top) * scaleY };
}

canvas.addEventListener('mousedown',  e => { drawing = true; const p = getPos(e); ctx.beginPath(); ctx.moveTo(p.x, p.y); });
canvas.addEventListener('mousemove',  e => { if (!drawing) return; const p = getPos(e); ctx.lineTo(p.x, p.y); ctx.stroke(); hasDrawn = true; document.getElementById('canvas-placeholder').style.display = 'none'; });
canvas.addEventListener('mouseup',    () => { drawing = false; });
canvas.addEventListener('mouseleave', () => { drawing = false; });
canvas.addEventListener('touchstart', e => { e.preventDefault(); drawing = true; const p = getPos(e); ctx.beginPath(); ctx.moveTo(p.x, p.y); }, {passive:false});
canvas.addEventListener('touchmove',  e => { e.preventDefault(); if (!drawing) return; const p = getPos(e); ctx.lineTo(p.x, p.y); ctx.stroke(); hasDrawn = true; document.getElementById('canvas-placeholder').style.display = 'none'; }, {passive:false});
canvas.addEventListener('touchend',   () => { drawing = false; });

function temizle() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  hasDrawn = false;
  document.getElementById('canvas-placeholder').style.display = 'block';
}

function onayla() {
  const ad = document.getElementById('musteri-adi').value.trim();
  if (!ad) { alert('Lütfen adınızı soyadınızı girin.'); return; }
  if (!hasDrawn) { alert('Lütfen imzanızı atın.'); return; }

  const btn = document.getElementById('btn-onayla');
  btn.textContent = 'Hazırlanıyor...'; btn.disabled = true;

  // Sözleşme + imza birleşik canvas oluştur
  const printCanvas = document.createElement('canvas');
  printCanvas.width  = 794;  // A4 px
  printCanvas.height = 1123;
  const pCtx = printCanvas.getContext('2d');

  // Arka plan
  pCtx.fillStyle = '#fff';
  pCtx.fillRect(0, 0, printCanvas.width, printCanvas.height);

  // Başlık
  pCtx.fillStyle = '#c0392b';
  pCtx.fillRect(0, 0, printCanvas.width, 52);
  pCtx.fillStyle = '#fff';
  pCtx.font = 'bold 18px Arial';
  pCtx.fillText('AViS UYGUN ARAÇ KİRALAMA', 24, 32);
  pCtx.font = '12px Arial';
  pCtx.fillText('ARAÇ KİRALAMA SÖZLEŞMESİ', 24, 48);

  // Sözleşme metni
  pCtx.fillStyle = '#222';
  pCtx.font = '11px Arial';
  const lines = document.querySelector('.maddeler').innerText.split('\n').filter(l => l.trim());
  let y = 80;
  lines.forEach(line => {
    const words = line.split(' ');
    let row = '';
    words.forEach(word => {
      const test = row + word + ' ';
      if (pCtx.measureText(test).width > 746 && row) {
        pCtx.fillText(row, 24, y); y += 16; row = word + ' ';
      } else { row = test; }
    });
    if (row) { pCtx.fillText(row, 24, y); y += 16; }
    y += 4;
  });

  // Ad soyad
  y += 10;
  pCtx.font = 'bold 12px Arial';
  pCtx.fillText('Ad Soyad: ' + ad, 24, y);
  pCtx.font = '11px Arial';
  pCtx.fillStyle = '#888';
  pCtx.fillText('Tarih: ' + new Date().toLocaleDateString('tr-TR'), 400, y);

  // İmza başlığı
  y += 24;
  pCtx.fillStyle = '#222';
  pCtx.font = 'bold 11px Arial';
  pCtx.fillText('İmza:', 24, y);

  // İmza kutusu
  y += 6;
  pCtx.strokeStyle = '#c0392b';
  pCtx.lineWidth = 1.5;
  pCtx.setLineDash([4, 3]);
  pCtx.strokeRect(24, y, 300, 100);
  pCtx.setLineDash([]);

  // İmzayı çiz
  const imzaImg = new Image();
  imzaImg.onload = function() {
    pCtx.drawImage(imzaImg, 24, y, 300, 100);

    // Alt bilgi
    pCtx.fillStyle = '#888';
    pCtx.font = '9px Arial';
    pCtx.fillText('Bu belge dijital olarak imzalanmıştır. Tarih: ' + new Date().toLocaleString('tr-TR'), 24, printCanvas.height - 20);
    pCtx.fillText('avisuygunarac.com', printCanvas.width - 120, printCanvas.height - 20);

    // İndir
    const link = document.createElement('a');
    link.download = 'avis-sozlesme-' + ad.replace(/\s+/g,'-') + '.png';
    link.href = printCanvas.toDataURL('image/png');
    link.click();

    document.getElementById('sozlesme-form').style.display = 'none';
    document.getElementById('success-screen').style.display = 'block';
    btn.textContent = 'Onayla ve İndir'; btn.disabled = false;
  };
  imzaImg.src = canvas.toDataURL('image/png');
}
</script>
<?php include __DIR__ . '/inc/wa_widget.php'; ?>
</body>
</html>
