import type { MeetingRequest } from "../../meeting-request-data";

export const emptyPrintText = "No data";

export function getPrintValue(value?: string | null) {
  if (!value || value === "-" || value === "Not Uploaded") {
    return emptyPrintText;
  }

  return value;
}

// Format a date for the print view. Accepts an ISO string or an already
// human-readable date; returns the placeholder when the value is empty/unknown.
export function formatPrintDate(value?: string | null) {
  if (!value || value === "-") {
    return emptyPrintText;
  }

  const date = new Date(value);

  if (Number.isNaN(date.getTime())) {
    // Already a formatted string we can't re-parse; show it as-is.
    return value;
  }

  return date.toLocaleDateString("en-US", {
    day: "numeric",
    month: "long",
    year: "numeric",
  });
}

export function getMeetingPrimaryAgency(meetingRequest: MeetingRequest) {
  return meetingRequest.governmentAgencies?.[0]?.name ?? emptyPrintText;
}

export function getMeetingPrimaryAgencyLogo(meetingRequest: MeetingRequest) {
  return meetingRequest.governmentAgencies?.[0]?.logo ?? null;
}

export function getMeetingStatusLabel(status?: string) {
  if (!status) {
    return emptyPrintText;
  }

  return status;
}
