<?php
require_once '../config.php';
requireLogin('master_admin');
$admin = $conn->query("SELECT * FROM master_admin WHERE id = " . (int)$_SESSION['user_id'])->fetch_assoc();

$success = $error = '';

// Handle actions
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';

    // Create Sub Admin
    if ($action === 'create_subadmin') {
        $full_name = sanitize($_POST['full_name']);
        $username = sanitize($_POST['username']);
        $password = $_POST['password'];
        $email = sanitize($_POST['email'] ?? '');
        $mobile = sanitize($_POST['mobile'] ?? '');
        $unique_code = generateUniqueCode('SA');

        if (empty($full_name) || empty($username) || empty($password)) {
            $error = "Full name, username and password are required.";
        } else {
            $hashed = password_hash($password, PASSWORD_DEFAULT);
            $login_link = SITE_URL . '/admin/subadmin_login.php?code=' . $unique_code;
            $admin_id = (int)$_SESSION['user_id'];
            $stmt = $conn->prepare("INSERT INTO sub_admins (unique_code, full_name, username, password, email, mobile, login_link, created_by) VALUES (?,?,?,?,?,?,?,?)");
            $stmt->bind_param('sssssssi', $unique_code, $full_name, $username, $hashed, $email, $mobile, $login_link, $admin_id);
            if ($stmt->execute()) {
                $success = "Sub Admin '{$full_name}' created successfully! Code: {$unique_code}";
            } else {
                $error = "Username already exists. Please choose a different username.";
            }
        }
    }

    // Load wallet to sub admin
    if ($action === 'load_subadmin_wallet') {
        $sa_id = (int)$_POST['sa_id'];
        $amount = floatval($_POST['amount']);
        $desc = sanitize($_POST['description'] ?? 'Wallet top-up from Admin');
        
        if ($amount <= 0) { $error = "Invalid amount."; }
        elseif ($amount > $admin['wallet_balance']) { $error = "Insufficient wallet balance. Your balance: " . formatINR($admin['wallet_balance']); }
        else {
            $sa = $conn->query("SELECT * FROM sub_admins WHERE id=$sa_id")->fetch_assoc();
            if ($sa) {
                $new_admin_bal = $admin['wallet_balance'] - $amount;
                $new_sa_bal = $sa['wallet_balance'] + $amount;
                $conn->query("UPDATE master_admin SET wallet_balance=$new_admin_bal WHERE id=" . (int)$_SESSION['user_id']);
                $conn->query("UPDATE sub_admins SET wallet_balance=$new_sa_bal, total_received=total_received+$amount WHERE id=$sa_id");
                // Admin transaction log
                $sa_name = $conn->real_escape_string($sa['full_name']);
                $conn->query("INSERT INTO admin_wallet_transactions (admin_id, transaction_type, amount, description, recipient_type, recipient_id, recipient_name, balance_after) VALUES (" . (int)$_SESSION['user_id'] . ", 'debit', $amount, '$desc', 'sub_admin', $sa_id, '$sa_name', $new_admin_bal)");
                // Sub admin transaction log
                $conn->query("INSERT INTO subadmin_wallet_transactions (sub_admin_id, transaction_type, amount, description, recipient_type, balance_after) VALUES ($sa_id, 'credit', $amount, 'Loaded by Master Admin', 'admin', $new_sa_bal)");
                $admin['wallet_balance'] = $new_admin_bal;
                $success = formatINR($amount) . " loaded to " . htmlspecialchars($sa['full_name']) . "'s wallet!";
            }
        }
    }

    // Update sub admin status
    if ($action === 'update_status') {
        $sa_id = (int)$_POST['sa_id'];
        $status = in_array($_POST['status'], ['active','inactive','hold']) ? $_POST['status'] : 'active';
        $conn->query("UPDATE sub_admins SET status='$status' WHERE id=$sa_id");
        $success = "Status updated successfully.";
    }

    // Edit sub admin
    if ($action === 'edit_subadmin') {
        $sa_id = (int)$_POST['sa_id'];
        $full_name = sanitize($_POST['full_name']);
        $email = sanitize($_POST['email'] ?? '');
        $mobile = sanitize($_POST['mobile'] ?? '');
        $new_pass = $_POST['new_password'] ?? '';
        
        if ($new_pass) {
            $hashed = password_hash($new_pass, PASSWORD_DEFAULT);
            $conn->query("UPDATE sub_admins SET full_name='$full_name', email='$email', mobile='$mobile', password='$hashed' WHERE id=$sa_id");
        } else {
            $conn->query("UPDATE sub_admins SET full_name='$full_name', email='$email', mobile='$mobile' WHERE id=$sa_id");
        }
        $success = "Sub Admin updated successfully.";
    }

    // Delete sub admin
    if ($action === 'delete_subadmin') {
        $sa_id = (int)$_POST['sa_id'];
        $user_count = $conn->query("SELECT COUNT(*) as c FROM users WHERE sub_admin_id=$sa_id")->fetch_assoc()['c'];
        if ($user_count > 0) {
            $error = "Cannot delete: This sub admin has $user_count users. Please reassign them first.";
        } else {
            $conn->query("DELETE FROM sub_admins WHERE id=$sa_id");
            $success = "Sub Admin deleted.";
        }
    }
}

// Fetch sub admins with user count
$subadmins = $conn->query("SELECT sa.*, COUNT(u.id) as user_count FROM sub_admins sa LEFT JOIN users u ON u.sub_admin_id=sa.id GROUP BY sa.id ORDER BY sa.created_at DESC")->fetch_all(MYSQLI_ASSOC);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sub Admins - Cricket Exchange</title>
    <link rel="stylesheet" href="../assets/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
</head>
<body>
<div class="dashboard-wrapper">
    <?php include 'partials/sidebar.php'; ?>
    <div class="main-content">
        <div class="topbar">
            <div class="topbar-title">
                <h1>Sub Admin Management</h1>
                <p>Create and manage sub admin accounts</p>
            </div>
            <div class="topbar-actions">
                <div class="wallet-display">
                    <span class="wallet-icon">💰</span>
                    <div>
                        <div class="label">My Wallet</div>
                        <div class="amount"><?= formatINR($admin['wallet_balance']) ?></div>
                    </div>
                </div>
                <button class="btn btn-primary" onclick="openModal('createSAModal')">
                    <i class="fas fa-plus"></i> Add Sub Admin
                </button>
            </div>
        </div>

        <div class="page-content">
            <?php if ($success): ?><div class="alert alert-success"><i class="fas fa-check-circle"></i> <?= $success ?></div><?php endif; ?>
            <?php if ($error): ?><div class="alert alert-error"><i class="fas fa-times-circle"></i> <?= $error ?></div><?php endif; ?>

            <div class="card">
                <div class="card-header">
                    <h3><i class="fas fa-users" style="color:var(--admin-accent)"></i> All Sub Admins (<?= count($subadmins) ?>)</h3>
                    <div class="search-box">
                        <span class="search-icon">🔍</span>
                        <input type="text" placeholder="Search sub admins..." id="searchInput" onkeyup="filterTable()">
                    </div>
                </div>
                <div class="table-wrapper">
                    <table id="saTable">
                        <thead>
                            <tr>
                                <th>#</th>
                                <th>Sub Admin</th>
                                <th>Unique Code</th>
                                <th>Login Link</th>
                                <th>Wallet</th>
                                <th>Users</th>
                                <th>Status</th>
                                <th>Created</th>
                                <th>Actions</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php foreach ($subadmins as $i => $sa): ?>
                            <tr>
                                <td><?= $i+1 ?></td>
                                <td>
                                    <div style="font-weight:600;"><?= htmlspecialchars($sa['full_name']) ?></div>
                                    <div style="font-size:12px;color:var(--text-muted)">@<?= htmlspecialchars($sa['username']) ?></div>
                                </td>
                                <td><span class="code-badge"><?= $sa['unique_code'] ?></span></td>
                                <td>
                                    <button class="copy-link-btn" onclick="copyToClipboard('<?= htmlspecialchars($sa['login_link']) ?>', this)">
                                        📋 Copy Link
                                    </button>
                                </td>
                                <td><span class="text-primary fw-700"><?= formatINR($sa['wallet_balance']) ?></span></td>
                                <td><span class="badge badge-active"><?= $sa['user_count'] ?> Users</span></td>
                                <td>
                                    <span class="badge badge-<?= $sa['status'] ?>"><?= ucfirst($sa['status']) ?></span>
                                </td>
                                <td style="font-size:12px;color:var(--text-muted)"><?= date('d M Y', strtotime($sa['created_at'])) ?></td>
                                <td>
                                    <div style="display:flex;gap:6px;flex-wrap:wrap;">
                                        <button class="btn btn-primary btn-xs" onclick="openLoadWallet(<?= $sa['id'] ?>, '<?= htmlspecialchars($sa['full_name']) ?>', <?= $sa['wallet_balance'] ?>)">
                                            💰 Load
                                        </button>
                                        <button class="btn btn-info btn-xs" onclick="openEditModal(<?= htmlspecialchars(json_encode($sa)) ?>)">
                                            ✏️ Edit
                                        </button>
                                        <?php if ($sa['status'] === 'active'): ?>
                                        <form method="POST" style="display:inline">
                                            <input type="hidden" name="action" value="update_status">
                                            <input type="hidden" name="sa_id" value="<?= $sa['id'] ?>">
                                            <input type="hidden" name="status" value="hold">
                                            <button type="submit" class="btn btn-warning btn-xs">⏸ Hold</button>
                                        </form>
                                        <?php else: ?>
                                        <form method="POST" style="display:inline">
                                            <input type="hidden" name="action" value="update_status">
                                            <input type="hidden" name="sa_id" value="<?= $sa['id'] ?>">
                                            <input type="hidden" name="status" value="active">
                                            <button type="submit" class="btn btn-success btn-xs">▶ Activate</button>
                                        </form>
                                        <?php endif; ?>
                                        <form method="POST" style="display:inline" onsubmit="return confirm('Delete this sub admin? This cannot be undone.')">
                                            <input type="hidden" name="action" value="delete_subadmin">
                                            <input type="hidden" name="sa_id" value="<?= $sa['id'] ?>">
                                            <button type="submit" class="btn btn-danger btn-xs">🗑</button>
                                        </form>
                                    </div>
                                </td>
                            </tr>
                            <?php endforeach; ?>
                            <?php if (empty($subadmins)): ?>
                            <tr><td colspan="9"><div class="empty-state"><div class="empty-icon">👥</div><p>No sub admins yet. Create your first one!</p></div></td></tr>
                            <?php endif; ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Create Sub Admin Modal -->
<div class="modal-overlay" id="createSAModal">
    <div class="modal-box" style="max-width:560px">
        <div class="modal-header">
            <h3>👤 Create New Sub Admin</h3>
            <button class="modal-close" onclick="closeModal('createSAModal')">✕</button>
        </div>
        <form method="POST">
            <input type="hidden" name="action" value="create_subadmin">
            <div class="modal-body">
                <div class="grid-2">
                    <div class="form-group">
                        <label>Full Name *</label>
                        <input type="text" name="full_name" class="form-control" placeholder="Sub Admin Name" required>
                    </div>
                    <div class="form-group">
                        <label>Username *</label>
                        <input type="text" name="username" class="form-control" placeholder="login_username" required>
                    </div>
                </div>
                <div class="grid-2">
                    <div class="form-group">
                        <label>Email</label>
                        <input type="email" name="email" class="form-control" placeholder="email@example.com">
                    </div>
                    <div class="form-group">
                        <label>Mobile</label>
                        <input type="tel" name="mobile" class="form-control" placeholder="9876543210">
                    </div>
                </div>
                <div class="form-group">
                    <label>Password *</label>
                    <input type="password" name="password" class="form-control" placeholder="Set login password" required>
                </div>
                <div class="alert alert-info">
                    <i class="fas fa-info-circle"></i>
                    A unique code will be auto-generated. The sub admin will use their username + password to login via their unique link.
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" onclick="closeModal('createSAModal')">Cancel</button>
                <button type="submit" class="btn btn-primary"><i class="fas fa-plus"></i> Create Sub Admin</button>
            </div>
        </form>
    </div>
</div>

<!-- Load Wallet Modal -->
<div class="modal-overlay" id="loadWalletModal">
    <div class="modal-box">
        <div class="modal-header">
            <h3>💰 Load Sub Admin Wallet</h3>
            <button class="modal-close" onclick="closeModal('loadWalletModal')">✕</button>
        </div>
        <form method="POST">
            <input type="hidden" name="action" value="load_subadmin_wallet">
            <input type="hidden" name="sa_id" id="load_sa_id">
            <div class="modal-body">
                <div class="wallet-card" style="margin-bottom:20px;">
                    <div style="font-size:13px;color:var(--text-muted);margin-bottom:4px;">Loading to</div>
                    <div style="font-size:20px;font-weight:700;color:var(--text);" id="load_sa_name">-</div>
                    <div style="font-size:13px;color:var(--text-muted);margin-top:8px;">Current Balance: <span id="load_sa_bal" class="text-primary fw-700">-</span></div>
                    <div style="font-size:13px;color:var(--text-muted);margin-top:4px;">Your Wallet: <span class="text-primary fw-700"><?= formatINR($admin['wallet_balance']) ?></span></div>
                </div>
                <div class="form-group">
                    <label>Amount to Load (₹)</label>
                    <input type="number" name="amount" class="form-control" placeholder="Enter amount" min="1" max="<?= $admin['wallet_balance'] ?>" required step="0.01">
                </div>
                <div class="form-group">
                    <label>Description</label>
                    <input type="text" name="description" class="form-control" placeholder="e.g. Weekly allocation">
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" onclick="closeModal('loadWalletModal')">Cancel</button>
                <button type="submit" class="btn btn-primary">💰 Load Wallet</button>
            </div>
        </form>
    </div>
</div>

<!-- Edit Sub Admin Modal -->
<div class="modal-overlay" id="editSAModal">
    <div class="modal-box">
        <div class="modal-header">
            <h3>✏️ Edit Sub Admin</h3>
            <button class="modal-close" onclick="closeModal('editSAModal')">✕</button>
        </div>
        <form method="POST">
            <input type="hidden" name="action" value="edit_subadmin">
            <input type="hidden" name="sa_id" id="edit_sa_id">
            <div class="modal-body">
                <div class="form-group">
                    <label>Full Name</label>
                    <input type="text" name="full_name" id="edit_full_name" class="form-control" required>
                </div>
                <div class="grid-2">
                    <div class="form-group">
                        <label>Email</label>
                        <input type="email" name="email" id="edit_email" class="form-control">
                    </div>
                    <div class="form-group">
                        <label>Mobile</label>
                        <input type="tel" name="mobile" id="edit_mobile" class="form-control">
                    </div>
                </div>
                <div class="form-group">
                    <label>New Password (leave blank to keep current)</label>
                    <input type="password" name="new_password" class="form-control" placeholder="Enter new password to change">
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" onclick="closeModal('editSAModal')">Cancel</button>
                <button type="submit" class="btn btn-primary">Save Changes</button>
            </div>
        </form>
    </div>
</div>

<?php include 'partials/scripts.php'; ?>
<script>
function openLoadWallet(id, name, bal) {
    document.getElementById('load_sa_id').value = id;
    document.getElementById('load_sa_name').textContent = name;
    document.getElementById('load_sa_bal').textContent = '₹' + parseFloat(bal).toLocaleString('en-IN', {minimumFractionDigits:2});
    openModal('loadWalletModal');
}

function openEditModal(sa) {
    document.getElementById('edit_sa_id').value = sa.id;
    document.getElementById('edit_full_name').value = sa.full_name;
    document.getElementById('edit_email').value = sa.email || '';
    document.getElementById('edit_mobile').value = sa.mobile || '';
    openModal('editSAModal');
}

function filterTable() {
    const val = document.getElementById('searchInput').value.toLowerCase();
    document.querySelectorAll('#saTable tbody tr').forEach(tr => {
        tr.style.display = tr.textContent.toLowerCase().includes(val) ? '' : 'none';
    });
}
</script>
</body>
</html>
