'use server' import { revalidatePath } from 'next/cache' import { auth } from '@/lib/auth' import { eventRegistrationService } from '@/services/events/event-registration.service' import { ValidationError, NotFoundError, ConflictError, } from '@/services/errors' export async function registerForEvent(eventId: string) { try { const session = await auth() if (!session?.user?.id) { return { success: false, error: 'Vous devez être connecté pour vous inscrire' } } const registration = await eventRegistrationService.validateAndRegisterUser( session.user.id, eventId ) revalidatePath('/events') revalidatePath('/') return { success: true, message: 'Inscription réussie', data: registration } } catch (error) { console.error('Registration error:', error) if (error instanceof ValidationError || error instanceof ConflictError) { return { success: false, error: error.message } } if (error instanceof NotFoundError) { return { success: false, error: error.message } } return { success: false, error: 'Une erreur est survenue lors de l\'inscription' } } } export async function unregisterFromEvent(eventId: string) { try { const session = await auth() if (!session?.user?.id) { return { success: false, error: 'Vous devez être connecté' } } await eventRegistrationService.unregisterUserFromEvent( session.user.id, eventId ) revalidatePath('/events') revalidatePath('/') return { success: true, message: 'Inscription annulée' } } catch (error) { console.error('Unregistration error:', error) return { success: false, error: 'Une erreur est survenue lors de l\'annulation' } } }