<?php
session_start();
require_once '../config.php';

if (!function_exists('displayText')) {
    function displayText($text) {
        if ($text === null) return '';
        return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
    }
}

if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
    header("Location: ../admin_panel.php");
    exit;
}

$stmt = $pdo->prepare("SELECT * FROM admin WHERE id = ?");
$stmt->execute([$_SESSION['admin_id']]);
$admin = $stmt->fetch(PDO::FETCH_ASSOC);

// افزودن اطلاعیه جدید
if (isset($_POST['add_announcement'])) {
    $title = trim($_POST['title']);
    $preview = trim($_POST['preview']);
    $content = trim($_POST['content']);
    $status = isset($_POST['status']) ? 1 : 0;
    
    // حذف اطلاعیه قبلی (فقط یک اطلاعیه فعال可以有)
    $pdo->prepare("DELETE FROM announcements")->execute();
    
    $stmt = $pdo->prepare("INSERT INTO announcements (title, preview, content, status) VALUES (?, ?, ?, ?)");
    $stmt->execute([$title, $preview, $content, $status]);
    $_SESSION['success'] = "اطلاعیه با موفقیت اضافه شد";
    header("Location: announcements.php");
    exit;
}

// ویرایش اطلاعیه
if (isset($_POST['edit_announcement'])) {
    $id = (int)$_POST['id'];
    $title = trim($_POST['title']);
    $preview = trim($_POST['preview']);
    $content = trim($_POST['content']);
    $status = isset($_POST['status']) ? 1 : 0;
    
    // حذف سایر اطلاعیه‌ها (فقط یک اطلاعیه可以有)
    $pdo->prepare("DELETE FROM announcements WHERE id != ?")->execute([$id]);
    
    $stmt = $pdo->prepare("UPDATE announcements SET title = ?, preview = ?, content = ?, status = ? WHERE id = ?");
    $stmt->execute([$title, $preview, $content, $status, $id]);
    $_SESSION['success'] = "اطلاعیه با موفقیت ویرایش شد";
    header("Location: announcements.php");
    exit;
}

// حذف اطلاعیه
if (isset($_GET['delete_announcement'])) {
    $id = (int)$_GET['delete_announcement'];
    $pdo->prepare("DELETE FROM announcements WHERE id = ?")->execute([$id]);
    $_SESSION['success'] = "اطلاعیه با موفقیت حذف شد";
    header("Location: announcements.php");
    exit;
}

// دریافت اطلاعات اطلاعیه به صورت JSON
if (isset($_GET['get_announcement_json'])) {
    $stmt = $pdo->prepare("SELECT * FROM announcements WHERE id = ?");
    $stmt->execute([$_GET['get_announcement_json']]);
    header('Content-Type: application/json');
    echo json_encode($stmt->fetch(PDO::FETCH_ASSOC));
    exit;
}

$announcements = $pdo->query("SELECT * FROM announcements ORDER BY id DESC")->fetchAll();
$success = $_SESSION['success'] ?? null;
$error = $_SESSION['error'] ?? null;
unset($_SESSION['success'], $_SESSION['error']);
?>
<!DOCTYPE html>
<html dir="rtl" lang="fa">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
    <title>مدیریت اطلاعیه‌ها | رهگذر</title>
    <link rel="stylesheet" href="../style.css">
</head>
<body>
<div class="container">
    <div class="admin-header">
        <div class="brand">
            <img src="../picture/rahgozar.png" alt="مدیریت" class="brand-logo">
            <span class="brand-name">مدیریت اطلاعیه‌ها</span>
        </div>
        <div class="admin-info">
            <div class="admin-welcome">خوش آمدید، <strong><?= displayText($admin['full_name'] ?? $admin['username']) ?></strong></div>
            <a href="../admin_panel.php" class="logout-btn">بازگشت به داشبورد</a>
            <a href="../admin_panel.php?logout=1" class="logout-btn">خروج</a>
        </div>
    </div>

    <?php if($success): ?>
        <div class="alert alert-success"><?= displayText($success) ?></div>
    <?php endif; ?>
    <?php if($error): ?>
        <div class="alert alert-error"><?= displayText($error) ?></div>
    <?php endif; ?>

    <div class="content-card">
        <div class="section-header">
            <div class="section-title">
                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
                    <path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/>
                    <path d="M13.73 21a2 2 0 0 1-3.46 0"/>
                </svg>
                اطلاعیه سامانه
            </div>
            <button class="add-btn" onclick="openAddAnnouncementModal()">+ افزودن اطلاعیه جدید</button>
        </div>

        <?php if(count($announcements) == 0): ?>
            <div class="empty-state">
                <svg width="60" height="60" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1">
                    <path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/>
                    <path d="M13.73 21a2 2 0 0 1-3.46 0"/>
                </svg>
                <p>هیچ اطلاعیه‌ای وجود ندارد</p>
                <button class="add-btn" onclick="openAddAnnouncementModal()" style="margin-top: 16px;">ایجاد اولین اطلاعیه</button>
            </div>
        <?php else: ?>
            <div class="table-wrapper">
                <table>
                    <thead>
                        <tr><th>آیدی</th><th>عنوان</th><th>پیش‌نمایش</th><th>وضعیت</th><th>تاریخ ایجاد</th><th>عملیات</th></tr>
                    </thead>
                    <tbody>
                        <?php foreach($announcements as $ann): ?>
                        <tr>
                            <td><?= $ann['id'] ?> </td>
                            <td><strong><?= displayText($ann['title']) ?></strong> </td>
                            <td style="max-width: 300px;"><?= displayText(mb_substr($ann['preview'], 0, 60)) ?>... </td>
                            <td><span class="badge <?= $ann['status'] ? 'badge-active' : 'badge-inactive' ?>"><?= $ann['status'] ? 'فعال' : 'غیرفعال' ?></span> </td>
                            <td><?= date('Y-m-d H:i', strtotime($ann['created_at'])) ?> </td>
                            <td class="action-buttons">
                                <button class="edit-btn" onclick="openEditAnnouncementModal(<?= $ann['id'] ?>)">ویرایش</button>
                                <a href="?delete_announcement=<?= $ann['id'] ?>" class="delete-btn" onclick="return confirm('آیا از حذف این اطلاعیه اطمینان دارید؟')">حذف</a>
                             </td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            <div class="info-note" style="margin-top: 16px; padding: 12px; background: rgba(16,185,129,0.08); border-radius: var(--r-md); font-size: 12px; color: var(--text-3);">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="display: inline; margin-left: 6px;">
                    <circle cx="12" cy="12" r="10"/>
                    <line x1="12" y1="12" x2="12" y2="16"/>
                    <line x1="12" y1="8" x2="12.01" y2="8"/>
                </svg>
                توجه: فقط یک اطلاعیه می‌تواند فعال باشد. با افزودن اطلاعیه جدید، اطلاعیه قبلی حذف می‌شود.
            </div>
        <?php endif; ?>
    </div>
</div>

<!-- مودال افزودن/ویرایش اطلاعیه -->
<div id="announcementModal" class="modal">
    <div class="modal-content">
        <div class="modal-header">
            <h3 id="announcementModalTitle">افزودن اطلاعیه جدید</h3>
            <button class="close-modal" onclick="closeModal('announcementModal')">×</button>
        </div>
        <form id="announcementForm" method="POST">
            <input type="hidden" name="id" id="announcement_id">
            
            <div class="form-group">
                <label>عنوان اطلاعیه</label>
                <input type="text" name="title" id="announcement_title" placeholder="مثال: اطلاعیه مهم سامانه" required>
            </div>
            
            <div class="form-group">
                <label>پیش‌نمایش (متن کوتاه)</label>
                <textarea name="preview" id="announcement_preview" rows="3" placeholder="متن خلاصه اطلاعیه که در صفحه اصلی نمایندگان نمایش داده می‌شود..." required></textarea>
                <small style="color: var(--text-3); font-size: 11px;">حداکثر 150 کاراکتر</small>
            </div>
            
            <div class="form-group">
                <label>متن کامل اطلاعیه</label>
                <textarea name="content" id="announcement_content" rows="8" placeholder="متن کامل اطلاعیه با جزئیات..." required></textarea>
            </div>
            
            <div class="form-group checkbox-group">
                <input type="checkbox" name="status" id="announcement_status" value="1" checked>
                <label>فعال (نمایش به نمایندگان)</label>
            </div>
            
            <div class="form-actions">
                <button type="submit" class="btn-submit" id="announcementSubmitBtn">افزودن اطلاعیه</button>
                <button type="button" class="btn-cancel" onclick="closeModal('announcementModal')">انصراف</button>
            </div>
        </form>
    </div>
</div>

<script>
function closeModal(modalId) {
    document.getElementById(modalId).style.display = 'none';
    document.body.style.overflow = '';
}

function openAddAnnouncementModal() {
    document.getElementById('announcementModalTitle').innerHTML = 'افزودن اطلاعیه جدید';
    document.getElementById('announcementForm').reset();
    document.getElementById('announcement_id').value = '';
    document.getElementById('announcement_status').checked = true;
    document.getElementById('announcementSubmitBtn').innerHTML = 'افزودن اطلاعیه';
    
    // حذف input قبلی و اضافه کردن input جدید
    let oldInput = document.querySelector('#announcementForm input[name="add_announcement"], #announcementForm input[name="edit_announcement"]');
    if (oldInput) oldInput.remove();
    
    let input = document.createElement('input');
    input.type = 'hidden';
    input.name = 'add_announcement';
    input.value = '1';
    document.getElementById('announcementForm').appendChild(input);
    
    document.getElementById('announcementModal').style.display = 'flex';
    document.body.style.overflow = 'hidden';
}

function openEditAnnouncementModal(id) {
    fetch('?get_announcement_json=' + id)
        .then(response => response.json())
        .then(ann => {
            document.getElementById('announcementModalTitle').innerHTML = 'ویرایش اطلاعیه';
            document.getElementById('announcement_id').value = ann.id;
            document.getElementById('announcement_title').value = ann.title;
            document.getElementById('announcement_preview').value = ann.preview;
            document.getElementById('announcement_content').value = ann.content;
            document.getElementById('announcement_status').checked = (ann.status == 1);
            document.getElementById('announcementSubmitBtn').innerHTML = 'ذخیره تغییرات';
            
            // حذف input قبلی و اضافه کردن input جدید
            let oldInput = document.querySelector('#announcementForm input[name="add_announcement"], #announcementForm input[name="edit_announcement"]');
            if (oldInput) oldInput.remove();
            
            let input = document.createElement('input');
            input.type = 'hidden';
            input.name = 'edit_announcement';
            input.value = '1';
            document.getElementById('announcementForm').appendChild(input);
            
            document.getElementById('announcementModal').style.display = 'flex';
            document.body.style.overflow = 'hidden';
        })
        .catch(error => {
            console.error('خطا:', error);
            alert('خطا در دریافت اطلاعات اطلاعیه');
        });
}

// بستن مودال با کلیک روی خارج از آن
window.addEventListener('click', function(e) {
    const modal = document.getElementById('announcementModal');
    if (e.target === modal) {
        modal.style.display = 'none';
        document.body.style.overflow = '';
    }
});
</script>
</body>
</html>