import { useMemo } from 'react'; import { useBeneficiary } from '@/contexts/BeneficiaryContext'; import type { BeneficiarySubscription } from '@/types'; export interface SubscriptionState { subscription: BeneficiarySubscription | null; beneficiaryName: string | null; beneficiaryId: number | null; isActive: boolean; daysRemaining: number; loading: boolean; } export function useSubscription(): SubscriptionState { const { currentBeneficiary } = useBeneficiary(); const subscription = useMemo(() => { if (!currentBeneficiary?.subscription) return null; const sub = currentBeneficiary.subscription; // Check if expired if (sub.endDate && new Date(sub.endDate) < new Date()) { return { ...sub, status: 'expired' as const }; } return sub; }, [currentBeneficiary?.subscription]); const isActive = subscription?.status === 'active'; const daysRemaining = useMemo(() => { if (!subscription?.endDate) return 0; return Math.max(0, Math.ceil((new Date(subscription.endDate).getTime() - Date.now()) / (1000 * 60 * 60 * 24))); }, [subscription?.endDate]); return { subscription, beneficiaryName: currentBeneficiary?.name || null, beneficiaryId: currentBeneficiary?.id || null, isActive, daysRemaining, loading: false, }; }