import { useState } from 'react' import toast from 'react-hot-toast' import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query' import { CheckCircle, XCircle, ChevronDown, ChevronUp } from 'lucide-react' import { api } from '../../lib/axios' import { Button } from '../../components/ui/Button' import { Badge } from '../../components/ui/Badge' import { PageHeader } from '../../components/shared/PageHeader' import { Spinner } from '../../components/ui/Spinner' import { EmptyState } from '../../components/shared/EmptyState' import { formatDate } from '../../utils/formatDate' const CYCLE_MAP = { MONTHLY: 'شهري', YEARLY: 'سنوي' } export default function AdminServerSubscriptionsPage() { const [showRejected, setShowRejected] = useState(false) const { data, isLoading } = useQuery({ queryKey: ['admin-server-subscriptions'], queryFn: () => api.get('/admin/server-subscriptions').then(r => r.data), }) const subs = data?.data?.subscriptions ?? data?.subscriptions ?? data?.data ?? [] const active = subs.filter(s => s.status === 'ACTIVE') const rejected = subs.filter(s => s.status === 'REJECTED') if (isLoading) { return
} return (
{active.length === 0 ? ( ) : (

الاشتراكات النشطة ({active.length})

{active.map((s) => ( ))}
العميل الباقة المبلغ الدورة تاريخ البدء تاريخ الانتهاء

{s.user?.firstName} {s.user?.lastName}

{s.user?.email}

{s.plan?.name} ${Number(s.price).toFixed(2)} {CYCLE_MAP[s.billingCycle] || s.billingCycle} {s.startDate ? formatDate(s.startDate) : '—'} {s.endDate ? formatDate(s.endDate) : '—'}
)} {rejected.length > 0 && (
{showRejected && ( {rejected.map((s) => ( ))}
العميل الباقة المبلغ تاريخ الطلب ملاحظات

{s.user?.firstName} {s.user?.lastName}

{s.user?.email}

{s.plan?.name} ${Number(s.price).toFixed(2)} {formatDate(s.createdAt)} {s.adminNotes || '—'}
)}
)}
) }