import http from '@/http';

export interface AdhesionPayload {
  type: string;
  cotisationType: string;
  amount: number;
  firstName: string;
  lastName: string;
  email: string;
  address: string;
  address2?: string;
  postalCode: string;
  city: string;
  wantsReceipt?: boolean;
  wantsMemberCard?: boolean;
}

export interface InitPaymentResponse {
  success: boolean;
  token?: string;
  error?: string;
  errors?: Record<string, string>;
}

export interface PaymentResultResponse {
  success: boolean;
  status: string;
  firstName: string;
  lastName: string;
  amount: number;
  type: string;
  wantsMemberCard: boolean;
}

export async function initPayment(payload: AdhesionPayload): Promise<InitPaymentResponse> {
  const response = await http.post<InitPaymentResponse>('/adhesion/init-payment', payload);
  return response.data;
}

export async function getPaymentResult(token: string): Promise<PaymentResultResponse> {
  const response = await http.get<PaymentResultResponse>(`/adhesion/payment-result?token=${token}`);
  return response.data;
}
