<?php
require_once '../../config.php';
requireLogin('sub_admin');

$sa = $conn->query("SELECT * FROM sub_admins WHERE id=" . (int)$_SESSION['user_id'])->fetch_assoc();
$success = $error = '';

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

    // Create user
    if ($action === 'create_user') {
        $full_name = sanitize($_POST['full_name']);
        $username = sanitize($_POST['username']);
        $password = $_POST['password'];
        $email = sanitize($_POST['email'] ?? '');
        $mobile = sanitize($_POST['mobile'] ?? '');
        $sa_id = (int)$_SESSION['user_id'];

        if (empty($full_name) || empty($username) || empty($password)) {
            $error = "Name, username and password are required.";
        } else {
            $hashed = password_hash($password, PASSWORD_DEFAULT);
            $stmt = $conn->prepare("INSERT INTO users (full_name, username, password, email, mobile, sub_admin_id) VALUES (?,?,?,?,?,?)");
            $stmt->bind_param('sssssi', $full_name, $username, $hashed, $email, $mobile, $sa_id);
            if ($stmt->execute()) {
                $success = "User '{$full_name}' created successfully!";
            } else {
                $error = "Username already exists. Choose another.";
            }
        }
    }

    // Load user wallet
    if ($action === 'load_user_wallet') {
        $user_id = (int)$_POST['user_id'];
        $amount = floatval($_POST['amount']);
        $desc = sanitize($_POST['description'] ?? 'Wallet loaded by Sub Admin');
        $sa_id = (int)$_SESSION['user_id'];

        $user = $conn->query("SELECT * FROM users WHERE id=$user_id AND sub_admin_id=$sa_id")->fetch_assoc();
        if (!$user) { $error = "User not found."; }
        elseif ($amount <= 0) { $error = "Invalid amount."; }
        elseif ($amount > $sa['wallet_balance']) { $error = "Insufficient wallet balance. Your balance: " . formatINR($sa['wallet_balance']); }
        else {
            $new_sa_bal = $sa['wallet_balance'] - $amount;
            $new_user_bal = $user['wallet_balance'] + $amount;
            $conn->query("UPDATE sub_admins SET wallet_balance=$new_sa_bal WHERE id=$sa_id");
            $conn->query("UPDATE users SET wallet_balance=$new_user_bal, total_received=total_received+$amount WHERE id=$user_id");
            $conn->query("INSERT INTO subadmin_wallet_transactions (sub_admin_id, transaction_type, amount, description, recipient_type, recipient_id, recipient_name, balance_after) VALUES ($sa_id, 'debit', $amount, '$desc', 'user', $user_id, '" . $conn->real_escape_string($user['full_name']) . "', $new_sa_bal)");
            $conn->query("INSERT INTO user_wallet_transactions (user_id, transaction_type, amount, description, balance_after) VALUES ($user_id, 'credit', $amount, 'Loaded by Sub Admin', $new_user_bal)");
            $sa['wallet_balance'] = $new_sa_bal;
            $success = formatINR($amount) . " loaded to " . htmlspecialchars($user['full_name']) . "'s wallet!";
        }
    }

    // Update user status
    if ($action === 'update_status') {
        $user_id = (int)$_POST['user_id'];
        $status = in_array($_POST['status'], ['active','inactive','hold']) ? $_POST['status'] : 'active';
        $sa_id = (int)$_SESSION['user_id'];
        $conn->query("UPDATE users SET status='$status' WHERE id=$user_id AND sub_admin_id=$sa_id");
        $success = "User status updated.";
    }

    // Edit user
    if ($action === 'edit_user') {
        $user_id = (int)$_POST['user_id'];
        $sa_id = (int)$_SESSION['user_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 users SET full_name='$full_name', email='$email', mobile='$mobile', password='$hashed' WHERE id=$user_id AND sub_admin_id=$sa_id");
        } else {
            $conn->query("UPDATE users SET full_name='$full_name', email='$email', mobile='$mobile' WHERE id=$user_id AND sub_admin_id=$sa_id");
        }
        $success = "User updated.";
    }

    // Delete user
    if ($action === 'delete_user') {
        $user_id = (int)$_POST['user_id'];
        $sa_id = (int)$_SESSION['user_id'];
        $conn->query("DELETE FROM users WHERE id=$user_id AND sub_admin_id=$sa_id");
        $success = "User deleted.";
    }
}

// Fetch users
$users = $conn->query("SELECT * FROM users WHERE sub_admin_id=" . (int)$_SESSION['user_id'] . " ORDER BY 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>Manage Users - Sub Admin | 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">
    <style>.btn-primary{background:linear-gradient(135deg,var(--subadmin-accent),#0369a1)}</style>
</head>
<body>
<div class="dashboard-wrapper">
    <?php include 'partials/sidebar.php'; ?>
    <div class="main-content">
        <div class="topbar">
            <div class="topbar-title"><h1>Manage Users</h1><p>Create and manage your users</p></div>
            <div class="topbar-actions">
                <div class="wallet-display">
                    <span>💰</span>
                    <div><div class="label">My Wallet</div><div class="amount"><?= formatINR($sa['wallet_balance']) ?></div></div>
                </div>
                <button class="btn btn-primary" onclick="openModal('createUserModal')">
                    <i class="fas fa-plus"></i> Add User
                </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(--subadmin-accent)"></i> My Users (<?= count($users) ?>)</h3>
                    <div class="search-box">
                        <span class="search-icon">🔍</span>
                        <input type="text" placeholder="Search users..." id="searchInput" onkeyup="filterTable()">
                    </div>
                </div>
                <div class="table-wrapper">
                    <table id="usersTable">
                        <thead>
                            <tr>
                                <th>#</th>
                                <th>User Details</th>
                                <th>Wallet Balance</th>
                                <th>Status</th>
                                <th>Joined</th>
                                <th>Actions</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php foreach ($users as $i => $u): ?>
                            <tr>
                                <td><?= $i+1 ?></td>
                                <td>
                                    <div style="font-weight:600"><?= htmlspecialchars($u['full_name']) ?></div>
                                    <div style="font-size:12px;color:var(--text-muted)">@<?= htmlspecialchars($u['username']) ?></div>
                                    <?php if ($u['mobile']): ?><div style="font-size:12px;color:var(--text-muted)">📱 <?= $u['mobile'] ?></div><?php endif; ?>
                                </td>
                                <td><span class="text-primary fw-700" style="font-size:16px"><?= formatINR($u['wallet_balance']) ?></span></td>
                                <td><span class="badge badge-<?= $u['status'] ?>"><?= ucfirst($u['status']) ?></span></td>
                                <td style="font-size:12px;color:var(--text-muted)"><?= date('d M Y', strtotime($u['created_at'])) ?></td>
                                <td>
                                    <div style="display:flex;gap:6px;flex-wrap:wrap;">
                                        <button class="btn btn-primary btn-xs" onclick="openLoadWallet(<?= $u['id'] ?>, '<?= htmlspecialchars($u['full_name']) ?>', <?= $u['wallet_balance'] ?>)">
                                            💰 Load
                                        </button>
                                        <button class="btn btn-info btn-xs" onclick="openEditModal(<?= htmlspecialchars(json_encode($u)) ?>)">✏️ Edit</button>
                                        <?php if ($u['status'] === 'active'): ?>
                                        <form method="POST" style="display:inline">
                                            <input type="hidden" name="action" value="update_status">
                                            <input type="hidden" name="user_id" value="<?= $u['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="user_id" value="<?= $u['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 user?')">
                                            <input type="hidden" name="action" value="delete_user">
                                            <input type="hidden" name="user_id" value="<?= $u['id'] ?>">
                                            <button type="submit" class="btn btn-danger btn-xs">🗑</button>
                                        </form>
                                    </div>
                                </td>
                            </tr>
                            <?php endforeach; ?>
                            <?php if (empty($users)): ?>
                            <tr><td colspan="6"><div class="empty-state"><div class="empty-icon">🙋</div><p>No users yet. Create your first user!</p></div></td></tr>
                            <?php endif; ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Create User Modal -->
<div class="modal-overlay" id="createUserModal">
    <div class="modal-box" style="max-width:520px">
        <div class="modal-header">
            <h3>🙋 Create New User</h3>
            <button class="modal-close" onclick="closeModal('createUserModal')">✕</button>
        </div>
        <form method="POST">
            <input type="hidden" name="action" value="create_user">
            <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="User's full 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>
                    User will login at <strong><?= SITE_URL ?>/admin/user_login.php</strong> with their username and password.
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" onclick="closeModal('createUserModal')">Cancel</button>
                <button type="submit" class="btn btn-primary">Create User</button>
            </div>
        </form>
    </div>
</div>

<!-- Load Wallet Modal -->
<div class="modal-overlay" id="loadWalletModal">
    <div class="modal-box">
        <div class="modal-header">
            <h3>💰 Load User Wallet</h3>
            <button class="modal-close" onclick="closeModal('loadWalletModal')">✕</button>
        </div>
        <form method="POST">
            <input type="hidden" name="action" value="load_user_wallet">
            <input type="hidden" name="user_id" id="load_user_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 User</div>
                    <div style="font-size:20px;font-weight:700;color:var(--text)" id="load_user_name">-</div>
                    <div style="font-size:13px;color:var(--text-muted);margin-top:8px;">User Balance: <span id="load_user_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($sa['wallet_balance']) ?></span></div>
                </div>
                <div class="form-group">
                    <label>Amount (₹) — Max: <?= formatINR($sa['wallet_balance']) ?></label>
                    <input type="number" name="amount" class="form-control" placeholder="Enter amount" min="1" max="<?= $sa['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 User Modal -->
<div class="modal-overlay" id="editUserModal">
    <div class="modal-box">
        <div class="modal-header">
            <h3>✏️ Edit User</h3>
            <button class="modal-close" onclick="closeModal('editUserModal')">✕</button>
        </div>
        <form method="POST">
            <input type="hidden" name="action" value="edit_user">
            <input type="hidden" name="user_id" id="edit_user_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">
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" onclick="closeModal('editUserModal')">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_user_id').value = id;
    document.getElementById('load_user_name').textContent = name;
    document.getElementById('load_user_bal').textContent = '₹' + parseFloat(bal).toLocaleString('en-IN', {minimumFractionDigits:2});
    openModal('loadWalletModal');
}
function openEditModal(u) {
    document.getElementById('edit_user_id').value = u.id;
    document.getElementById('edit_full_name').value = u.full_name;
    document.getElementById('edit_email').value = u.email || '';
    document.getElementById('edit_mobile').value = u.mobile || '';
    openModal('editUserModal');
}
function filterTable() {
    const val = document.getElementById('searchInput').value.toLowerCase();
    document.querySelectorAll('#usersTable tbody tr').forEach(tr => {
        tr.style.display = tr.textContent.toLowerCase().includes(val) ? '' : 'none';
    });
}
</script>
</body>
</html>
