<?php
// admin/announcement.php - مدیریت اعلان‌های مدیریت

session_start();
require_once '../config/database.php';
require_once '../includes/db.php';
require_once '../includes/auth.php';
require_once '../includes/functions.php';

if (!isLoggedIn()) {
    header('Location: ../login.php');
    exit;
}

$user = getCurrentUser();
if (!in_array($user['role_level'], [1, 2, 3])) {
    header('Location: dashboard.php');
    exit;
}

$pageTitle = 'مدیریت اعلان‌ها';
$pageSubtitle = 'ارسال اعلان به اساتید در صفحه برنامه‌ریزی تدریس';

// ===== دریافت لیست ترم‌ها =====
$allTerms = getAllTerms();

// ===== دریافت اعلان‌های موجود =====
$announcements = fetchAll(
    "SELECT a.*, u.name, u.family 
     FROM announcements a
     LEFT JOIN users u ON a.created_by = u.id
     ORDER BY a.id DESC"
);

$message = '';
$messageType = '';

// ===== پردازش فرم =====
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';
    
    if ($action == 'add') {
        $term_id = isset($_POST['term_id']) ? (int)$_POST['term_id'] : 0;
        $title = trim($_POST['title'] ?? '');
        $content = trim($_POST['content'] ?? '');
        $is_active = isset($_POST['is_active']) ? 1 : 0;
        
        if (empty($term_id)) {
            $message = '❌ لطفاً ترم را انتخاب کنید.';
            $messageType = 'danger';
        } elseif (empty($content)) {
            $message = '❌ لطفاً متن اعلان را وارد کنید.';
            $messageType = 'danger';
        } else {
            $data = [
                'term_id' => $term_id,
                'title' => $title,
                'content' => $content,
                'is_active' => $is_active,
                'created_by' => $user['id']
            ];
            $result = insertData('announcements', $data);
            
            if ($result !== false) {
                $message = '✅ اعلان با موفقیت ایجاد شد.';
                $messageType = 'success';
                $announcements = fetchAll(
                    "SELECT a.*, u.name, u.family 
                     FROM announcements a
                     LEFT JOIN users u ON a.created_by = u.id
                     ORDER BY a.id DESC"
                );
            } else {
                $message = '❌ خطا در ایجاد اعلان.';
                $messageType = 'danger';
            }
        }
    } elseif ($action == 'toggle_status') {
        $id = isset($_POST['id']) ? (int)$_POST['id'] : 0;
        $current_status = isset($_POST['current_status']) ? (int)$_POST['current_status'] : 1;
        $new_status = $current_status ? 0 : 1;
        
        $result = updateData('announcements', ['is_active' => $new_status], 'id = :id', ['id' => $id]);
        
        if ($result !== false) {
            $message = '✅ وضعیت اعلان تغییر یافت.';
            $messageType = 'success';
            $announcements = fetchAll(
                "SELECT a.*, u.name, u.family 
                 FROM announcements a
                 LEFT JOIN users u ON a.created_by = u.id
                 ORDER BY a.id DESC"
            );
        } else {
            $message = '❌ خطا در تغییر وضعیت.';
            $messageType = 'danger';
        }
    } elseif ($action == 'delete') {
        $id = isset($_POST['id']) ? (int)$_POST['id'] : 0;
        
        $result = deleteData('announcements', 'id = :id', ['id' => $id]);
        
        if ($result !== false) {
            $message = '✅ اعلان با موفقیت حذف شد.';
            $messageType = 'success';
            $announcements = fetchAll(
                "SELECT a.*, u.name, u.family 
                 FROM announcements a
                 LEFT JOIN users u ON a.created_by = u.id
                 ORDER BY a.id DESC"
            );
        } else {
            $message = '❌ خطا در حذف اعلان.';
            $messageType = 'danger';
        }
    }
}

$content = 'announcement-content.php';
require_once '../includes/layout.php';
?>