// app/(lib)/actions/saveCardAction.ts
"use server";

import { saveCardService, type SaveCardRequest } from "../services/saveCardService";

export interface SaveCardActionResponse {
  success: boolean;
  message: string;
}

/**
 * Save card preference before Stripe payment
 * Called when user checks "Save my card" checkbox
 */
export async function saveCardAction(
  request: SaveCardRequest
): Promise<SaveCardActionResponse> {
  try {

    const response = await saveCardService.saveCard({
      payment_intent_id: request.payment_intent_id,
      gateway: request.gateway,
      save_card: request.save_card,
    });

    if (!response.status) {
      return {
        success: false,
        message: response.message || "Failed to save card preference",
      };
    }


    return {
      success: true,
      message: response.message || "Card preference saved",
    };
  } catch (error) {
    console.error("[saveCardAction] Error:", error);
    return {
      success: false,
      message:
        error instanceof Error ? error.message : "Failed to save card preference",
    };
  }
}
