<?php
// Database connection
include('db/config.php');

// Handle search/filter
$search = '';
$status_filter = '';
$date_from = '';
$date_to = '';
$payment_method = '';

if (isset($_GET['search'])) {
    $search = $conn->real_escape_string(trim($_GET['search']));
}

if (isset($_GET['status']) && in_array($_GET['status'], ['SUCCESS', 'PENDING', 'FAILED', 'REFUNDED'])) {
    $status_filter = $conn->real_escape_string($_GET['status']);
}

if (isset($_GET['date_from']) && !empty($_GET['date_from'])) {
    $date_from = date('Y-m-d', strtotime($_GET['date_from']));
}

if (isset($_GET['date_to']) && !empty($_GET['date_to'])) {
    $date_to = date('Y-m-d', strtotime($_GET['date_to']));
}

if (isset($_GET['payment_method']) && in_array($_GET['payment_method'], ['UPI', 'CARD', 'NETBANKING', 'WALLET'])) {
    $payment_method = $conn->real_escape_string($_GET['payment_method']);
}

// Build the base query
$payments_query = "
    SELECT 
        p.*, 
        u.name as user_name, 
        u.mobile, 
        u.email,
        e.type_name as exam_name,
        pl.name as plan_name,
        pl.duration_days
    FROM payments p
    JOIN users u ON p.user_id = u.id
    JOIN ExaminationType e ON p.exam_id = e.type_id
    JOIN plans pl ON p.plan_id = pl.id
    WHERE 1=1
";

// Add search conditions
if (!empty($search)) {
    $payments_query .= " AND (
        p.merchant_order_id LIKE '%$search%' OR 
        p.transaction_id LIKE '%$search%' OR
        u.name LIKE '%$search%' OR
        u.mobile LIKE '%$search%' OR
        u.email LIKE '%$search%'
    )";
}

// Add filters
if (!empty($status_filter)) {
    $payments_query .= " AND p.status = '$status_filter'";
}
if (!empty($payment_method)) {
    $payments_query .= " AND p.payment_method = '$payment_method'";
}
if (!empty($date_from)) {
    $payments_query .= " AND DATE(p.created_at) >= '$date_from'";
}
if (!empty($date_to)) {
    $payments_query .= " AND DATE(p.created_at) <= '$date_to'";
}

$payments_query .= " ORDER BY p.created_at DESC";
$payments = $conn->query($payments_query);

// Get stats
$stats_query = "
    SELECT 
        SUM(CASE WHEN status = 'SUCCESS' THEN amount ELSE 0 END) as success_amount,
        SUM(CASE WHEN status = 'PENDING' THEN amount ELSE 0 END) as pending_amount,
        SUM(CASE WHEN status = 'FAILED' THEN amount ELSE 0 END) as failed_amount,
        SUM(CASE WHEN status = 'REFUNDED' THEN amount ELSE 0 END) as refunded_amount,
        COUNT(*) as total_count,
        COUNT(CASE WHEN status = 'SUCCESS' THEN 1 END) as success_count,
        COUNT(CASE WHEN status = 'PENDING' THEN 1 END) as pending_count,
        COUNT(CASE WHEN status = 'FAILED' THEN 1 END) as failed_count,
        COUNT(CASE WHEN status = 'REFUNDED' THEN 1 END) as refunded_count
    FROM payments
";
$stats = $conn->query($stats_query)->fetch_assoc();
?>

<!doctype html>
<html lang="en">

    <?php include('includes/head.php') ?>
    
    <style>
        .stat-card {
            transition: all 0.3s ease;
            border-left: 4px solid;
        }
        .stat-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 5px 15px rgba(0,0,0,0.1);
        }
        .stat-card.success { border-left-color: #28a745; }
        .stat-card.pending { border-left-color: #ffc107; }
        .stat-card.failed { border-left-color: #dc3545; }
        .stat-card.refunded { border-left-color: #6c757d; }
        .stat-card.total { border-left-color: #17a2b8; }
        
        .badge-status {
            font-size: 0.75rem;
            padding: 0.35em 0.65em;
        }
        
        @media (max-width: 767.98px) {
            .stat-card {
                margin-bottom: 15px;
            }
            .search-filter-card .btn {
                width: 100%;
                margin-top: 10px;
            }
        }
    </style>


<body data-sidebar="dark">
<!-- Begin page -->
<div id="layout-wrapper">
    <?php include('includes/topbar.php') ?>    

    <!-- Left Sidebar Start -->
    <div class="vertical-menu">
        <div data-simplebar class="h-100">
            <?php include('includes/sidebar.php') ?>
        </div>
    </div>
    <!-- Left Sidebar End -->
    <!-- Main Content -->
    <div class="main-content">
        <div class="page-content">
            <div class="container-fluid">
                <!-- Page Title -->
                <div class="row">
                    <div class="col-12">
                        <div class="page-title-box d-flex align-items-center justify-content-between">
                            <h4 class="mb-0">Payment Transactions</h4>
                            
                        </div>
                    </div>
                </div>
                
                
                
                <!-- Stats Cards -->
                <div class="row">
                    <div class="col-xl-3 col-md-6">
                        <div class="card stat-card success">
                            <div class="card-body">
                                <div class="d-flex">
                                    <div class="flex-grow-1">
                                        <h5 class="text-muted">Successful</h5>
                                        <h3 class="mb-2">₹<?= number_format($stats['success_amount']) ?></h3>
                                        <span class="badge bg-success"><?= $stats['success_count'] ?></span>
                                    </div>
                                    <div class="avatar-sm">
                                        <span class="avatar-title bg-success rounded-circle">
                                            <i class="bx bx-check-circle"></i>
                                        </span>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-xl-3 col-md-6">
                        <div class="card stat-card pending">
                            <div class="card-body">
                                <div class="d-flex">
                                    <div class="flex-grow-1">
                                        <h5 class="text-muted">Pending</h5>
                                        <h3 class="mb-2">₹<?= number_format($stats['pending_amount']) ?></h3>
                                        <span class="badge bg-warning"><?= $stats['pending_count'] ?></span>
                                    </div>
                                    <div class="avatar-sm">
                                        <span class="avatar-title bg-warning rounded-circle">
                                            <i class="bx bx-time-five"></i>
                                        </span>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-xl-3 col-md-6">
                        <div class="card stat-card failed">
                            <div class="card-body">
                                <div class="d-flex">
                                    <div class="flex-grow-1">
                                        <h5 class="text-muted">Failed</h5>
                                        <h3 class="mb-2">₹<?= number_format($stats['failed_amount']) ?></h3>
                                        <span class="badge bg-danger"><?= $stats['failed_count'] ?></span>
                                    </div>
                                    <div class="avatar-sm">
                                        <span class="avatar-title bg-danger rounded-circle">
                                            <i class="bx bx-x-circle"></i>
                                        </span>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    
                    <div class="col-xl-3 col-md-6">
                        <div class="card stat-card total">
                            <div class="card-body">
                                <div class="d-flex">
                                    <div class="flex-grow-1">
                                        <h5 class="text-muted">Total</h5>
                                        <h3 class="mb-2">₹<?= number_format($stats['success_amount'] + $stats['pending_amount'] + $stats['failed_amount']) ?></h3>
                                        <span class="badge bg-info"><?= $stats['total_count'] ?></span>
                                    </div>
                                    <div class="avatar-sm">
                                        <span class="avatar-title bg-info rounded-circle">
                                            <i class="bx bx-receipt"></i>
                                        </span>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                
                <!-- Search and Filter -->
                <div class="card">
                    <div class="card-body">
                        <form method="get">
                            <div class="row g-2">
                                <div class="col-md-3">
                                    <input type="text" class="form-control" name="search" 
                                        placeholder="Search..." value="<?= htmlspecialchars($search) ?>">
                                </div>
                                <div class="col-md-2">
                                    <select class="form-select" name="status">
                                        <option value="">All Statuses</option>
                                        <option value="SUCCESS" <?= $status_filter === 'SUCCESS' ? 'selected' : '' ?>>Success</option>
                                        <option value="PENDING" <?= $status_filter === 'PENDING' ? 'selected' : '' ?>>Pending</option>
                                        <option value="FAILED" <?= $status_filter === 'FAILED' ? 'selected' : '' ?>>Failed</option>
                                        <option value="REFUNDED" <?= $status_filter === 'REFUNDED' ? 'selected' : '' ?>>Refunded</option>
                                    </select>
                                </div>
                                <div class="col-md-2">
                                    <select class="form-select" name="payment_method">
                                        <option value="">All Methods</option>
                                        <option value="UPI" <?= $payment_method === 'UPI' ? 'selected' : '' ?>>UPI</option>
                                        <option value="CARD" <?= $payment_method === 'CARD' ? 'selected' : '' ?>>Card</option>
                                        <option value="NETBANKING" <?= $payment_method === 'NETBANKING' ? 'selected' : '' ?>>Netbanking</option>
                                        <option value="WALLET" <?= $payment_method === 'WALLET' ? 'selected' : '' ?>>Wallet</option>
                                    </select>
                                </div>
                                <div class="col-md-2">
                                    <input type="date" class="form-control" name="date_from" 
                                        value="<?= htmlspecialchars($date_from) ?>" placeholder="From Date">
                                </div>
                                <div class="col-md-2">
                                    <input type="date" class="form-control" name="date_to" 
                                        value="<?= htmlspecialchars($date_to) ?>" placeholder="To Date">
                                </div>
                                <div class="col-md-1">
                                    <button type="submit" class="btn btn-primary w-100">Filter</button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
                
                <!-- Transactions Table -->
                <div class="card">
                    <div class="card-body">
                        <div class="table-responsive">
                            <table id="payments-datatable" class="table table-hover table-bordered nowrap w-100">
                                <thead class="table-light">
                                    <tr>
                                        <th>Order ID</th>
                                        <th>User</th>
                                        <th>Amount</th>
                                        <th>Status</th>
                                        <th>Method</th>
                                        <th>Date</th>
                                        <th>Actions</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php while($payment = $payments->fetch_assoc()): ?>
                                    <tr>
                                        <td><?= htmlspecialchars($payment['merchant_order_id']) ?></td>
                                        <td>
                                            <div class="d-flex flex-column">
                                                <strong><?= htmlspecialchars($payment['user_name']) ?></strong>
                                                <small class="text-muted"><?= htmlspecialchars($payment['mobile']) ?></small>
                                            </div>
                                        </td>
                                        <td>₹<?= number_format($payment['amount']) ?></td>
                                        <td>
                                            <span class="badge badge-status bg-<?= 
                                                $payment['status'] === 'SUCCESS' ? 'success' : 
                                                ($payment['status'] === 'PENDING' ? 'warning' : 
                                                ($payment['status'] === 'REFUNDED' ? 'secondary' : 'danger'))
                                            ?>">
                                                <?= $payment['status'] ?>
                                            </span>
                                        </td>
                                        <td><?= $payment['payment_method'] ?? 'N/A' ?></td>
                                        <td><?= date('d M Y H:i', strtotime($payment['created_at'])) ?></td>
                                        <td>
                                            <div class="d-flex gap-1">
                                                <button class="btn btn-sm btn-outline-primary view-payment" 
                                                    data-id="<?= $payment['id'] ?>" title="View">
                                                    <i class="bx bx-show"></i>View
                                                </button>
                                                
                                            </div>
                                        </td>
                                    </tr>
                                    <?php endwhile; ?>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <?php include('includes/footer.php') ?>
    </div>
</div>

<!-- View Payment Modal -->
<div class="modal fade" id="viewPaymentModal" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Payment Details</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body" id="paymentDetailsContent">
                Loading payment details...
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

<?php include('includes/rightbar.php') ?>
<?php include('includes/scripts.php') ?>

<!-- DataTables Script -->
<script>
$(document).ready(function() {
    // Initialize DataTable
    $('#payments-datatable').DataTable({
        responsive: true,
        language: {
            paginate: {
                previous: "<i class='mdi mdi-chevron-left'>",
                next: "<i class='mdi mdi-chevron-right'>"
            }
        },
        columnDefs: [
            { responsivePriority: 1, targets: 1 },
            { responsivePriority: 2, targets: 3 },
            { responsivePriority: 3, targets: -1 },
            { orderable: false, targets: -1 }
        ]
    });
    
 // Handle view payment button click
    $(document).on('click', '.view-payment', function() {
        var paymentId = $(this).data('id');
        $('#viewPaymentModal').modal('show');
        
        // Load payment details via AJAX
        $.ajax({
            url: 'get_payment_details.php',
            type: 'GET',
            data: { id: paymentId },
            beforeSend: function() {
                $('#paymentDetailsContent').html(`
                    <div class="text-center py-4">
                        <div class="spinner-border text-primary" role="status">
                            <span class="visually-hidden">Loading...</span>
                        </div>
                        <p class="mt-2">Loading payment details...</p>
                    </div>
                `);
            },
            success: function(response) {
                $('#paymentDetailsContent').html(response);
            },
            error: function() {
                $('#paymentDetailsContent').html(`
                    <div class="alert alert-danger">
                        Failed to load payment details. Please try again.
                    </div>
                `);
            }
        });
    });
    
    // Handle download receipt button click
    $(document).on('click', '.payment-receipt', function() {
        var paymentId = $(this).data('id');
        window.open('generate_receipt.php?id=' + paymentId, '_blank');
    });
});
</script>

</body>
</html>