import { NextResponse } from 'next/server';

export function validateFields<T extends Record<string, any>>(
  data: T,
  requiredFields: (keyof T)[]
): { isValid: boolean; errorResponse?: NextResponse } {
  for (const field of requiredFields) {
    const val = data[field];
    if (
      val === undefined ||
      val === null ||
      (typeof val === 'string' && val.trim() === '')
    ) {
      return {
        isValid: false,
        errorResponse: NextResponse.json(
          {
            success: false,
            error: `Missing or empty required field: ${String(field)}`,
          },
          { status: 400, headers: { 'Access-Control-Allow-Origin': '*' } }
        ),
      };
    }
  }
  return { isValid: true };
}

export function isValidEmail(email: string): boolean {
  if (!email || typeof email !== 'string') return false;
  return /^\S+@\S+\.\S+$/.test(email.trim());
}

export function isValidPassword(password: string, minLength = 6): boolean {
  if (!password || typeof password !== 'string') return false;
  return password.length >= minLength;
}
