<?php
declare(strict_types=1);

require_once __DIR__ . '/../includes/config.php';
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/functions.php';
require_once __DIR__ . '/../includes/admin-auth.php';

$pdo = db();
requireAdmin();

if (isPost()) { requireCsrf(); }

$success = flash('success') ?: '';
$error = '';
$admin = currentAdmin($pdo);
if(isPost()){$action=(string)($_POST['action']??'');try{
 if($action==='delete'){$id=(int)($_POST['delete_id']??0);if(!safeFetch($pdo,'SELECT id FROM core_notifications WHERE id=?',[$id]))throw new RuntimeException('Notification not found.');mustExecute($pdo,'DELETE FROM core_notifications WHERE id=?',[$id]);logActivity($pdo,'admin',(int)($admin['id']??0),'Notification deleted','Notification ID '.$id);flash('success','Notification deleted.');redirect('admin/notifications.php');}
 if($action==='create'){$studentId=(int)($_POST['student_id']??0);$title=trim((string)($_POST['title']??''));$message=trim((string)($_POST['message']??''));$type=(string)($_POST['type']??'general');$all=isset($_POST['send_to_all']);if($title===''||$message==='')throw new RuntimeException('Title and message are required.');if(!in_array($type,['general','exam','attendance','warning','homework'],true))throw new RuntimeException('Invalid notification type.');$ids=$all?array_column(safeFetchAll($pdo,"SELECT id FROM students WHERE status IN ('approved','active') ORDER BY id"),'id'):[$studentId];$ids=array_values(array_filter(array_map('intval',$ids),fn($id)=>$id>0));if(!$ids)throw new RuntimeException('No eligible student was selected.');if(!$all&&!safeFetch($pdo,'SELECT id FROM students WHERE id=?',[$studentId]))throw new RuntimeException('Student not found.');$pdo->beginTransaction();$stmt=$pdo->prepare('INSERT INTO core_notifications (student_id,title,message,notification_type,is_read,created_at) VALUES (?,?,?,?,0,NOW())');foreach($ids as $id)$stmt->execute([$id,$title,$message,$type]);$pdo->commit();logActivity($pdo,'admin',(int)($admin['id']??0),'Notification sent','Sent notification to '.count($ids).' student(s).');flash('success','Notification sent to '.count($ids).' student(s).');redirect('admin/notifications.php');}
 }catch(Throwable $e){if($pdo->inTransaction())$pdo->rollBack();error_log('[SMI notifications] '.$e->getMessage());$error=APP_DEBUG?$e->getMessage():$e->getMessage();}}

$students = [];

if (tableExists($pdo, 'students')) {

    $students = $pdo->query("
        SELECT
            id,
            full_name,
            student_code
        FROM students
        ORDER BY full_name ASC
    ")->fetchAll();
}

$notifications = [];

if (tableExists($pdo, 'core_notifications')) {

    $stmt = $pdo->query("
        SELECT

            n.*,

            s.full_name,
            s.student_code

        FROM core_notifications n

        LEFT JOIN students s
            ON s.id = n.student_id

        ORDER BY n.id DESC
    ");

    $notifications =
        $stmt->fetchAll();
}

?>

<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="UTF-8">

<meta
name="viewport"
content="width=device-width, initial-scale=1.0">

<title>
Notifications Management
</title>

<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap"
rel="stylesheet">

<style>

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:'Inter',sans-serif;
    background:#f1f5f9;
    color:#0f172a;
}

.page{
    padding:34px;
}

.topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:30px;
}

.page-title{
    font-size:42px;
    font-weight:900;
}

.back-btn{
    background:#dbeafe;
    color:#1d4ed8;
    text-decoration:none;
    padding:14px 20px;
    border-radius:18px;
    font-weight:900;
}

.grid{
    display:grid;
    grid-template-columns:420px 1fr;
    gap:26px;
}

.card{
    background:#fff;
    border-radius:34px;
    padding:30px;
    border:1px solid #e2e8f0;
    box-shadow:0 18px 45px rgba(15,23,42,.05);
}

.card h2{
    font-size:30px;
    margin-bottom:22px;
    font-weight:900;
}

.form-group{
    margin-bottom:18px;
}

.form-group label{
    display:block;
    margin-bottom:10px;
    font-weight:800;
}

.form-control{
    width:100%;
    padding:16px;
    border-radius:18px;
    border:1px solid #cbd5e1;
}

textarea.form-control{
    min-height:140px;
}

.submit-btn{
    width:100%;
    border:none;

    background:
    linear-gradient(
        135deg,
        #2563eb,
        #7c3aed
    );

    color:#fff;

    padding:18px;

    border-radius:20px;

    font-weight:900;

    cursor:pointer;
}

.table-wrap{
    overflow:auto;
}

table{
    width:100%;
    border-collapse:collapse;
}

th{
    background:#f8fafc;

    padding:18px;

    text-align:left;

    font-size:13px;

    text-transform:uppercase;

    color:#64748b;
}

td{
    padding:18px;

    border-top:1px solid #e2e8f0;

    font-size:14px;

    vertical-align:top;
}

.badge{
    display:inline-block;

    padding:8px 12px;

    border-radius:999px;

    background:#ede9fe;

    color:#6d28d9;

    font-size:12px;

    font-weight:900;
}

.action-btn{
    padding:10px 14px;

    border-radius:14px;

    text-decoration:none;

    font-size:12px;

    font-weight:900;
}

.delete-btn{
    background:#fee2e2;
    color:#b91c1c;
}

.alert{
    padding:18px;

    border-radius:18px;

    margin-bottom:24px;

    font-weight:800;
}

.alert-success{
    background:#dcfce7;
    color:#166534;
}

.alert-danger{
    background:#fee2e2;
    color:#991b1b;
}

.checkbox-wrap{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:18px;
}

@media(max-width:1100px){

    .grid{
        grid-template-columns:1fr;
    }
}

</style>

</head>

<body>

<div class="page">

    <div class="topbar">

        <h1 class="page-title">
            Notifications Management
        </h1>

        <a
        href="dashboard.php"
        class="back-btn">

            ← Dashboard

        </a>

    </div>

    <?php if($success): ?>

        <div class="alert alert-success">

            <?php echo e($success); ?>

        </div>

    <?php endif; ?>

    <?php if($error): ?>

        <div class="alert alert-danger">

            <?php echo e($error); ?>

        </div>

    <?php endif; ?>

    <div class="grid">

        <div class="card">

            <h2>
                Send Notification
            </h2>

            <form method="POST">
<input type="hidden" name="action" value="create">
<?php echo csrfField(); ?>

                <div class="checkbox-wrap">

                    <input
                    type="checkbox"
                    name="send_to_all"
                    id="send_to_all">

                    <label for="send_to_all">

                        Send To All Students

                    </label>

                </div>

                <div class="form-group">

                    <label>
                        Student
                    </label>

                    <select
                    name="student_id"
                    class="form-control">

                        <option value="">
                            Select Student
                        </option>

                        <?php foreach($students as $student): ?>

                            <option
                            value="<?php echo e((string)$student['id']); ?>">

                                <?php
                                echo e(
                                    $student['full_name']
                                    . ' - '
                                    . $student['student_code']
                                );
                                ?>

                            </option>

                        <?php endforeach; ?>

                    </select>

                </div>

                <div class="form-group">

                    <label>
                        Notification Title
                    </label>

                    <input
                    type="text"
                    name="title"
                    class="form-control"
                    required>

                </div>

                <div class="form-group">

                    <label>
                        Message
                    </label>

                    <textarea
                    name="message"
                    class="form-control"
                    required></textarea>

                </div>

                <div class="form-group">

                    <label>
                        Notification Type
                    </label>

                    <select
                    name="type"
                    class="form-control">

                        <option value="general">
                            General
                        </option>

                        <option value="exam">
                            Exam
                        </option>

                        <option value="attendance">
                            Attendance
                        </option>

                        <option value="warning">
                            Warning
                        </option>

                        <option value="homework">
                            Homework
                        </option>

                    </select>

                </div>

                <button
                type="submit"
                class="submit-btn">

                    Send Notification

                </button>

            </form>

        </div>

        <div class="card">

            <h2>
                Notifications List
            </h2>

            <div class="table-wrap">

                <table>

                    <thead>

                        <tr>

                            <th>Student</th>
                            <th>Type</th>
                            <th>Title</th>
                            <th>Message</th>
                            <th>Date</th>
                            <th>Action</th>

                        </tr>

                    </thead>

                    <tbody>

                    <?php if($notifications): ?>

                        <?php foreach($notifications as $row): ?>

                            <tr>

                                <td>

                                    <?php
                                    echo e(
                                        $row['full_name']
                                        ?? 'N/A'
                                    );
                                    ?>

                                    <br>

                                    <small>

                                        <?php
                                        echo e(
                                            $row['student_code']
                                            ?? ''
                                        );
                                        ?>

                                    </small>

                                </td>

                                <td>

                                    <span class="badge">

                                        <?php
                                        echo e(
                                            ucfirst(
                                                $row['notification_type']
                                            )
                                        );
                                        ?>

                                    </span>

                                </td>

                                <td>

                                    <?php
                                    echo e(
                                        $row['title']
                                    );
                                    ?>

                                </td>

                                <td>

                                    <?php
                                    echo nl2br(
                                        e(
                                            $row['message']
                                        )
                                    );
                                    ?>

                                </td>

                                <td>

                                    <?php
                                    echo e(
                                        $row['created_at']
                                    );
                                    ?>

                                </td>

                                <td>

                                    <form method="post" style="display:inline" onsubmit="return confirm('Delete this notification?')">
<?php echo csrfField(); ?>
<input type="hidden" name="action" value="delete">
<input type="hidden" name="delete_id" value="<?php echo e((string)$row['id']); ?>">
<button type="submit" class="action-btn delete-btn">Delete</button>
</form>

                                </td>

                            </tr>

                        <?php endforeach; ?>

                    <?php else: ?>

                        <tr>

                            <td colspan="6">

                                No notifications found.

                            </td>

                        </tr>

                    <?php endif; ?>

                    </tbody>

                </table>

            </div>

        </div>

    </div>

</div>

</body>
</html>