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
| العميل | الباقة | المبلغ | الدورة | تاريخ البدء | تاريخ الانتهاء |
|---|---|---|---|---|---|
|
{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) : '—'} |
| العميل | الباقة | المبلغ | تاريخ الطلب | ملاحظات |
|---|---|---|---|---|
|
{s.user?.firstName} {s.user?.lastName} {s.user?.email} |
{s.plan?.name} | ${Number(s.price).toFixed(2)} | {formatDate(s.createdAt)} | {s.adminNotes || '—'} |