import { apiClient } from "@/src/app/api/client";

export interface ClassDetails {
  group_name: string;
  program_name: string;
  instructor_name: string;
  start_date: string;
  start_time: string;
  end_time: string;
  day: string[];
  location: string;
  min_age: number | null;
  max_age: number | null;
}

export interface SubmissionData {
  [key: string]: Record<string, any>;
}

export interface ZohoData {
  success: boolean;
  lead?: {
    id: string;
    cw_uid: string;
    name: string;
  };
  child?: {
    id: string;
    cw_uid: string;
    name: string;
  };
}

export interface RegistrationInvoiceResponse {
  status: boolean;
  message: string;
  data: {
    submission_data: SubmissionData;
    zoho?: ZohoData;
  };
}

export async function getRegistrationInvoice(
  registrationId: string,
  domain: string
): Promise<RegistrationInvoiceResponse | null> {
  try {
    const response = await apiClient.get(
      `registration-invoice/${registrationId}`,
      {
        headers: {
          "X-Domain": domain,
        },
      }
    );

    if (response.data?.status) {
      return response.data;
    }
    return null;
  } catch (error) {
    console.error(`Failed to fetch registration invoice for ${registrationId}:`, error);
    return null;
  }
}
