Fix calendar timezone and group consulting slots by order

Calendar Timezone Fix:
- Add +07:00 timezone offset to date strings in create-google-meet-event
- Fixes 13:00 appearing as 20:00 in Google Calendar
- Now treats times as Asia/Jakarta time explicitly

Single Calendar Event per Order:
- handle-order-paid now creates ONE event for all slots in an order
- Uses first slot's start time and last slot's end time
- Updates all slots with the same meet_link
- Prevents duplicate calendar events for multi-slot orders

Admin Consulting Page Improvements:
- Group consulting slots by order_id
- Display as single row with continuous time range (start-end)
- Show session count when multiple slots (e.g., "2 sesi")
- Consistent with member-facing ConsultingHistory component
- Updated both desktop table and mobile card layouts
- Updated both upcoming and past tabs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
dwindown
2025-12-27 01:34:40 +07:00
parent 3f0acca658
commit 42d6bd98e2
3 changed files with 337 additions and 254 deletions

View File

@@ -202,8 +202,9 @@ serve(async (req: Request): Promise<Response> => {
console.log("Got access token");
// Build event data
const startDate = new Date(`${body.date}T${body.start_time}`);
const endDate = new Date(`${body.date}T${body.end_time}`);
// Include +07:00 timezone offset to ensure times are treated as Asia/Jakarta time
const startDate = new Date(`${body.date}T${body.start_time}+07:00`);
const endDate = new Date(`${body.date}T${body.end_time}+07:00`);
const eventData = {
summary: `Konsultasi: ${body.topic} - ${body.client_name}`,