import 'package:sortgame/data/fetch_data_helper.dart';
import 'package:sortgame/utils/tools.dart';

class DefaultGameSettings {
  // available game parameters codes
  static const String parameterCodeItemsCount = 'itemsCount';
  static const String parameterCodeThemeIndex = 'theme';
  static const List<String> availableParameters = [
    parameterCodeItemsCount,
    parameterCodeThemeIndex,
  ];

  // items count: available values
  static const int itemsCountValueLow = 5;
  static const int itemsCountValueMedium = 10;
  static const int itemsCountValueHigh = 15;
  static const int itemsCountValueVeryHigh = 20;
  static const List<int> allowedItemsCountValues = [
    itemsCountValueLow,
    itemsCountValueMedium,
    itemsCountValueHigh,
    itemsCountValueVeryHigh,
  ];
  // items count: default value
  static const int defaultItemsCountValue = itemsCountValueMedium;

  static const int defaultThemeValue = 0;

  static List<int> getAvailableValues(String parameterCode) {
    switch (parameterCode) {
      case 'itemsCount':
        return DefaultGameSettings.allowedItemsCountValues;
      case 'theme':
        final int count = FetchDataHelper().getThemes().length;
        return List<int>.generate(count, (i) => i);
    }

    printlog('Did not find any available value for game parameter "$parameterCode".');
    return [];
  }
}