import { getTodayDateString, isValidDateString } from '$lib/utils/parse';

export function parseLaporanDateRange(
	dari: string | null,
	sampai: string | null
): { tanggalAwal: string; tanggalAkhir: string } {
	const today = getTodayDateString();
	let tanggalAwal = dari && isValidDateString(dari) ? dari : today;
	let tanggalAkhir = sampai && isValidDateString(sampai) ? sampai : tanggalAwal;

	if (tanggalAwal > tanggalAkhir) {
		[tanggalAwal, tanggalAkhir] = [tanggalAkhir, tanggalAwal];
	}

	return { tanggalAwal, tanggalAkhir };
}

export function formatLaporanTanggalLabel(tanggalAwal: string, tanggalAkhir: string): string {
	if (tanggalAwal === tanggalAkhir) {
		return new Date(tanggalAwal).toLocaleDateString('id-ID', {
			weekday: 'long',
			day: 'numeric',
			month: 'long',
			year: 'numeric'
		});
	}

	const awal = new Date(tanggalAwal).toLocaleDateString('id-ID', {
		day: 'numeric',
		month: 'short',
		year: 'numeric'
	});
	const akhir = new Date(tanggalAkhir).toLocaleDateString('id-ID', {
		day: 'numeric',
		month: 'short',
		year: 'numeric'
	});
	return `${awal} — ${akhir}`;
}
