@extends('admin.layouts.app')

@section('title', 'إدارة المدفوعات')

@section('page-title', 'إدارة المدفوعات')

@section('content')
<div class="container-fluid">
    <!-- إحصائيات سريعة -->
    <div class="row mb-4">
        <div class="col-md-3">
            <div class="card stats-card">
                <div class="card-body text-center">
                    <i class="fas fa-credit-card fa-2x mb-2"></i>
                    <div class="stats-number">{{ $payments->total() }}</div>
                    <div>إجمالي المدفوعات</div>
                </div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="card stats-card">
                <div class="card-body text-center">
                    <i class="fas fa-check-circle fa-2x mb-2"></i>
                    <div class="stats-number">{{ $payments->where('status', 'completed')->count() }}</div>
                    <div>مكتملة</div>
                </div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="card stats-card">
                <div class="card-body text-center">
                    <i class="fas fa-clock fa-2x mb-2"></i>
                    <div class="stats-number">{{ $payments->where('status', 'pending')->count() }}</div>
                    <div>في الانتظار</div>
                </div>
            </div>
        </div>
        <div class="col-md-3">
            <div class="card stats-card">
                <div class="card-body text-center">
                    <i class="fas fa-dollar-sign fa-2x mb-2"></i>
                    <div class="stats-number">{{ number_format($payments->sum('amount'), 2) }}</div>
                    <div>إجمالي المبالغ</div>
                </div>
            </div>
        </div>
    </div>

    <!-- أدوات البحث والفلترة -->
    <div class="card mb-4">
        <div class="card-body">
            <form method="GET" action="{{ route('admin.payments') }}" class="row g-3">
                <div class="col-md-3">
                    <label for="status" class="form-label">حالة الدفع</label>
                    <select name="status" id="status" class="form-select">
                        <option value="">جميع الحالات</option>
                        <option value="pending" {{ request('status') == 'pending' ? 'selected' : '' }}>في الانتظار</option>
                        <option value="processing" {{ request('status') == 'processing' ? 'selected' : '' }}>قيد المعالجة</option>
                        <option value="completed" {{ request('status') == 'completed' ? 'selected' : '' }}>مكتمل</option>
                        <option value="cancelled" {{ request('status') == 'cancelled' ? 'selected' : '' }}>ملغي</option>
                        <option value="failed" {{ request('status') == 'failed' ? 'selected' : '' }}>فشل</option>
                        <option value="refund_requested" {{ request('status') == 'refund_requested' ? 'selected' : '' }}>طلب استرداد</option>
                    </select>
                </div>
                <div class="col-md-3">
                    <label for="payment_method" class="form-label">طريقة الدفع</label>
                    <select name="payment_method" id="payment_method" class="form-select">
                        <option value="">جميع الطرق</option>
                        <option value="cash" {{ request('payment_method') == 'cash' ? 'selected' : '' }}>نقداً</option>
                        <option value="credit_card" {{ request('payment_method') == 'credit_card' ? 'selected' : '' }}>بطاقة ائتمان</option>
                        <option value="debit_card" {{ request('payment_method') == 'debit_card' ? 'selected' : '' }}>بطاقة مدى</option>
                        <option value="bank_transfer" {{ request('payment_method') == 'bank_transfer' ? 'selected' : '' }}>تحويل بنكي</option>
                        <option value="digital_wallet" {{ request('payment_method') == 'digital_wallet' ? 'selected' : '' }}>محفظة رقمية</option>
                    </select>
                </div>
                <div class="col-md-3">
                    <label for="user" class="form-label">المستخدم</label>
                    <input type="text" name="user" id="user" class="form-control"
                           placeholder="اسم المستخدم" value="{{ request('user') }}">
                </div>
                <div class="col-md-3">
                    <label for="date" class="form-label">التاريخ</label>
                    <input type="date" name="date" id="date" class="form-control"
                           value="{{ request('date') }}">
                </div>
                <div class="col-12">
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-search"></i> بحث
                    </button>
                    <a href="{{ route('admin.payments') }}" class="btn btn-secondary">
                        <i class="fas fa-undo"></i> إعادة تعيين
                    </a>
                </div>
            </form>
        </div>
    </div>

    <!-- جدول المدفوعات -->
    <div class="card">
        <div class="card-header d-flex justify-content-between align-items-center">
            <h5 class="mb-0">
                <i class="fas fa-list"></i> قائمة المدفوعات
            </h5>
            <div>
                <span class="badge bg-info">{{ $payments->total() }} دفعة</span>
            </div>
        </div>
        <div class="card-body">
            @if($payments->count() > 0)
                <div class="table-responsive">
                    <table class="table table-hover">
                        <thead class="table-dark">
                            <tr>
                                <th>#</th>
                                <th>المستخدم</th>
                                <th>المبلغ</th>
                                <th>طريقة الدفع</th>
                                <th>الحالة</th>
                                <th>نوع الدفع</th>
                                <th>رقم المعاملة</th>
                                <th>التاريخ</th>
                                <th>الإجراءات</th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach($payments as $payment)
                                <tr>
                                    <td>{{ $payment->id }}</td>
                                    <td>
                                        @if($payment->user)
                                            <div class="d-flex align-items-center">
                                                <div class="avatar-sm me-2">
                                                    @if($payment->user->profile_photo)
                                                        <img src="{{ asset('storage/' . $payment->user->profile_photo) }}"
                                                             alt="صورة المستخدم" class="rounded-circle" width="32">
                                                    @else
                                                        <div class="bg-secondary rounded-circle d-flex align-items-center justify-content-center"
                                                             style="width: 32px; height: 32px;">
                                                            <i class="fas fa-user text-white"></i>
                                                        </div>
                                                    @endif
                                                </div>
                                                <div>
                                                    <div class="fw-bold">{{ $payment->user->name }}</div>
                                                    <small class="text-muted">{{ $payment->user->email }}</small>
                                                </div>
                                            </div>
                                        @else
                                            <span class="text-muted">غير محدد</span>
                                        @endif
                                    </td>
                                    <td>
                                        <div class="amount-info">
                                            <div class="fw-bold text-success">{{ number_format($payment->amount, 2) }} ريال</div>
                                            @if($payment->subscription_fee > 0)
                                                <small class="text-muted">+ {{ number_format($payment->subscription_fee, 2) }} رسوم</small>
                                            @endif
                                            @if($payment->total_amount > $payment->amount)
                                                <div class="text-primary">
                                                    <strong>المجموع: {{ number_format($payment->total_amount, 2) }} ريال</strong>
                                                </div>
                                            @endif
                                        </div>
                                    </td>
                                    <td>
                                        @switch($payment->payment_method)
                                            @case('cash')
                                                <span class="badge bg-success">
                                                    <i class="fas fa-money-bill-wave"></i> نقداً
                                                </span>
                                                @break
                                            @case('credit_card')
                                                <span class="badge bg-primary">
                                                    <i class="fas fa-credit-card"></i> بطاقة ائتمان
                                                </span>
                                                @break
                                            @case('debit_card')
                                                <span class="badge bg-info">
                                                    <i class="fas fa-credit-card"></i> بطاقة مدى
                                                </span>
                                                @break
                                            @case('bank_transfer')
                                                <span class="badge bg-warning">
                                                    <i class="fas fa-university"></i> تحويل بنكي
                                                </span>
                                                @break
                                            @case('digital_wallet')
                                                <span class="badge bg-secondary">
                                                    <i class="fas fa-mobile-alt"></i> محفظة رقمية
                                                </span>
                                                @break
                                            @default
                                                <span class="badge bg-secondary">{{ $payment->payment_method }}</span>
                                        @endswitch
                                    </td>
                                    <td>
                                        @switch($payment->status)
                                            @case('pending')
                                                <span class="badge bg-warning">في الانتظار</span>
                                                @break
                                            @case('processing')
                                                <span class="badge bg-info">قيد المعالجة</span>
                                                @break
                                            @case('completed')
                                                <span class="badge bg-success">مكتمل</span>
                                                @break
                                            @case('cancelled')
                                                <span class="badge bg-danger">ملغي</span>
                                                @break
                                            @case('failed')
                                                <span class="badge bg-danger">فشل</span>
                                                @break
                                            @case('refund_requested')
                                                <span class="badge bg-warning">طلب استرداد</span>
                                                @break
                                            @default
                                                <span class="badge bg-secondary">{{ $payment->status }}</span>
                                        @endswitch
                                    </td>
                                    <td>
                                        @if($payment->paymentable_type)
                                            @switch($payment->paymentable_type)
                                                @case('App\Models\Trip')
                                                    <span class="badge bg-primary">
                                                        <i class="fas fa-route"></i> رحلة
                                                    </span>
                                                    @break
                                                @case('App\Models\FoodOrder')
                                                    <span class="badge bg-success">
                                                        <i class="fas fa-utensils"></i> طعام
                                                    </span>
                                                    @break
                                                @case('App\Models\GasOrder')
                                                    <span class="badge bg-warning">
                                                        <i class="fas fa-fire"></i> غاز
                                                    </span>
                                                    @break
                                                @default
                                                    <span class="badge bg-secondary">{{ class_basename($payment->paymentable_type) }}</span>
                                            @endswitch
                                        @else
                                            <span class="text-muted">غير محدد</span>
                                        @endif
                                    </td>
                                    <td>
                                        @if($payment->transaction_id)
                                            <span class="badge bg-dark">{{ Str::limit($payment->transaction_id, 15) }}</span>
                                        @else
                                            <span class="text-muted">غير محدد</span>
                                        @endif
                                    </td>
                                    <td>
                                        <div class="date-info">
                                            <div>{{ $payment->created_at->format('Y-m-d') }}</div>
                                            <small class="text-muted">{{ $payment->created_at->format('H:i') }}</small>
                                            @if($payment->completed_at)
                                                <div class="text-success">
                                                    <small>مكتمل: {{ $payment->completed_at->format('H:i') }}</small>
                                                </div>
                                            @endif
                                        </div>
                                    </td>
                                    <td>
                                        <div class="btn-group" role="group">
                                            <button type="button" class="btn btn-sm btn-outline-info"
                                                    onclick="showPaymentDetails({{ $payment->id }})" title="تفاصيل الدفع">
                                                <i class="fas fa-eye"></i>
                                            </button>
                                            @if($payment->status == 'pending')
                                                <button type="button" class="btn btn-sm btn-outline-success"
                                                        onclick="updatePaymentStatus({{ $payment->id }}, 'completed')" title="تأكيد الدفع">
                                                    <i class="fas fa-check"></i>
                                                </button>
                                            @endif
                                            @if(in_array($payment->status, ['pending', 'processing']))
                                                <button type="button" class="btn btn-sm btn-outline-danger"
                                                        onclick="updatePaymentStatus({{ $payment->id }}, 'cancelled')" title="إلغاء الدفع">
                                                    <i class="fas fa-times"></i>
                                                </button>
                                            @endif
                                            @if($payment->status == 'completed')
                                                <button type="button" class="btn btn-sm btn-outline-warning"
                                                        onclick="requestRefund({{ $payment->id }})" title="طلب استرداد">
                                                    <i class="fas fa-undo"></i>
                                                </button>
                                            @endif
                                        </div>
                                    </td>
                                </tr>
                            @endforeach
                        </tbody>
                    </table>
                </div>

                <!-- ترقيم الصفحات -->
                <div class="d-flex justify-content-center mt-4">
                    {{ $payments->links() }}
                </div>
            @else
                <div class="text-center py-5">
                    <i class="fas fa-credit-card fa-3x text-muted mb-3"></i>
                    <h5 class="text-muted">لا توجد مدفوعات</h5>
                    <p class="text-muted">لم يتم العثور على مدفوعات تطابق معايير البحث</p>
                </div>
            @endif
        </div>
    </div>
</div>

<!-- Modal لعرض تفاصيل الدفع -->
<div class="modal fade" id="paymentDetailsModal" tabindex="-1">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">تفاصيل الدفع</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body" id="paymentDetailsContent">
                <!-- سيتم تحميل المحتوى هنا -->
            </div>
        </div>
    </div>
</div>
@endsection

@section('scripts')
<script>
// تحديث حالة الدفع
function updatePaymentStatus(paymentId, status) {
    if (confirm('هل أنت متأكد من تحديث حالة الدفع؟')) {
        fetch(`/admin/payments/${paymentId}/status`, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content')
            },
            body: JSON.stringify({ status: status })
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                location.reload();
            } else {
                alert('حدث خطأ أثناء تحديث حالة الدفع');
            }
        })
        .catch(error => {
            console.error('Error:', error);
            alert('حدث خطأ أثناء تحديث حالة الدفع');
        });
    }
}

// عرض تفاصيل الدفع
function showPaymentDetails(paymentId) {
    fetch(`/admin/payments/${paymentId}/details`)
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                document.getElementById('paymentDetailsContent').innerHTML = data.html;
                new bootstrap.Modal(document.getElementById('paymentDetailsModal')).show();
            }
        })
        .catch(error => {
            console.error('Error:', error);
            alert('حدث خطأ أثناء تحميل تفاصيل الدفع');
        });
}

// طلب استرداد
function requestRefund(paymentId) {
    if (confirm('هل أنت متأكد من طلب استرداد هذا الدفع؟')) {
        fetch(`/admin/payments/${paymentId}/refund`, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content')
            }
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                location.reload();
            } else {
                alert('حدث خطأ أثناء طلب الاسترداد');
            }
        })
        .catch(error => {
            console.error('Error:', error);
            alert('حدث خطأ أثناء طلب الاسترداد');
        });
    }
}

// تحديث الإحصائيات في الوقت الفعلي
function updateStats() {
    // يمكن إضافة تحديث للإحصائيات هنا
}

// تحديث كل 30 ثانية
setInterval(updateStats, 30000);
</script>

<style>
.avatar-sm {
    width: 32px;
    height: 32px;
}

.amount-info {
    min-width: 120px;
}

.date-info {
    text-align: center;
    min-width: 100px;
}

.btn-group .btn {
    margin: 0 2px;
}

.stats-card {
    transition: transform 0.3s ease;
}

.stats-card:hover {
    transform: translateY(-5px);
}

.table th {
    font-weight: 600;
    text-align: center;
}

.table td {
    vertical-align: middle;
}

.badge {
    font-size: 0.8em;
}

.modal-content {
    border-radius: 15px;
}

.modal-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border-radius: 15px 15px 0 0;
}

.modal-header .btn-close {
    filter: invert(1);
}

.amount-info .text-success {
    font-size: 1.1em;
}

.amount-info .text-primary {
    font-size: 0.9em;
}
</style>
@endsection
