/* eslint-disable @typescript-eslint/no-explicit-any */
import { javaPost } from './apiClient';

interface ActualNewsQueryParams {
  fromDate: string;
  toDate: string;
}

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

export interface NewsActualItem {
  cimke: string | null;
  cim: string | null;
  alcim: string | null;
  body: string | null;
  url: string | null;
  kep: NewsApiImage | null;
  galeria: NewsApiImage[] | null;
  kozzeteve: string | null;
  modositva: string | null;
}

const defaultActualNewsQueryParams: ActualNewsQueryParams = {
  fromDate: '20260101',
  toDate: '20261231',
};

export async function getAllNews() {
  return javaPost('newsControl/getAllNews', {});
}

export async function getActualNews(
  query: Partial<ActualNewsQueryParams> = {}
): Promise<NewsActualItem[]> {
  const resolvedQuery = {
    ...defaultActualNewsQueryParams,
    ...query,
  };

  return javaPost('newsControl/getActuals', resolvedQuery);
}

export async function getNewsById(id: any) {
  return javaPost('newsControl/getNewsById', { newsId: id });
}
