"use server";

import { getProgramDetailById } from "../services/programDetailService";
import { extractDomain } from "../utils/domain";
import type { ProgramDetailDataWithTranslations } from "../services/programDetailService";

export async function getProgramDetailAction(
  programId: string,
  language?: string
): Promise<{
  success: boolean;
  data: ProgramDetailDataWithTranslations | null;
}> {
  try {
    const domain = await extractDomain();

    const programDetail = await getProgramDetailById(programId, domain, language);

    if (!programDetail || !programDetail.default) {
      return {
        success: false,
        data: null,
      };
    }

    return {
      success: true,
      data: programDetail,
    };
  } catch (error) {
    console.error("[getProgramDetailAction] Error:", error);
    return {
      success: false,
      data: null,
    };
  }
}
