import { format, parseISO } from "date-fns";
import { ru } from "date-fns/locale";

export const parseSQLiteUtc = (timestamp: string): Date => {
  return parseISO(timestamp.replace(" ", "T") + "Z");
};

export const formatLocalDateTime = (date: Date): string => {
  // Используем явное форматирование вместо формата date-fns для избежания проблем с локализацией
  const day = String(date.getDate()).padStart(2, "0");
  const month = String(date.getMonth() + 1).padStart(2, "0");
  const year = date.getFullYear();
  const hours = String(date.getHours()).padStart(2, "0");
  const minutes = String(date.getMinutes()).padStart(2, "0");

  // Формат строго: dd.MM.yyyy HH:mm (ровно 16 символов)
  const formatted = `${day}.${month}.${year} ${hours}:${minutes}`;

  // Принудительно обрезаем до 16 символов на случай любых проблем
  return formatted.substring(0, 16);
};

export const formatLocalDateOnly = (date: Date): string => {
  return format(date, "dd.MM.yyyy", { locale: ru });
};

export const formatDateFromTimestamp = (timestamp: string): string => {
  const date = parseSQLiteUtc(timestamp);
  return formatLocalDateOnly(date);
};
