import { PrismaClient } from '@prisma/client';
import { v4 as uuidv4 } from 'uuid';

// Initialize Prisma client
const prisma = new PrismaClient();

export default defineEventHandler(async (event) => {
  try {
    // Parse the request body
    const body = await readBody(event);
    
    // Validate required fields
    if (!body.formName) {
      return {
        success: false,
        error: 'Form name is required'
      };
    }
    
    // Create a new form in the database
    const form = await prisma.form.create({
      data: {
        formUUID: uuidv4(),
        formName: body.formName,
        formDescription: body.formDescription || null,
        formComponents: body.components || [],
        formStatus: body.status || 'active',
        customScript: body.customScript || null,
        customCSS: body.customCSS || null,
        formEvents: body.formEvents || null,
        scriptMode: body.scriptMode || 'safe',
        submitButton: body.submitButton || null,
        formCategory: body.formCategory && body.formCategory.trim() ? body.formCategory.trim() : null,
        formTags: body.formTags || null,
        formGroup: body.formGroup && body.formGroup.trim() ? body.formGroup.trim() : null,
        formCreatedBy: event.context.user?.userID || undefined,
      }
    });
    
    return {
      success: true,
      form
    };
  } catch (error) {
    console.error('Error creating form:', error);
    
    return {
      success: false,
      error: 'Failed to create form',
      details: process.env.NODE_ENV === 'development' ? error.message : undefined
    };
  }
}); 