import { format } from 'date-fns';
import { hu } from 'date-fns/locale';

import { MMAMembership } from '@/types/Creator';

export const getFullMembershipString = (membership: MMAMembership): string => {
  if (!membership) return '';

  let membershipStr = membership.nev;

  if (membership.tol) {
    membershipStr += ' (' + membership.tol + '–';
    if (membership.ig) {
      membershipStr += membership.ig;
    }
    membershipStr += ')';
  }

  return membershipStr;
};

export interface PlaceDto {
  city?: string | null;
}

export const getDeathData = (
  helyDto?: PlaceDto | null,
  datetime?: string | Date | null
): string => {
  if (!datetime) return '';
  let deathData = ' –';
  if (helyDto?.city) deathData += ` ${helyDto.city},`;
  deathData += ` ${format(new Date(datetime), 'yyyy. MMMM d.', {
    locale: hu,
  })}`;
  return deathData;
};

export const removeHtmlTags = (text: string): string => {
  if (!text) return '';

  // Remove HTML tags
  let cleaned = text.replace(/(<([^>]+)>)/gi, '');

  // Decode common HTML entities
  cleaned = cleaned
    .replace(/&nbsp;/g, ' ')
    .replace(/&amp;/g, '&')
    .replace(/&lt;/g, '<')
    .replace(/&gt;/g, '>')
    .replace(/&quot;/g, '"')
    .replace(/&#39;/g, "'")
    .replace(/&apos;/g, "'");

  return cleaned;
};
