'use client'; import { Header } from '@/components/layouts/header'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { useAuthStore } from '@/stores/auth-store'; import { useSubscription, usePaymentHistory } from '@/lib/hooks/use-subscription'; import { CreditCard, Calendar, CheckCircle, AlertCircle, Clock, XCircle } from 'lucide-react'; const statusConfig: Record = { authorized: { label: 'Activa', color: 'text-green-600 bg-green-50', icon: CheckCircle }, pending: { label: 'Pendiente', color: 'text-yellow-600 bg-yellow-50', icon: Clock }, paused: { label: 'Pausada', color: 'text-orange-600 bg-orange-50', icon: AlertCircle }, cancelled: { label: 'Cancelada', color: 'text-red-600 bg-red-50', icon: XCircle }, }; export default function SuscripcionPage() { const { user } = useAuthStore(); const { data: subscription, isLoading } = useSubscription(user?.tenantId); const { data: payments } = usePaymentHistory(user?.tenantId); const status = statusConfig[subscription?.status || ''] || statusConfig.pending; const StatusIcon = status.icon; return ( <>
{/* Subscription Status */} Estado de Suscripción {isLoading ? (
) : subscription ? (

Plan

{subscription.plan}

Estado

{status.label}

Monto Mensual

${Number(subscription.amount).toLocaleString('es-MX')} MXN

) : (

No se encontró información de suscripción.

)} {/* Payment History */} Historial de Pagos {payments && payments.length > 0 ? (
{payments.map((payment) => ( ))}
Fecha Monto Estado Método
{new Date(payment.createdAt).toLocaleDateString('es-MX')} ${Number(payment.amount).toLocaleString('es-MX')} {payment.status === 'approved' ? 'Aprobado' : payment.status === 'rejected' ? 'Rechazado' : 'Pendiente'} {payment.paymentMethod || '-'}
) : (

No hay pagos registrados aún.

)}
); }