import 'package:flutter/foundation.dart';

class Data extends ChangeNotifier {
  // Language
  String _lang = '';

  // randomization
  Map _word;
  List _otherWords = [];
  List _images = [];
  final int _recentWordsCount = 20;
  List _recentWords = [];

  // game data
  int _questionsCount = 0;
  int _goodAnswers = 0;
  int _wrongAnswers = 0;

  String get lang => _lang;

  set updateLang(String value) {
    _lang = value;
    notifyListeners();
  }

  Map get word => _word;

  set updateWord(Map value) {
    _word = value;
    if (value != null && value['key'] != '') {
      _recentWords.insert(0, value['key']);
      _recentWords = _recentWords.take(_recentWordsCount).toList();
    }
    notifyListeners();
  }

  bool isRecentlyPicked(String word) {
    return _recentWords.contains(word);
  }

  List get otherWords => _otherWords;

  set updateOtherWords(List words) {
    _otherWords = words;
    notifyListeners();
  }

  List get images => _images;

  set updateImages(List images) {
    _images = images;
    notifyListeners();
  }

  void resetGame() {
    _word = null;
    _otherWords = [];
    _images = [];
    _questionsCount = 0;
    _goodAnswers = 0;
    _wrongAnswers = 0;
    notifyListeners();
  }

  int get questionsCount => _questionsCount;

  set updateQuestionsCount(int value) {
    _questionsCount = value;
    notifyListeners();
  }

  int get goodAnswers => _goodAnswers;

  set updateGoodAnswers(int value) {
    _goodAnswers = value;
    notifyListeners();
  }

  int get wrongAnswers => _wrongAnswers;

  set updateWrongAnswers(int value) {
    _wrongAnswers = value;
    notifyListeners();
  }
}