<?php
/**
 * Admin SMS সেন্ডার - স্টুডেন্টদের কাছে এসএমএস পাঠানোর প্যানেল
 */

session_start();

// Check admin role - support both new and legacy session variables
$user_role = $_SESSION['user_role'] ?? $_SESSION['role'] ?? '';
if (!isset($_SESSION['user_id']) || ($user_role !== 'admin')) {
    header('Location: ../login.php');
    exit;
}

require_once(__DIR__ . '/../config/database.php');
require_once(__DIR__ . '/../classes/SMSService.php');

// SMS সেটিংস নিন
$stmt = $pdo->prepare("SELECT key_name, value FROM sms_settings");
$stmt->execute();
$settings = [];
while ($row = $stmt->fetch()) {
    $settings[$row['key_name']] = $row['value'];
}

$apiKey = $settings['api_key'] ?? '';
$callerId = $settings['caller_id'] ?? '1234';

// SMS Service ইনিশিয়ালাইজ করুন
$smsService = null;
if (!empty($apiKey)) {
    try {
        $smsService = new SMSService($apiKey, $callerId, $pdo);
    } catch (Exception $e) {
        $smsService = null;
    }
}

$message = '';
$messageType = '';
$result = null;

// SMS পাঠানোর প্রসেস
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';
    
    if (empty($apiKey)) {
        $message = 'Error: API Key এখনো কনফিগার করা হয়নি। প্রথমে সেটিংস থেকে API Key যোগ করুন।';
        $messageType = 'error';
    } else {
        try {
            if ($action === 'send_to_students') {
                $studentIds = $_POST['student_ids'] ?? [];
                $smsMessage = $_POST['message'] ?? '';
                $sendToGuardian = isset($_POST['send_to_guardian']) ? 1 : 0;
                
                if (empty($studentIds)) {
                    $message = 'কোনো স্টুডেন্ট নির্বাচন করা হয়নি';
                    $messageType = 'error';
                } elseif (empty($smsMessage)) {
                    $message = 'বার্তা খালি থাকতে পারে না';
                    $messageType = 'error';
                } else {
                    // স্টুডেন্ট IDs পার্স করুন (কমা বা নিউলাইন দ্বারা বিভক্ত)
                    $ids = array_filter(array_map('intval', preg_split('/[\s,]+/', $studentIds[0])));
                    
                    $result = $smsService->sendToStudents($ids, $smsMessage, $sendToGuardian);
                    
                    if ($result['success']) {
                        $message = 'সফলভাবে ' . count($result['results']) . ' টি SMS পাঠানো হয়েছে';
                        $messageType = 'success';
                    } else {
                        $message = 'SMS পাঠাতে ত্রুটি: ' . $result['message'];
                        $messageType = 'error';
                    }
                }
                
            } elseif ($action === 'send_to_class') {
                $classId = $_POST['class_id'] ?? 0;
                $smsMessage = $_POST['message'] ?? '';
                $sendToGuardian = isset($_POST['send_to_guardian']) ? 1 : 0;
                
                if (empty($classId)) {
                    $message = 'ক্লাস নির্বাচন করুন';
                    $messageType = 'error';
                } elseif (empty($smsMessage)) {
                    $message = 'বার্তা খালি থাকতে পারে না';
                    $messageType = 'error';
                } else {
                    $result = $smsService->sendToClass($classId, $smsMessage, $sendToGuardian);
                    
                    if ($result['success']) {
                        $message = 'সফলভাবে ' . $result['student_count'] . ' জন স্টুডেন্টকে SMS পাঠানো হয়েছে';
                        $messageType = 'success';
                    } else {
                        $message = 'SMS পাঠাতে ত্রুটি: ' . $result['message'];
                        $messageType = 'error';
                    }
                }
                
            } elseif ($action === 'send_custom') {
                $phoneNumbers = $_POST['phone_numbers'] ?? '';
                $smsMessage = $_POST['message'] ?? '';
                
                if (empty($phoneNumbers)) {
                    $message = 'ফোন নম্বর প্রয়োজন';
                    $messageType = 'error';
                } elseif (empty($smsMessage)) {
                    $message = 'বার্তা খালি থাকতে পারে না';
                    $messageType = 'error';
                } else {
                    $numbers = array_filter(preg_split('/[\s,\n]+/', $phoneNumbers));
                    $result = $smsService->send($numbers, $smsMessage);
                    
                    if ($result['success']) {
                        $message = 'সফলভাবে ' . count($result['results']) . ' টি SMS পাঠানো হয়েছে';
                        $messageType = 'success';
                    } else {
                        $message = 'SMS পাঠাতে ত্রুটি: ' . $result['message'];
                        $messageType = 'error';
                    }
                }
            }
        } catch (Exception $e) {
            $message = 'Error: ' . $e->getMessage();
            $messageType = 'error';
        }
    }
}

// সব ক্লাস নিন
$classesStmt = $pdo->prepare("SELECT id, name FROM classes WHERE status = 'active' ORDER BY name");
$classesStmt->execute();
$classes = $classesStmt->fetchAll();

// সব স্টুডেন্ট নিন
$studentsStmt = $pdo->prepare("
    SELECT s.id, s.student_id, s.first_name, s.last_name, c.name as class_name, 
           s.phone, s.guardian_phone
    FROM students s
    LEFT JOIN classes c ON s.class_id = c.id
    WHERE s.status = 'active'
    ORDER BY c.name, s.first_name
");
$studentsStmt->execute();
$students = $studentsStmt->fetchAll();
?>

<!DOCTYPE html>
<html lang="bn">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>এসএমএস সেন্ডার - Admin Panel</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            padding: 20px;
        }
        
        .container {
            max-width: 1000px;
            margin: 0 auto;
        }
        
        .header {
            background: white;
            padding: 20px;
            border-radius: 10px;
            margin-bottom: 20px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        
        .header h1 {
            color: #333;
            margin-bottom: 10px;
        }
        
        .header p {
            color: #666;
            font-size: 14px;
        }
        
        .alert {
            padding: 15px;
            border-radius: 5px;
            margin-bottom: 20px;
            border-left: 4px solid;
        }
        
        .alert.success {
            background: #d4edda;
            color: #155724;
            border-color: #28a745;
        }
        
        .alert.error {
            background: #f8d7da;
            color: #721c24;
            border-color: #f5c6cb;
        }
        
        .tabs {
            display: flex;
            gap: 10px;
            margin-bottom: 20px;
            border-bottom: 2px solid #ddd;
            background: white;
            padding: 0;
            border-radius: 10px 10px 0 0;
        }
        
        .tab {
            padding: 15px 20px;
            cursor: pointer;
            background: white;
            border: none;
            border-bottom: 3px solid transparent;
            font-size: 16px;
            color: #666;
            transition: all 0.3s;
        }
        
        .tab.active {
            color: #667eea;
            border-bottom-color: #667eea;
        }
        
        .tab:hover {
            background: #f5f5f5;
        }
        
        .tab-content {
            display: none;
            background: white;
            padding: 30px;
            border-radius: 0 0 10px 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        
        .tab-content.active {
            display: block;
        }
        
        .form-group {
            margin-bottom: 20px;
        }
        
        label {
            display: block;
            margin-bottom: 8px;
            color: #333;
            font-weight: 500;
        }
        
        input[type="text"],
        input[type="email"],
        input[type="number"],
        textarea,
        select {
            width: 100%;
            padding: 10px;
            border: 1px solid #ddd;
            border-radius: 5px;
            font-size: 14px;
            font-family: inherit;
            transition: border-color 0.3s;
        }
        
        input[type="text"]:focus,
        input[type="email"]:focus,
        input[type="number"]:focus,
        textarea:focus,
        select:focus {
            outline: none;
            border-color: #667eea;
            box-shadow: 0 0 5px rgba(102, 126, 234, 0.3);
        }
        
        textarea {
            resize: vertical;
            min-height: 120px;
        }
        
        .checkbox-group {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 15px;
        }
        
        input[type="checkbox"] {
            width: 20px;
            height: 20px;
            cursor: pointer;
        }
        
        .checkbox-group label {
            margin-bottom: 0;
        }
        
        .button-group {
            display: flex;
            gap: 10px;
            margin-top: 20px;
        }
        
        button {
            padding: 12px 20px;
            border: none;
            border-radius: 5px;
            font-size: 16px;
            cursor: pointer;
            transition: all 0.3s;
            font-weight: 500;
        }
        
        .btn-primary {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
        }
        
        .btn-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
        }
        
        .btn-secondary {
            background: #6c757d;
            color: white;
        }
        
        .btn-secondary:hover {
            background: #5a6268;
        }
        
        .student-list {
            max-height: 300px;
            overflow-y: auto;
            border: 1px solid #ddd;
            border-radius: 5px;
            padding: 10px;
            background: #f9f9f9;
        }
        
        .student-item {
            padding: 10px;
            border-bottom: 1px solid #eee;
            display: flex;
            align-items: center;
            gap: 10px;
        }
        
        .student-item:last-child {
            border-bottom: none;
        }
        
        .student-item input[type="checkbox"] {
            width: 18px;
            height: 18px;
        }
        
        .student-info {
            flex: 1;
            font-size: 14px;
        }
        
        .student-info strong {
            display: block;
            color: #333;
        }
        
        .student-info small {
            color: #666;
        }
        
        .result-box {
            background: #f5f5f5;
            border: 1px solid #ddd;
            border-radius: 5px;
            padding: 15px;
            margin-top: 20px;
        }
        
        .result-box h3 {
            margin-bottom: 10px;
            color: #333;
        }
        
        .result-item {
            padding: 10px;
            background: white;
            border-left: 3px solid #667eea;
            margin-bottom: 10px;
            border-radius: 3px;
        }
        
        .result-item.success {
            border-left-color: #28a745;
        }
        
        .result-item.error {
            border-left-color: #dc3545;
        }
        
        .config-status {
            background: #e3f2fd;
            border-left: 4px solid #2196F3;
            padding: 15px;
            border-radius: 5px;
            margin-bottom: 20px;
        }
        
        .config-status.error {
            background: #ffebee;
            border-left-color: #f44336;
        }
        
        .config-status.success {
            background: #e8f5e9;
            border-left-color: #4caf50;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <h1>📱 এসএমএস সেন্ডার</h1>
            <p>স্টুডেন্ট, গার্ডিয়ান এবং অন্যদের কাছে এসএমএস পাঠান</p>
        </div>
        
        <?php if ($message): ?>
            <div class="alert <?php echo $messageType; ?>">
                <?php echo htmlspecialchars($message); ?>
            </div>
        <?php endif; ?>
        
        <!-- API সেটিংস স্ট্যাটাস -->
        <div class="config-status <?php echo empty($apiKey) ? 'error' : 'success'; ?>">
            <?php if (empty($apiKey)): ?>
                ⚠️ <strong>API Key কনফিগার করা হয়নি!</strong> পাঠানো শুরু করার আগে
                <a href="../admin/sms-settings.php" style="color: #f44336; text-decoration: underline;">এখানে ক্লিক করে সেটিংস সম্পন্ন করুন</a>
            <?php else: ?>
                ✓ API Key সেটাপ সম্পন্ন। আপনি এসএমএস পাঠাতে প্রস্তুত।
            <?php endif; ?>
        </div>
        
        <!-- ট্যাব নেভিগেশন -->
        <div class="tabs">
            <button class="tab active" onclick="switchTab('send-to-students')">স্টুডেন্টদের কাছে পাঠান</button>
            <button class="tab" onclick="switchTab('send-to-class')">পুরো ক্লাসে পাঠান</button>
            <button class="tab" onclick="switchTab('send-custom')">কাস্টম নম্বরে পাঠান</button>
            <button class="tab" onclick="switchTab('logs')">এসএমএস লগ</button>
        </div>
        
        <!-- ট্যাব 1: স্টুডেন্টদের কাছে পাঠান -->
        <div id="send-to-students" class="tab-content active">
            <form method="POST">
                <input type="hidden" name="action" value="send_to_students">
                
                <div class="form-group">
                    <label>স্টুডেন্ট নির্বাচন করুন (একাধিক নির্বাচন করতে পারেন)</label>
                    <div class="student-list">
                        <?php foreach ($students as $student): ?>
                            <div class="student-item">
                                <input type="checkbox" name="student_ids[]" value="<?php echo $student['id']; ?>">
                                <div class="student-info">
                                    <strong><?php echo htmlspecialchars($student['first_name'] . ' ' . $student['last_name']); ?></strong>
                                    <small>ID: <?php echo htmlspecialchars($student['student_id']); ?> | ক্লাস: <?php echo htmlspecialchars($student['class_name'] ?? 'N/A'); ?></small>
                                    <small>📱 <?php echo htmlspecialchars($student['phone'] ?? 'নো নম্বর'); ?></small>
                                </div>
                            </div>
                        <?php endforeach; ?>
                    </div>
                </div>
                
                <div class="form-group">
                    <label>বার্তা লিখুন</label>
                    <textarea name="message" placeholder="আপনার বার্তা এখানে লিখুন..." required></textarea>
                    <small style="color: #666; margin-top: 5px; display: block;">বার্তা বাংলায় লিখুন। সাধারণত ১৬০ ক্যারেক্টার = ১টি SMS</small>
                </div>
                
                <div class="checkbox-group">
                    <input type="checkbox" id="send_to_guardian" name="send_to_guardian" checked>
                    <label for="send_to_guardian">গার্ডিয়ানকেও বার্তা পাঠান (যদি নম্বর পাওয়া যায়)</label>
                </div>
                
                <div class="button-group">
                    <button type="submit" class="btn-primary" <?php echo empty($apiKey) ? 'disabled' : ''; ?>>
                        📤 এসএমএস পাঠান
                    </button>
                    <button type="reset" class="btn-secondary">পরিষ্কার করুন</button>
                </div>
            </form>
        </div>
        
        <!-- ট্যাব 2: পুরো ক্লাসে পাঠান -->
        <div id="send-to-class" class="tab-content">
            <form method="POST">
                <input type="hidden" name="action" value="send_to_class">
                
                <div class="form-group">
                    <label>ক্লাস নির্বাচন করুন</label>
                    <select name="class_id" required>
                        <option value="">-- ক্লাস নির্বাচন করুন --</option>
                        <?php foreach ($classes as $class): ?>
                            <option value="<?php echo $class['id']; ?>">
                                <?php echo htmlspecialchars($class['name']); ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
                
                <div class="form-group">
                    <label>বার্তা লিখুন</label>
                    <textarea name="message" placeholder="আপনার বার্তা এখানে লিখুন..." required></textarea>
                </div>
                
                <div class="checkbox-group">
                    <input type="checkbox" id="send_to_guardian2" name="send_to_guardian" checked>
                    <label for="send_to_guardian2">গার্ডিয়ানকেও বার্তা পাঠান</label>
                </div>
                
                <div class="button-group">
                    <button type="submit" class="btn-primary" <?php echo empty($apiKey) ? 'disabled' : ''; ?>>
                        📤 এসএমএস পাঠান
                    </button>
                    <button type="reset" class="btn-secondary">পরিষ্কার করুন</button>
                </div>
            </form>
        </div>
        
        <!-- ট্যাব 3: কাস্টম নম্বরে পাঠান -->
        <div id="send-custom" class="tab-content">
            <form method="POST">
                <input type="hidden" name="action" value="send_custom">
                
                <div class="form-group">
                    <label>ফোন নম্বর (কমা বা নতুন লাইন দ্বারা আলাদা)</label>
                    <textarea name="phone_numbers" placeholder="01711111111&#10;01822222222&#10;01933333333" required></textarea>
                    <small style="color: #666; margin-top: 5px; display: block;">ফরম্যাট: 01XXXXXXXXX অথবা 8801XXXXXXXXX</small>
                </div>
                
                <div class="form-group">
                    <label>বার্তা লিখুন</label>
                    <textarea name="message" placeholder="আপনার বার্তা এখানে লিখুন..." required></textarea>
                </div>
                
                <div class="button-group">
                    <button type="submit" class="btn-primary" <?php echo empty($apiKey) ? 'disabled' : ''; ?>>
                        📤 এসএমএস পাঠান
                    </button>
                    <button type="reset" class="btn-secondary">পরিষ্কার করুন</button>
                </div>
            </form>
        </div>
        
        <!-- ট্যাব 4: এসএমএস লগ -->
        <div id="logs" class="tab-content">
            <?php
            // সর্বশেষ SMS লগ দেখান
            try {
                $logsStmt = $pdo->prepare("
                    SELECT * FROM sms_logs
                    ORDER BY created_at DESC
                    LIMIT 50
                ");
                $logsStmt->execute();
                $logs = $logsStmt->fetchAll();
            } catch (Exception $e) {
                $logs = [];
            }
            ?>
            
            <div style="overflow-x: auto;">
                <table style="width: 100%; border-collapse: collapse;">
                    <thead>
                        <tr style="background: #f5f5f5; border-bottom: 2px solid #ddd;">
                            <th style="padding: 12px; text-align: left; color: #333;">ফোন নম্বর</th>
                            <th style="padding: 12px; text-align: left; color: #333;">বার্তা</th>
                            <th style="padding: 12px; text-align: left; color: #333;">স্ট্যাটাস</th>
                            <th style="padding: 12px; text-align: left; color: #333;">তারিখ</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($logs as $log): ?>
                            <tr style="border-bottom: 1px solid #eee;">
                                <td style="padding: 12px;">
                                    <code style="background: #f0f0f0; padding: 5px 8px; border-radius: 3px;">
                                        <?php echo htmlspecialchars($log['phone_number']); ?>
                                    </code>
                                </td>
                                <td style="padding: 12px; max-width: 300px; overflow: hidden; text-overflow: ellipsis;">
                                    <?php echo htmlspecialchars(substr($log['message'], 0, 50)); ?>...
                                </td>
                                <td style="padding: 12px;">
                                    <span style="padding: 5px 10px; border-radius: 20px; font-size: 12px; font-weight: bold; 
                                        <?php echo $log['status'] === 'sent' ? 'background: #d4edda; color: #155724;' : 'background: #f8d7da; color: #721c24;'; ?>">
                                        <?php echo ucfirst($log['status']); ?>
                                    </span>
                                </td>
                                <td style="padding: 12px; color: #666; font-size: 13px;">
                                    <?php echo date('d M Y H:i', strtotime($log['created_at'])); ?>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
                
                <?php if (empty($logs)): ?>
                    <p style="text-align: center; color: #666; padding: 20px;">কোনো লগ পাওয়া যায়নি</p>
                <?php endif; ?>
            </div>
        </div>
        
        <!-- পাঠানোর ফলাফল দেখান -->
        <?php if ($result && isset($result['results'])): ?>
            <div class="result-box">
                <h3>📊 পাঠানোর বিবরণ</h3>
                <div style="margin-bottom: 15px; padding: 10px; background: #f9f9f9; border-radius: 5px;">
                    <strong>সর্বমোট:</strong> <?php echo count($result['results']); ?> টি SMS
                    <br>
                    <strong>সফল:</strong> <span style="color: #28a745;">
                        <?php echo count(array_filter($result['results'], function($r) { return $r['success']; })); ?>
                    </span>
                    <br>
                    <strong>ব্যর্থ:</strong> <span style="color: #dc3545;">
                        <?php echo count(array_filter($result['results'], function($r) { return !$r['success']; })); ?>
                    </span>
                </div>
                
                <div style="max-height: 300px; overflow-y: auto;">
                    <?php foreach ($result['results'] as $number => $res): ?>
                        <div class="result-item <?php echo $res['success'] ? 'success' : 'error'; ?>">
                            <strong><?php echo htmlspecialchars($number); ?></strong> - 
                            <span style="color: <?php echo $res['success'] ? '#28a745' : '#dc3545'; ?>;">
                                <?php echo $res['success'] ? '✓ সফল' : '✗ ব্যর্থ'; ?>
                            </span>
                            <?php if (isset($res['message'])): ?>
                                <br><small><?php echo htmlspecialchars($res['message']); ?></small>
                            <?php endif; ?>
                        </div>
                    <?php endforeach; ?>
                </div>
            </div>
        <?php endif; ?>
    </div>
    
    <script>
        function switchTab(tabId) {
            // সব ট্যাব লুকান
            document.querySelectorAll('.tab-content').forEach(el => {
                el.classList.remove('active');
            });
            
            // সব ট্যাব বাটন নিষ্ক্রিয় করুন
            document.querySelectorAll('.tab').forEach(el => {
                el.classList.remove('active');
            });
            
            // নির্বাচিত ট্যাব দেখান
            document.getElementById(tabId).classList.add('active');
            event.target.classList.add('active');
        }
        
        // সব স্টুডেন্ট নির্বাচন ফাংশন
        function selectAllStudents() {
            document.querySelectorAll('.student-item input[type="checkbox"]').forEach(el => {
                el.checked = true;
            });
        }
        
        // সব স্টুডেন্ট নির্বাচন বাতিল ফাংশন
        function deselectAllStudents() {
            document.querySelectorAll('.student-item input[type="checkbox"]').forEach(el => {
                el.checked = false;
            });
        }
    </script>
</body>
</html>
