export const formatAmount = (amount: number) => {
    return new Intl.NumberFormat('ru-RU').format(amount);
};

export const formatDate = (date) => {
    const validDate = typeof date === 'string' ? new Date(date) : date;
    // Проверяем, является ли validDate корректной датой
    if (isNaN(validDate.getTime())) {
        return 'Invalid Date'; // Если дата неверная, возвращаем текст ошибки
    }

    return validDate.toLocaleDateString('ru-RU', {
        day: '2-digit',
        month: '2-digit',
        year: '2-digit',
    });
}

export const formatDateTime = (date) => {
    const validDate = typeof date === 'string' ? new Date(date) : date;
    // Проверяем, является ли validDate корректной датой
    if (isNaN(validDate.getTime())) {
        return 'Invalid Date'; // Если дата неверная, возвращаем текст ошибки
    }

    return validDate.toLocaleString('ru-RU', {
        day: '2-digit',
        month: '2-digit',
        year: '2-digit',
        hour: '2-digit',
        minute: '2-digit',
        hour12: false, // 24-часовой формат
    });
}

export const getMonthName = (month: number) => {
    switch (month) {
        case 0:
            return 'Январь'
        case 1:
            return 'Февраль'
        case 2:
            return 'Март'
        case 3:
            return 'Апрель'
        case 4:
            return 'Май'
        case 5:
            return 'Июнь'
        case 6:
            return 'Июль'
        case 7:
            return 'Август'
        case 8:
            return 'Сентябрь'
        case 9:
            return 'Октябрь'
        case 10:
            return 'Ноябрь'
        case 11:
            return 'Декабрь'
    }
}

export const getMonthName2 = (monthIndex: number, caseName: "имен" | "род" | "дат" | "вин" | "твор" | "пред") => {
    const months = {
        имен: ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"],
        род: ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"],
        дат: ["январю", "февралю", "марту", "апрелю", "маю", "июню", "июлю", "августу", "сентябрю", "октябрю", "ноябрю", "декабрю"],
        вин: ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"],
        твор: ["январём", "февралём", "мартом", "апрелем", "маем", "июнем", "июлем", "августом", "сентябрем", "октябрем", "ноябрём", "декабрём"],
        пред: ["январе", "феврале", "марте", "апреле", "мае", "июне", "июле", "августе", "сентябре", "октябре", "ноябре", "декабре"]
    };

    return months[caseName][monthIndex];
}

export const generateRandomColors = () => {

    const r = Math.floor(Math.random() * 256);
    const g = Math.floor(Math.random() * 256);
    const b = Math.floor(Math.random() * 256);
    const a = 0.5; // Прозрачность от 0.00 до 1.00

    return [r, g, b]
}

export const getRandomColor = () => {
    
}

export const toDateOnly = (d : Date): string => {
    const y = d.getFullYear();
    const m = String(d.getMonth() + 1).padStart(2, '0');
    const day = String(d.getDate()).padStart(2, '0');
    return `${y}-${m}-${day}`;
}