<?php
/**
 * System Settings & CMS Page
 * CMTC Shopping
 */
require_once __DIR__ . '/../includes/header.php';
require_once __DIR__ . '/../includes/navbar.php';

require_login();
require_permission($db, 'system_settings');

$error = "";
$success = "";

// Ensure all needed columns exist
try {
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `footer_text` varchar(500) DEFAULT '© 2026 CMTC Shopping. All Rights Reserved.'");
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `version` varchar(20) DEFAULT '1.0.0'");
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `limit_per_person` int(11) DEFAULT 5");
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `booking_open` tinyint(1) DEFAULT 1");
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `booking_start` datetime DEFAULT NULL");
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `booking_end` datetime DEFAULT NULL");
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `favicon` varchar(255) DEFAULT NULL");
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `announcement_title` varchar(255) DEFAULT NULL");
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `announcement_content` text DEFAULT NULL");
    $db->exec("ALTER TABLE system_settings ADD COLUMN IF NOT EXISTS `announcement_image` varchar(255) DEFAULT NULL");
} catch (Exception $e) {}

// Handle Announcement Post
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['post_announcement'])) {
    $ann_title = trim($_POST['announcement_title'] ?? '');
    $ann_content = trim($_POST['announcement_content'] ?? '');
    $ann_image = null;

    if (isset($_FILES['announcement_image']) && $_FILES['announcement_image']['error'] === UPLOAD_ERR_OK) {
        $upload_res = upload_image($_FILES['announcement_image'], 'announcements', 'ann');
        if ($upload_res['success']) {
            $ann_image_name = $upload_res['filename'];
            $db->prepare("UPDATE system_settings SET announcement_title = ?, announcement_content = ?, announcement_image = ?")->execute([$ann_title, $ann_content, $ann_image_name]);
        }
    } else {
        $db->prepare("UPDATE system_settings SET announcement_title = ?, announcement_content = ?")->execute([$ann_title, $ann_content]);
    }
    $success = "โพสต์ข่าวประชาสัมพันธ์เรียบร้อยแล้ว";
}

// Handle Settings Update
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['save_settings'])) {
    if (!validate_csrf_token($_POST['csrf_token'] ?? '')) {
        $error = "โทเค็นความปลอดภัยไม่ถูกต้อง";
    } else {
        $system_name = trim($_POST['system_name'] ?? '');
        $footer_text = trim($_POST['footer_text'] ?? '');
        $version = trim($_POST['version'] ?? '1.0.0');
        $limit_per_person = intval($_POST['limit_per_person'] ?? 5);
        $booking_open = isset($_POST['booking_open']) ? 1 : 0;
        $booking_start = !empty($_POST['booking_start']) ? $_POST['booking_start'] : null;
        $booking_end = !empty($_POST['booking_end']) ? $_POST['booking_end'] : null;

        try {
            $stmt = $db->prepare("UPDATE system_settings SET system_name = ?, footer_text = ?, version = ?, limit_per_person = ?, booking_open = ?, booking_start = ?, booking_end = ?");
            $stmt->execute([$system_name, $footer_text, $version, $limit_per_person, $booking_open, $booking_start, $booking_end]);

            // Handle logo upload
            if (isset($_FILES['logo']) && $_FILES['logo']['error'] === UPLOAD_ERR_OK) {
                $upload_res = upload_image($_FILES['logo'], '', 'logo');
                if ($upload_res['success']) {
                    $db->prepare("UPDATE system_settings SET logo = ?")->execute([$upload_res['filename']]);
                }
            }

            // Handle favicon upload
            if (isset($_FILES['favicon']) && $_FILES['favicon']['error'] === UPLOAD_ERR_OK) {
                $upload_res = upload_image($_FILES['favicon'], '', 'favicon');
                if ($upload_res['success']) {
                    $db->prepare("UPDATE system_settings SET favicon = ?")->execute([$upload_res['filename']]);
                }
            }

            log_activity($db, 'edit', "แก้ไขการตั้งค่าระบบ");
            $success = "บันทึกการตั้งค่าระบบเรียบร้อยแล้ว";
        } catch (Exception $e) {
            $error = "เกิดข้อผิดพลาด: " . $e->getMessage();
        }
    }
}

// Fetch current settings
$settings = $db->query("SELECT * FROM system_settings LIMIT 1")->fetch();

// Fetch recent announcements (last 5)
$announcements = [];
try {
    $ann_stmt = $db->query("
        SELECT id, announcement_title as title, announcement_content as content, announcement_image as image, created_at
        FROM system_settings 
        WHERE announcement_title IS NOT NULL AND announcement_title != ''
        LIMIT 5
    ");
    $announcements = $ann_stmt->fetchAll();
} catch (Exception $e) {}
?>

<div class="d-flex">
    <?php require_once __DIR__ . '/../includes/sidebar.php'; ?>

    <main class="flex-grow-1 p-4" style="background-color: var(--bs-body-bg);">
        <div class="d-flex justify-content-between align-items-center mb-4">
            <div>
                <h3 class="fw-bold mb-0"><i class="bi bi-gear-fill text-primary me-2"></i>ตั้งค่าระบบและ CMS</h3>
                <nav aria-label="breadcrumb">
                    <ol class="breadcrumb mb-0">
                        <li class="breadcrumb-item"><a href="dashboard.php">แดชบอร์ด</a></li>
                        <li class="breadcrumb-item active">ตั้งค่าระบบ</li>
                    </ol>
                </nav>
            </div>
        </div>

        <?php if (!empty($error)): ?>
            <div class="alert alert-danger mb-4"><?php echo $error; ?></div>
        <?php endif; ?>
        <?php if (!empty($success)): ?>
            <div class="alert alert-success mb-4"><?php echo $success; ?></div>
        <?php endif; ?>

        <div class="row g-4">
            <!-- Left Column: System Settings -->
            <div class="col-lg-7">
                <div class="card border-0 shadow-sm glass-card p-4">
                    <h5 class="fw-bold mb-4"><i class="bi bi-sliders text-primary me-2"></i>ข้อมูลระบบและการจอง</h5>

                    <form method="POST" enctype="multipart/form-data">
                        <input type="hidden" name="csrf_token" value="<?php echo get_csrf_token(); ?>">

                        <div class="mb-3">
                            <label class="form-label fw-semibold">ชื่อระบบ Web Application</label>
                            <input type="text" name="system_name" class="form-control" value="<?php echo sanitize($settings['system_name'] ?? 'CMTC Smart Outfit Shopping & Booking'); ?>" required>
                        </div>

                        <div class="row g-3 mb-3">
                            <div class="col-md-6">
                                <label class="form-label fw-semibold">โลโก้ระบบ (Logo)</label>
                                <?php if (!empty($settings['logo'])): ?>
                                    <div class="mb-1"><img src="<?php echo base_url('uploads/' . sanitize($settings['logo'])); ?>" height="40" class="rounded border p-1"></div>
                                <?php endif; ?>
                                <input type="file" name="logo" class="form-control" accept="image/*">
                            </div>
                            <div class="col-md-6">
                                <label class="form-label fw-semibold">ไอคอนเว็บ (Favicon)</label>
                                <?php if (!empty($settings['favicon'])): ?>
                                    <div class="mb-1"><img src="<?php echo base_url('uploads/' . sanitize($settings['favicon'])); ?>" height="32" class="rounded border p-1"></div>
                                <?php endif; ?>
                                <input type="file" name="favicon" class="form-control" accept="image/*,.ico">
                            </div>
                        </div>

                        <div class="mb-3">
                            <label class="form-label fw-semibold">ข้อความท้ายเว็บ (Footer Text)</label>
                            <input type="text" name="footer_text" class="form-control" value="<?php echo sanitize($settings['footer_text'] ?? '© 2026 CMTC Shopping. All Rights Reserved.'); ?>">
                        </div>

                        <div class="row g-3 mb-4">
                            <div class="col-md-6">
                                <label class="form-label fw-semibold">เลขเวอร์ชัน (Version)</label>
                                <input type="text" name="version" class="form-control" value="<?php echo sanitize($settings['version'] ?? '1.0.0'); ?>">
                            </div>
                            <div class="col-md-6">
                                <label class="form-label fw-semibold">จำกัดจำนวนของสูงสุด/คน (ชิ้น)</label>
                                <input type="number" name="limit_per_person" class="form-control" min="1" value="<?php echo intval($settings['limit_per_person'] ?? 5); ?>">
                            </div>
                        </div>

                        <!-- Booking Toggle -->
                        <div class="mb-3">
                            <div class="form-check form-switch mb-2">
                                <input class="form-check-input" type="checkbox" name="booking_open" id="booking_open" role="switch" <?php echo ($settings['booking_open'] ?? 1) ? 'checked' : ''; ?>>
                                <label class="form-check-label fw-semibold text-primary" for="booking_open">
                                    <i class="bi bi-calendar-check me-1"></i>เปิดรับการจองออนไลน์ / สั่งจองสินค้า
                                </label>
                            </div>
                        </div>

                        <div class="row g-3 mb-4">
                            <div class="col-md-6">
                                <label class="form-label fw-semibold">วันและเวลาเปิดรับจอง</label>
                                <input type="datetime-local" name="booking_start" class="form-control" value="<?php echo !empty($settings['booking_start']) ? date('Y-m-d\TH:i', strtotime($settings['booking_start'])) : ''; ?>">
                            </div>
                            <div class="col-md-6">
                                <label class="form-label fw-semibold">วันและเวลาปิดรับจอง</label>
                                <input type="datetime-local" name="booking_end" class="form-control" value="<?php echo !empty($settings['booking_end']) ? date('Y-m-d\TH:i', strtotime($settings['booking_end'])) : ''; ?>">
                            </div>
                        </div>

                        <button type="submit" name="save_settings" class="btn btn-primary px-4">
                            <i class="bi bi-floppy-disk me-1"></i> บันทึกการตั้งค่าระบบ
                        </button>
                    </form>
                </div>
            </div>

            <!-- Right Column: Announcement -->
            <div class="col-lg-5">
                <div class="card border-0 shadow-sm glass-card p-4 mb-4">
                    <h5 class="fw-bold mb-3"><i class="bi bi-megaphone-fill text-danger me-2"></i>ประกาศข่าวประชาสัมพันธ์</h5>

                    <form method="POST" enctype="multipart/form-data">
                        <div class="mb-3">
                            <label class="form-label fw-semibold">หัวข้อประกาศ (ไม่บังคับ หากไม่โหลดรูปภาพ)</label>
                            <input type="text" name="announcement_title" class="form-control" placeholder="หัวข้อเรื่อง">
                        </div>
                        <div class="mb-3">
                            <label class="form-label fw-semibold">เนื้อหาข่าวประกาศ (ไม่บังคับ)</label>
                            <textarea name="announcement_content" class="form-control" rows="3" placeholder="พิมพ์รายละเอียดข่าวประกาศ..."></textarea>
                        </div>
                        <div class="mb-3">
                            <label class="form-label fw-semibold">รูปภาพข่าวประกาศ (ไม่บังคับ)</label>
                            <input type="file" name="announcement_image" class="form-control" accept="image/*">
                        </div>
                        <button type="submit" name="post_announcement" class="btn btn-danger w-100">
                            <i class="bi bi-megaphone me-1"></i> โพสต์ข่าวประชาสัมพันธ์
                        </button>
                    </form>
                </div>

                <!-- Recent Announcements -->
                <div class="card border-0 shadow-sm glass-card p-4">
                    <h6 class="fw-bold mb-3"><i class="bi bi-clock-history text-muted me-2"></i>ข่าวประกาศล่าสุด 5 รายการ</h6>
                    <?php if (count($announcements) > 0): ?>
                        <ul class="list-group list-group-flush">
                            <?php foreach ($announcements as $ann): ?>
                                <li class="list-group-item bg-transparent px-0 py-2">
                                    <div class="fw-semibold small"><?php echo sanitize($ann['title'] ?? 'ไม่มีหัวข้อ'); ?></div>
                                    <small class="text-muted"><?php echo sanitize(mb_substr($ann['content'] ?? '', 0, 60)); ?>...</small>
                                </li>
                            <?php endforeach; ?>
                        </ul>
                    <?php else: ?>
                        <p class="text-muted small text-center py-2">ยังไม่มีข่าวประกาศ</p>
                    <?php endif; ?>
                </div>
            </div>
        </div>
    </main>
</div>

<?php require_once __DIR__ . '/../includes/footer.php'; ?>
