"use server";

import { programsService } from "../services/programsService";
import { extractDomain, extractFranchiseeId } from "../utils/domain";
import { ProcessedProgram } from "@/src/lib/types/programs";

/**
 * Server action to fetch programs by domain
 * Supports language parameter for translated content
 */
export async function getProgramsAction(franchiseeId?: string | null, language?: string | null): Promise<{
  success: boolean;
  data: ProcessedProgram[];
}> {
  try {
    const domain = await extractDomain();
    const programs = await programsService.fetchByDomain(domain, franchiseeId, language);
    return {
      success: true,
      data: programs,
    };
  } catch (error) {
    console.error("[getProgramsAction] Error:", error);
    return {
      success: false,
      data: [],
    };
  }
}
