class AppConstants {
  AppConstants._();

  // Database
  static const String databaseName = 'bully_targets.db';
  static const int databaseVersion = 6;

  // Tables
  static const String sessionsTable = 'sessions';
  static const String targetAnalysesTable = 'target_analyses';
  static const String shotsTable = 'shots';
  static const String weaponsTable = 'weapons';
  static const String maintenanceTable = 'weapon_maintenance';

  // Image processing
  static const double minImpactRadius = 2.0;
  static const double maxImpactRadius = 20.0;
  static const int gaussianBlurSize = 5;
  static const double houghCirclesDp = 1.0;
  static const double houghCirclesMinDist = 20.0;
  static const int houghCirclesParam1 = 50;
  static const int houghCirclesParam2 = 30;

  // Scoring zones for concentric targets (10 zones, from center)
  static const List<double> concentricZoneRadii = [
    0.05, // Zone 10 (bullseye)
    0.10, // Zone 9
    0.15, // Zone 8
    0.20, // Zone 7
    0.25, // Zone 6
    0.30, // Zone 5
    0.40, // Zone 4
    0.50, // Zone 3
    0.65, // Zone 2
    0.80, // Zone 1
  ];

  // Silhouette scoring zones (as percentage of height from top)
  static const Map<String, double> silhouetteZones = {
    'head': 0.15,      // Top 15% = head = 5 points
    'center': 0.45,    // 15-45% = center mass = 5 points
    'body': 0.70,      // 45-70% = body = 4 points
    'lower': 1.0,      // 70-100% = lower = 3 points
  };

  // UI
  static const double defaultPadding = 16.0;
  static const double smallPadding = 8.0;
  static const double largePadding = 24.0;
  static const double borderRadius = 12.0;
}
