<?php
/**
 * Admin Payment Index
 * Route: GET /admin/payments
 */
$statusOptions = [
    'all'                   => 'ทุกสถานะ',
    'pending'               => 'รอชำระ',
    'awaiting_verification' => 'รอตรวจสอบ',
    'confirmed'             => 'ยืนยันแล้ว',
    'failed'                => 'ล้มเหลว',
    'expired'               => 'หมดอายุ',
    'cancelled'             => 'ยกเลิก',
    'refund_pending'        => 'รอคืนเงิน',
    'refunded'              => 'คืนเงินแล้ว',
];
$methodOptions = ['all' => 'ทุกวิธี', 'PromptPay' => 'PromptPay', 'BankTransfer' => 'Bank Transfer', 'COD' => 'COD'];

function paymentStatusBadge(string $s): string {
    switch ($s) {
        case 'pending': return '<span class="badge bg-warning text-dark">รอชำระ</span>';
        case 'awaiting_verification': return '<span class="badge bg-primary">รอตรวจสอบ</span>';
        case 'confirmed': return '<span class="badge bg-success">ยืนยันแล้ว</span>';
        case 'failed': return '<span class="badge bg-danger">ล้มเหลว</span>';
        case 'expired': return '<span class="badge bg-secondary">หมดอายุ</span>';
        case 'cancelled': return '<span class="badge bg-secondary">ยกเลิก</span>';
        case 'refund_pending': return '<span class="badge" style="background:#f59e0b;">รอคืนเงิน</span>';
        case 'refunded': return '<span class="badge bg-info text-dark">คืนเงินแล้ว</span>';
        default: return '<span class="badge bg-light text-dark border">' . e($s) . '</span>';
    }
}
?>
<div class="d-flex justify-content-between align-items-start mb-4 gap-2 flex-wrap">
  <div>
    <h4 class="fw-bold mb-1 text-dark"><i class="bi bi-credit-card me-2 text-primary"></i>การชำระเงิน</h4>
    <p class="text-muted small mb-0">ตรวจสอบและจัดการรายการชำระเงินทั้งหมด</p>
  </div>
  <a href="<?= url('/admin/payments/accounts') ?>" class="btn btn-sm btn-outline-primary">
    <i class="bi bi-bank me-1"></i>จัดการบัญชีรับเงิน
  </a>
</div>

<!-- KPI Stats -->
<div class="row g-3 mb-4">
  <?php
  $kpis = [
    ['label' => 'รอตรวจสอบ',    'val' => (int)($stats['awaiting'] ?? 0),  'icon' => 'hourglass-split', 'cls' => 'text-primary'],
    ['label' => 'ยืนยันแล้ว',   'val' => (int)($stats['confirmed'] ?? 0), 'icon' => 'check-circle',    'cls' => 'text-success'],
    ['label' => 'รอคืนเงิน',    'val' => (int)($stats['refunds'] ?? 0),   'icon' => 'arrow-return-left','cls' => 'text-warning'],
    ['label' => 'ยอดยืนยันวันนี้','val' => '฿' . number_format((float)($stats['today_amount'] ?? 0), 0), 'icon' => 'graph-up', 'cls' => 'text-info'],
  ];
  ?>
  <?php foreach ($kpis as $k): ?>
    <div class="col-6 col-md-3">
      <div class="card border-0 shadow-sm h-100">
        <div class="card-body d-flex align-items-center gap-3 py-3">
          <div class="rounded-2 p-2" style="background:#f1f5f9;">
            <i class="bi bi-<?= $k['icon'] ?> <?= $k['cls'] ?> fs-5"></i>
          </div>
          <div>
            <div class="fw-bold fs-5 text-dark"><?= $k['val'] ?></div>
            <div class="text-muted" style="font-size:.75rem;"><?= $k['label'] ?></div>
          </div>
        </div>
      </div>
    </div>
  <?php endforeach; ?>
</div>

<!-- Filter Bar -->
<div class="card border-0 shadow-sm mb-3">
  <div class="card-body py-2 px-3">
    <form method="GET" action="<?= url('/admin/payments') ?>" class="d-flex flex-wrap gap-2 align-items-end">
      <div>
        <label class="form-label small fw-bold mb-1 text-muted">สถานะ</label>
        <select name="status" class="form-select form-select-sm" style="min-width:150px;">
          <?php foreach ($statusOptions as $val => $lbl): ?>
            <option value="<?= $val ?>" <?= ($filters['status'] ?? 'all') === $val ? 'selected' : '' ?>><?= $lbl ?></option>
          <?php endforeach; ?>
        </select>
      </div>
      <div>
        <label class="form-label small fw-bold mb-1 text-muted">วิธีชำระ</label>
        <select name="method" class="form-select form-select-sm" style="min-width:130px;">
          <?php foreach ($methodOptions as $val => $lbl): ?>
            <option value="<?= $val ?>" <?= ($filters['method'] ?? 'all') === $val ? 'selected' : '' ?>><?= $lbl ?></option>
          <?php endforeach; ?>
        </select>
      </div>
      <div>
        <label class="form-label small fw-bold mb-1 text-muted">จาก</label>
        <input type="date" name="date_from" class="form-control form-control-sm" value="<?= e($filters['date_from'] ?? '') ?>">
      </div>
      <div>
        <label class="form-label small fw-bold mb-1 text-muted">ถึง</label>
        <input type="date" name="date_to" class="form-control form-select-sm" value="<?= e($filters['date_to'] ?? '') ?>">
      </div>
      <div class="flex-grow-1">
        <label class="form-label small fw-bold mb-1 text-muted">ค้นหา</label>
        <input type="text" name="q" class="form-control form-control-sm" placeholder="Order No / ชื่อ / อีเมล..."
               value="<?= e($filters['q'] ?? '') ?>">
      </div>
      <button class="btn btn-primary btn-sm px-3">
        <i class="bi bi-search me-1"></i>ค้นหา
      </button>
      <?php if (!empty(array_filter($filters))): ?>
        <a href="<?= url('/admin/payments') ?>" class="btn btn-outline-secondary btn-sm">ล้าง</a>
      <?php endif; ?>
    </form>
  </div>
</div>

<!-- Payments Table -->
<div class="card border-0 shadow-sm">
  <div class="card-body p-0">
    <?php if (empty($payments)): ?>
      <div class="text-center py-5 text-muted">
        <i class="bi bi-credit-card" style="font-size:2.5rem;"></i>
        <p class="mt-3 mb-0">ไม่พบรายการชำระเงิน</p>
      </div>
    <?php else: ?>
      <div class="table-responsive">
        <table class="table align-middle mb-0 small">
          <thead class="table-light">
            <tr>
              <th class="ps-3">Order No</th>
              <th>ลูกค้า</th>
              <th class="text-end">ยอด</th>
              <th>วิธีชำระ</th>
              <th>สถานะ</th>
              <th class="text-center">รอตรวจสอบ</th>
              <th>วันที่</th>
              <th class="pe-3"></th>
            </tr>
          </thead>
          <tbody>
            <?php foreach ($payments as $pmt): ?>
              <tr>
                <td class="ps-3">
                  <code class="text-primary fw-bold"><?= e($pmt['order_no']) ?></code>
                </td>
                <td>
                  <div class="fw-medium text-dark"><?= e($pmt['customer_name']) ?></div>
                  <div class="text-muted" style="font-size:.75rem;"><?= e($pmt['customer_email']) ?></div>
                </td>
                <td class="text-end fw-bold text-dark">฿<?= number_format((float)$pmt['amount'], 2) ?></td>
                <td class="text-muted">
                  <?php
                    $method = $pmt['payment_method'];
                    if ($method === 'PromptPay') {
                        echo '<i class="bi bi-qr-code me-1"></i>PromptPay';
                    } elseif ($method === 'BankTransfer') {
                        echo '<i class="bi bi-bank me-1"></i>Bank';
                    } elseif ($method === 'COD') {
                        echo '<i class="bi bi-truck me-1"></i>COD';
                    } else {
                        echo e($method);
                    }
                  ?>
                </td>
                <td><?= paymentStatusBadge($pmt['payment_status']) ?></td>
                <td class="text-center">
                  <?php if ((int)$pmt['pending_attempts'] > 0): ?>
                    <span class="badge bg-warning text-dark rounded-pill"><?= (int)$pmt['pending_attempts'] ?></span>
                  <?php else: ?>
                    <span class="text-muted">—</span>
                  <?php endif; ?>
                </td>
                <td class="pe-3 text-end">
                  <?php if ((int)$pmt['pending_attempts'] > 0 || $pmt['payment_status'] === 'awaiting_verification'): ?>
                    <a href="<?= url('/admin/payments/' . e($pmt['order_no'])) ?>"
                       class="btn btn-primary btn-sm px-2 py-1 fw-bold">
                      <i class="bi bi-check-circle me-1"></i>ตรวจสลิป
                    </a>
                  <?php else: ?>
                    <a href="<?= url('/admin/payments/' . e($pmt['order_no'])) ?>"
                       class="btn btn-outline-secondary btn-sm px-2 py-1" title="ดูรายละเอียด">
                      <i class="bi bi-eye"></i>
                    </a>
                  <?php endif; ?>
                </td>
              </tr>
            <?php endforeach; ?>
          </tbody>
        </table>
      </div>

      <!-- Pagination -->
      <?php if ($totalPages > 1): ?>
        <div class="px-3 py-2 border-top d-flex justify-content-between align-items-center small text-muted">
          <span>แสดง <?= count($payments) ?> จาก <?= $total ?> รายการ</span>
          <div class="d-flex gap-1">
            <?php for ($p = 1; $p <= $totalPages; $p++): ?>
              <?php $url = url('/admin/payments?' . http_build_query(array_merge($filters, ['page' => $p]))); ?>
              <a href="<?= $url ?>" class="btn btn-sm <?= $p === $page ? 'btn-primary' : 'btn-outline-secondary' ?>"><?= $p ?></a>
            <?php endfor; ?>
          </div>
        </div>
      <?php endif; ?>
    <?php endif; ?>
  </div>
</div>
