/* eslint-disable @typescript-eslint/no-explicit-any */
export interface CreationListItem {
  alkotasAzonosito: string;
  alkotoAzonosito: string;
  cardType: CreationCardType;
  fokep: string | null;
  fokepId: number | null;
  fokepNev: string | null;
  hivatkozas: string | null;
  id: number;
  koordinatak: string | null; // can be empty string
  label: string | null;
  labelYear: number | null;
  megjelenitendoNev: string;
  nev: string | null; // a few null cases
  szakma?: string | null;
  telepules: string | null;

  // only news and life events
  cim?: {
    city?: string;
    country?: string;
  };
  kepek: CreationGalleryImage[];
  tipusLabel?: string;
  hivatkozasLista: CreationVideoField[];
}

export interface CreationVideoField {
  cim: string | null;
  hivatkozas: string | null;
  link: string | null;
  forrasa: string | null;
  sorozat: string | null;
  sorozatPozicio: number | null;
  leiras: string | null;
  tipus: string | null;
}

export type CreationCardType = 'creation' | 'life' | 'news';

export type CreatorTimelineCategory = 'alkotas' | 'eletut' | 'mma-hir' | 'alkotas-video';

export interface CreationGalleryImage {
  key: string;
  fileName: string;
  fileSize: number;
  width: number;
  height: number;
  jogtulajdonos: string | null;
  kepforrasa: string | null;
  kepkeszitoje: string | null;
  kepalairas: string | null;
  id: number;
}

export interface CreationPageItem {
  alkotasAzonosito: string;
  alkotoAzonosito: string;
  alkototars: Alkototars[] | null;
  attributumok: any[];
  fokep: CreationGalleryImage | null;
  hivatkozasLista: HivatkozasListaItem[] | null;
  keletkezesHelyeCity: string | null;
  keletkezesHelyeKoordinatak: string | null;
  label: string | null;
  leiras: string | null;
  megjelenitendoNev: string;
  nev: string;
  szakma: string | null;
  targyszo: TargyszoItem[] | null;
  tovabbiKepek: CreationGalleryImage[] | null;

  muveszetiAg: string | null;
  muveszetiAgEnum: string | null;

  nemForditottTartalom: true | null;
  gepiForditas: true | false | null; // leírásra vonatkozik
}

interface HivatkozasListaItem {
  tipus: string;
  cim: string;
  hivatkozas: string;
  forrasa: string | null;
}

interface TargyszoItem {
  id: number;
  nev: string;
}

interface Alkototars {
  azonosito: string;
  nev: string;
}
