validate method

Map<String, dynamic> validate()

Implementation

Map<String, dynamic> validate() {
  final errors = <String>[];
  final warnings = <String>[];

  // Required database configuration
  if (table.isEmpty) errors.add('AUTH_TABLE is required');
  if (emailColumn.isEmpty) errors.add('AUTH_EMAIL_COLUMN is required');
  if (passwordColumn.isEmpty) errors.add('AUTH_PASSWORD_COLUMN is required');

  // Provider configuration warnings
  if (!isGoogleConfigured) {
    warnings.add(
        'Google OAuth not configured (GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET required)');
  }
  if (!isGitHubConfigured) {
    warnings.add(
        'GitHub OAuth not configured (GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET required)');
  }
  if (!isFacebookConfigured) {
    warnings.add(
        'Facebook OAuth not configured (FACEBOOK_CLIENT_ID and FACEBOOK_CLIENT_SECRET required)');
  }
  if (!isAppleConfigured) {
    warnings.add(
        'Apple Sign In not configured (APPLE_CLIENT_ID, APPLE_TEAM_ID, APPLE_KEY_ID, and APPLE_PRIVATE_KEY required)');
  }

  // JWT security warning
  if (jwtSecret == null ||
      jwtSecret!.isEmpty ||
      jwtSecret == 'your-default-jwt-secret-change-in-production') {
    warnings
        .add('Using default JWT secret - change JWT_SECRET in production');
  }

  return {
    'valid': errors.isEmpty,
    'errors': errors,
    'warnings': warnings,
    'configuredProviders': configuredProviders,
  };
}