import { env } from '$env/dynamic/private';
import { error } from '@sveltejs/kit';
import type { CalendarEvent, Exam } from '$lib/data/CMSDataType';
import dayjs from 'dayjs';
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ fetch }) => {
	const res = await fetch(env.API_QUALIFYING_URL + '/qualifying');
	if (!res.ok) throw error(res.status, 'ไม่สามารถอ่านข้อมูลการสอบได้');
	const exams: Exam[] = await res.json();
	const events: CalendarEvent[] = [];

	exams.forEach((ex) => {
		const { id, title, announcement_startDate } = ex;
		const url = '/qualifying/' + id;
		ex.date = dayjs(announcement_startDate).format('DD MMM BBBB');
		ex.image = ex.image ? ex.image : '/images/exam_place_holder.png';
		if (!ex.announcementExam) return; //ignore other date for normal post

		if (ex.register_startDate) {
			const start = ex.register_startDate;
			const end = dayjs(ex.register_endDate).add(1, 'day').format('YYYY-MM-DD');
			events.push({ id, title: 'สมัคร:' + title, start, end, url, backgroundColor: '#67a1ff4a' });
		}
		if (ex.payment_startDate) {
			const start = ex.payment_startDate;
			const end = dayjs(ex.payment_endDate).add(1, 'day').format('YYYY-MM-DD');
			events.push({ id, title: 'ชำระเงิน:' + title, start, end, url, backgroundColor: '#D2B4DE' });
		}
		if (ex.examDate) {
			const start = ex.examDate;
			events.push({ id, title: 'วันสอบ:' + title, start, url, backgroundColor: '#a2d9ce8f' });
		}
	});
	return { exams, events };
};
