'use server'; import { z } from 'zod'; import { authActionClient } from '@kit/next/safe-action'; import { getLogger } from '@kit/shared/logger'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { CreateEventSchema, EventRegistrationSchema, CreateHolidayPassSchema, } from '../../schema/event.schema'; import { createEventManagementApi } from '../api'; export const createEvent = authActionClient .inputSchema(CreateEventSchema) .action(async ({ parsedInput: input, ctx }) => { const client = getSupabaseServerClient(); const logger = await getLogger(); const api = createEventManagementApi(client); logger.info({ name: 'event.create' }, 'Creating event...'); const result = await api.createEvent(input); logger.info({ name: 'event.create' }, 'Event created'); return { success: true, data: result }; }); export const registerForEvent = authActionClient .inputSchema(EventRegistrationSchema) .action(async ({ parsedInput: input, ctx }) => { const client = getSupabaseServerClient(); const logger = await getLogger(); const api = createEventManagementApi(client); logger.info({ name: 'event.register' }, 'Registering for event...'); const result = await api.registerForEvent(input); logger.info({ name: 'event.register' }, 'Registered for event'); return { success: true, data: result }; }); export const createHolidayPass = authActionClient .inputSchema(CreateHolidayPassSchema) .action(async ({ parsedInput: input, ctx }) => { const client = getSupabaseServerClient(); const logger = await getLogger(); const api = createEventManagementApi(client); logger.info({ name: 'event.createHolidayPass' }, 'Creating holiday pass...'); const result = await api.createHolidayPass(input); logger.info({ name: 'event.createHolidayPass' }, 'Holiday pass created'); return { success: true, data: result }; });