<?php
/**
 * 국민자료실 - 검색 페이지
 */
require_once __DIR__ . '/bootstrap.php';
require_once BASE_DIR . '/includes/functions.php';
require_once BASE_DIR . '/includes/security.php';
require_once BASE_DIR . '/includes/ads.php';

$currentPage = 'search';
logPageView('search');

// Rate Limiting (IP당 분당 60회)
enforceRateLimit('search_' . ($_SERVER['REMOTE_ADDR'] ?? ''), 60, 60);

$query = trim($_GET['q'] ?? '');
$page = max(1, (int)($_GET['page'] ?? 1));
$category = $_GET['category'] ?? '';

$pageTitle = $query ? '"' . $query . '" 검색 결과' : '정책 검색';
$pageDescription = $query
    ? '"' . $query . '" 관련 정부지원금, 보조금, 복지 정책 검색 결과'
    : '정부지원금, 보조금, 복지 정책을 검색하세요.';

$result = null;
$policies = [];
$totalCount = 0;
$totalPages = 0;

if ($query) {
    $result = getPolicies([
        'search' => $query,
        'category' => $category,
        'page' => $page,
    ]);
    $policies = $result['items'];
    $totalCount = $result['totalCount'];
    $totalPages = $result['totalPages'];

    // 검색 기록 저장
    recordSearch($query, $totalCount);
}

// 인기 검색어
$trendingKeywords = getTrendingKeywords(20);
$categories = getCategories();

// Schema.org - SearchAction result
if ($query) {
    $schemaData = [
        '@context' => 'https://schema.org',
        '@type' => 'SearchResultsPage',
        'name' => $pageTitle,
        'mainEntity' => [
            '@type' => 'ItemList',
            'numberOfItems' => $totalCount,
        ],
    ];
}

require_once BASE_DIR . '/templates/header.php';
?>

<div class="section" style="padding-top: 24px;">
    <div class="container">

        <!-- 검색 박스 -->
        <div class="search-box">
            <form action="/search" method="get">
                <div class="search-input-wrap">
                    <input type="text" name="q" value="<?= e($query) ?>" placeholder="정부지원금, 청년정책, 보조금..." autocomplete="off" autofocus>
                    <button type="submit">검색</button>
                </div>
                <?php if ($category): ?>
                <input type="hidden" name="category" value="<?= e($category) ?>">
                <?php endif; ?>
            </form>
        </div>

        <?php if ($query): ?>
            <!-- 검색 결과 헤더 -->
            <h1 class="section-heading">"<?= e($query) ?>" 검색 결과 <span style="font-size: 0.875rem; font-weight: 400; color: var(--gray-400);"><?= number_format($totalCount) ?>건</span></h1>

            <!-- 카테고리 칩 필터 -->
            <div class="filter-chips" style="margin-bottom: 20px;">
                <a href="/search?q=<?= urlencode($query) ?>" class="chip <?= !$category ? 'chip-active' : '' ?>">전체</a>
                <?php foreach ($categories as $cat): ?>
                <a href="/search?q=<?= urlencode($query) ?>&category=<?= urlencode($cat['name']) ?>" class="chip <?= $category === $cat['name'] ? 'chip-active' : '' ?>"><?= getCategoryEmoji($cat['name']) ?> <?= e($cat['name']) ?></a>
                <?php endforeach; ?>
            </div>

            <?php renderAd('top'); ?>

            <?php if (!empty($policies)): ?>
            <div class="policy-list-view">
                <div class="policy-grid">
                    <?php foreach ($policies as $policy): ?>
                    <article class="policy-card">
                        <div class="card-accent" data-cat="<?= e($policy['category']) ?>"></div>
                        <div class="card-body">
                            <div class="card-badges">
                                <?php $st = $policy['status'] ?? 'active'; ?>
                                <span class="badge badge-<?= $st ?>"><?= getStatusBadge($st) ?></span>
                                <span class="badge badge-category"><?= e($policy['category']) ?></span>
                                <?php $dday = getDday($policy['end_date']); if ($dday): ?>
                                <span class="badge badge-dday"><?= $dday ?></span>
                                <?php endif; ?>
                            </div>
                            <a href="/policy/<?= urlencode($policy['slug']) ?>" class="card-title"><?= e($policy['title']) ?></a>
                            <?php if (!empty($policy['summary'])): ?>
                            <p class="card-summary"><?= e(truncate($policy['summary'], 100)) ?></p>
                            <?php endif; ?>
                            <div class="card-meta">
                                <span><?= e($policy['department'] ?? '') ?></span>
                                <?php if (!empty($policy['end_date'])): ?>
                                <span class="meta-divider">&middot;</span>
                                <span>마감 <?= $policy['end_date'] ?></span>
                                <?php endif; ?>
                            </div>
                        </div>
                    </article>
                    <?php endforeach; ?>
                </div>
            </div>

            <!-- 페이지네이션 -->
            <?php if ($totalPages > 1): ?>
            <div class="pagination">
                <?php
                $queryParams = $_GET;
                unset($queryParams['page']);
                $baseQuery = http_build_query($queryParams);
                $baseUrl = '/search?' . ($baseQuery ? $baseQuery . '&' : '');
                ?>

                <?php if ($page > 1): ?>
                <a href="<?= $baseUrl ?>page=<?= $page - 1 ?>" title="이전">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="m15 18-6-6 6-6"/></svg>
                </a>
                <?php endif; ?>

                <?php
                $startPage = max(1, $page - 4);
                $endPage = min($totalPages, $startPage + 9);
                $startPage = max(1, $endPage - 9);
                for ($p = $startPage; $p <= $endPage; $p++):
                ?>
                    <?php if ($p === $page): ?>
                    <span class="current"><?= $p ?></span>
                    <?php else: ?>
                    <a href="<?= $baseUrl ?>page=<?= $p ?>"><?= $p ?></a>
                    <?php endif; ?>
                <?php endfor; ?>

                <?php if ($page < $totalPages): ?>
                <a href="<?= $baseUrl ?>page=<?= $page + 1 ?>" title="다음">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="m9 18 6-6-6-6"/></svg>
                </a>
                <?php endif; ?>
            </div>
            <?php endif; ?>

            <?php else: ?>
            <div class="empty-state">
                <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="var(--gray-300)" stroke-width="1.5" style="margin: 0 auto 16px;"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
                <p>"<?= e($query) ?>"에 대한 검색 결과가 없습니다.</p>
                <p style="font-size: 0.875rem; color: var(--gray-400); margin-top: 8px;">다른 검색어를 시도해 보세요.</p>
            </div>
            <?php endif; ?>

        <?php else: ?>
            <!-- 검색 전 화면 -->
            <?php if (!empty($trendingKeywords)): ?>
            <h2 class="section-heading">인기 검색어</h2>
            <div class="trending-tags">
                <?php foreach ($trendingKeywords as $i => $kw): ?>
                <a href="/search?q=<?= urlencode($kw['keyword']) ?>">
                    <span style="font-weight: 600; color: var(--primary-600);"><?= ($i + 1) ?></span> <?= e($kw['keyword']) ?>
                </a>
                <?php endforeach; ?>
            </div>
            <?php endif; ?>

            <h2 class="section-heading" style="margin-top: 32px;">추천 검색어</h2>
            <div class="trending-tags">
                <?php
                $suggestions = ['청년 월세', '육아수당', '소상공인 대출', '국민취업지원제도', '기초연금', '청년도약계좌', '장애인 지원', '전세자금', '내일배움카드', '창업지원금'];
                foreach ($suggestions as $s):
                ?>
                <a href="/search?q=<?= urlencode($s) ?>"><?= e($s) ?></a>
                <?php endforeach; ?>
            </div>
        <?php endif; ?>

    </div>
</div>

<?php require_once BASE_DIR . '/templates/footer.php'; ?>
