import axios from '@/network/axios';
import { apis } from '@/utils/apis/apis';
import { SuccessResponse } from '@/utils/types/Responses';
import { SubscriptionResponse } from './type';

export const updateSubscription = async (
  id: number,
  payload: { start_date: string; end_date: string },
): Promise<void> => {
  const formData = new FormData();
  formData.append('start_date', payload.start_date);
  formData.append('end_date', payload.end_date);
  await axios.post(apis.DASHBOARD.SUBSCRIPTIONS.UPDATE(id), formData);
};

export const fetchSubscriptions = async ({
  page,
  perPage,
  userId,
}: {
  page: number;
  perPage: number;
  userId?: string;
}): Promise<SubscriptionResponse | null> => {
  try {
    const baseUrl = `${apis.DASHBOARD.SUBSCRIPTIONS.LIST}?page=${page}&per_page=${perPage}`;
    const finalUrl = userId ? `${baseUrl}&user_id=${userId}` : baseUrl;

    const response =
      await axios.get<SuccessResponse<SubscriptionResponse>>(finalUrl);
    return response.data?.data || null;
  } catch (error) {
    console.error('Error fetching subscriptions:', error);
    return null;
  }
};
