<?php
/** @var list<object> $codeKinds */
/** @var array<int,int> $countMap */
/** @var bool $canManageKinds */
/** @var bool $canManageDetails */
/** @var object|null $selectedKind */
/** @var list<object> $detailList */
/** @var array<int,bool> $rowCanEdit */
$canManageKinds   = ! empty($canManageKinds);
$canManageDetails = ! empty($canManageDetails);
$showKindActions  = $canManageKinds;
$selectedKindId   = (int) ($selectedKind->ck_idx ?? 0);
$colCount         = 6 + ($showKindActions ? 1 : 0);
$detailColCount   = 7 + ($canManageDetails ? 1 : 0);
?>
<div class="grid grid-cols-1 xl:grid-cols-2 gap-4">
  <section>
    <div class="flex flex-wrap items-center justify-between gap-2 mb-2 border-b pb-1">
      <h3 class="text-base font-bold text-gray-700">기본코드 종류</h3>
      <div class="flex flex-wrap items-center gap-2 text-xs sm:text-sm">
        <?php if ($canManageKinds): ?>
        <a href="<?= base_url('admin/code-kinds/create') ?>" class="inline-flex items-center rounded bg-[#1c4e80] px-3 py-1.5 text-white shadow hover:opacity-90">코드 종류 등록</a>
        <?php else: ?>
        <span class="text-gray-500">코드 종류 등록·수정은 super admin·본부 관리자만 가능합니다.</span>
        <?php endif; ?>
      </div>
    </div>
    <div class="border border-gray-300 overflow-auto">
      <table class="data-table w-full">
        <thead><tr>
          <th class="w-14"><?= $showKindActions ? 'PK' : '번호' ?></th>
          <th class="w-24">코드</th>
          <th>코드명</th>
          <th class="w-24">세부건수</th>
          <th class="w-20">상태</th>
          <th class="w-40">등록일</th>
          <?php if ($showKindActions): ?>
          <th class="w-36">작업</th>
          <?php endif; ?>
        </tr></thead>
        <tbody>
        <?php if (! empty($codeKinds)): ?>
          <?php $i = 0; foreach ($codeKinds as $row): $i++; ?>
          <?php
            $isSelected = (int) $row->ck_idx === $selectedKindId;
            $detailUrl  = base_url('bag/code-kinds?ck_idx=' . (int) $row->ck_idx);
          ?>
          <tr class="<?= $isSelected ? 'bg-blue-50' : '' ?> cursor-pointer hover:bg-blue-50"
              onclick="window.location.href='<?= esc($detailUrl, 'attr') ?>'">
            <td class="text-center"><?= $showKindActions ? esc((string) $row->ck_idx) : (string) $i ?></td>
            <td class="text-center font-mono"><?= esc($row->ck_code) ?></td>
            <td><?= esc($row->ck_name) ?></td>
            <td class="text-center"><?= (int) ($countMap[$row->ck_idx] ?? 0) ?>개</td>
            <td class="text-center"><?= (int) ($row->ck_state ?? 0) === 1 ? '사용' : '미사용' ?></td>
            <td class="text-left"><?= esc($row->ck_regdate ?? '') ?></td>
            <?php if ($showKindActions): ?>
            <td class="text-center text-sm" onclick="event.stopPropagation()">
              <a href="<?= base_url('admin/code-kinds/edit/' . (int) $row->ck_idx) ?>" class="text-blue-600 hover:underline mr-1">수정</a>
              <form action="<?= base_url('admin/code-kinds/delete/' . (int) $row->ck_idx) ?>" method="POST" class="inline" onsubmit="return confirm('이 코드 종류를 삭제하시겠습니까?');">
                <?= csrf_field() ?>
                <button type="submit" class="text-red-600 hover:underline">삭제</button>
              </form>
            </td>
            <?php endif; ?>
          </tr>
          <?php endforeach; ?>
        <?php else: ?>
          <tr><td colspan="<?= (string) $colCount ?>" class="text-center text-gray-400 py-4">등록된 코드 종류가 없습니다.</td></tr>
        <?php endif; ?>
        </tbody>
      </table>
    </div>
  </section>

  <section>
    <div class="flex flex-wrap items-center justify-between gap-2 mb-2 border-b pb-1">
      <h3 class="text-base font-bold text-gray-700">
        세부코드
        <?php if ($selectedKind !== null): ?>
          — <?= esc($selectedKind->ck_name) ?> (<?= esc($selectedKind->ck_code) ?>)
        <?php endif; ?>
      </h3>
      <?php if ($canManageDetails && $selectedKind !== null): ?>
      <a href="<?= base_url('admin/code-details/' . (int) $selectedKind->ck_idx . '/create') ?>" class="inline-flex items-center rounded bg-[#1c4e80] px-3 py-1.5 text-white shadow hover:opacity-90 text-sm">세부코드 등록</a>
      <?php endif; ?>
    </div>

    <?php if ($selectedKind === null): ?>
      <div class="border border-gray-300 rounded p-6 text-center text-gray-500">왼쪽에서 코드 종류를 선택해 주세요.</div>
    <?php else: ?>
      <div class="border border-gray-300 overflow-auto">
        <table class="data-table w-full">
          <thead>
            <tr>
              <th class="w-16">번호</th>
              <th class="w-24">코드</th>
              <th>코드명</th>
              <th class="w-24">범위</th>
              <th class="w-20">정렬</th>
              <th class="w-20">상태</th>
              <th class="w-40">등록일</th>
              <?php if ($canManageDetails): ?>
              <th class="w-28">작업</th>
              <?php endif; ?>
            </tr>
          </thead>
          <tbody>
            <?php if (! empty($detailList)): ?>
              <?php foreach ($detailList as $row): ?>
              <?php
                $isPlatform = (($row->cd_source ?? 'platform') === 'platform' && (int) ($row->cd_lg_idx ?? 0) === 0);
                $scopeLabel = $isPlatform ? '공통' : '지자체';
              ?>
              <tr>
                <td class="text-center"><?= esc((string) $row->cd_idx) ?></td>
                <td class="text-center font-mono"><?= esc($row->cd_code) ?></td>
                <td><?= esc($row->cd_name) ?></td>
                <td class="text-center text-xs"><?= esc($scopeLabel) ?></td>
                <td class="text-center"><?= (int) ($row->cd_sort ?? 0) ?></td>
                <td class="text-center"><?= (int) ($row->cd_state ?? 0) === 1 ? '사용' : '미사용' ?></td>
                <td class="text-left"><?= esc($row->cd_regdate ?? '') ?></td>
                <?php if ($canManageDetails): ?>
                <td class="text-center text-sm">
                  <?php if (! empty($rowCanEdit[$row->cd_idx])): ?>
                  <a href="<?= base_url('admin/code-details/edit/' . (int) $row->cd_idx) ?>" class="text-blue-600 hover:underline">수정</a>
                  <form action="<?= base_url('admin/code-details/delete/' . (int) $row->cd_idx) ?>" method="POST" class="ml-1 inline" onsubmit="return confirm('이 세부코드를 삭제하시겠습니까?');">
                    <?= csrf_field() ?>
                    <button type="submit" class="text-red-600 hover:underline">삭제</button>
                  </form>
                  <?php else: ?>
                  <span class="text-gray-400">—</span>
                  <?php endif; ?>
                </td>
                <?php endif; ?>
              </tr>
              <?php endforeach; ?>
            <?php else: ?>
              <tr><td colspan="<?= (string) $detailColCount ?>" class="text-center text-gray-400 py-4">등록된 세부코드가 없습니다.</td></tr>
            <?php endif; ?>
          </tbody>
        </table>
      </div>
    <?php endif; ?>
  </section>
</div>
