/// UI 常量整合导出
///
/// 统一导出所有设计 token，方便使用
/// 使用方式: import 'ui/shared/ui_constants.dart';

// 导出颜色系统
export '../../core/constants/app_colors.dart';

// 导出主题配置 (包含 AppTextStyles, AppSpacing, AppRadius, AppBreakpoints)
export '../../core/theme/app_theme.dart';

/// 表单验证器
///
/// 提供常用的表单验证方法
class Validators {
  Validators._();

  /// 金额验证
  static String? amount(String? value) {
    if (value == null || value.isEmpty) {
      return '请输入金额';
    }
    final amount = double.tryParse(value);
    if (amount == null || amount <= 0) {
      return '请输入有效金额';
    }
    return null;
  }

  /// 价格验证
  static String? price(String? value) {
    if (value == null || value.isEmpty) {
      return '请输入价格';
    }
    final price = double.tryParse(value);
    if (price == null || price <= 0) {
      return '请输入有效价格';
    }
    return null;
  }

  /// 数量验证
  static String? quantity(String? value) {
    if (value == null || value.isEmpty) {
      return '请输入数量';
    }
    final quantity = double.tryParse(value);
    if (quantity == null || quantity <= 0) {
      return '请输入有效数量';
    }
    return null;
  }

  /// 必填字段验证
  static String? required(String? value, String fieldName) {
    if (value == null || value.isEmpty) {
      return '请输入$fieldName';
    }
    return null;
  }

  /// 用户名验证
  static String? username(String? value) {
    if (value == null || value.isEmpty) {
      return '请输入用户名';
    }
    if (value.length < 3) {
      return '用户名至少 3 个字符';
    }
    return null;
  }

  /// 密码验证
  static String? password(String? value) {
    if (value == null || value.isEmpty) {
      return '请输入密码';
    }
    if (value.length < 6) {
      return '密码至少 6 个字符';
    }
    return null;
  }

  /// 邮箱验证
  static String? email(String? value) {
    if (value == null || value.isEmpty) {
      return '请输入邮箱';
    }
    final emailRegex = RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$');
    if (!emailRegex.hasMatch(value)) {
      return '请输入有效的邮箱地址';
    }
    return null;
  }
}
