/** * User Subscription API * API for regular users to view their own subscriptions and progress */ import { apiClient } from './client'; import type { UserSubscription, SubscriptionProgress } from '@/types'; /** * Subscription summary for user dashboard */ export interface SubscriptionSummary { active_count: number; subscriptions: Array<{ id: number; group_name: string; status: string; daily_progress: number | null; weekly_progress: number | null; monthly_progress: number | null; expires_at: string | null; days_remaining: number | null; }>; } /** * Get list of current user's subscriptions */ export async function getMySubscriptions(): Promise { const response = await apiClient.get('/subscriptions'); return response.data; } /** * Get current user's active subscriptions */ export async function getActiveSubscriptions(): Promise { const response = await apiClient.get('/subscriptions/active'); return response.data; } /** * Get progress for all user's active subscriptions */ export async function getSubscriptionsProgress(): Promise { const response = await apiClient.get('/subscriptions/progress'); return response.data; } /** * Get subscription summary for dashboard display */ export async function getSubscriptionSummary(): Promise { const response = await apiClient.get('/subscriptions/summary'); return response.data; } /** * Get progress for a specific subscription */ export async function getSubscriptionProgress(subscriptionId: number): Promise { const response = await apiClient.get(`/subscriptions/${subscriptionId}/progress`); return response.data; } export default { getMySubscriptions, getActiveSubscriptions, getSubscriptionsProgress, getSubscriptionSummary, getSubscriptionProgress, };