import 'dart:collection';

class Card {
  final String deck;
  final String identifier;

  Card(this.deck, this.identifier);
  Card.fromString(String cardData)
      : deck = cardData.split(" ")[0],
        identifier = cardData.split(" ")[1];

  bool operator ==(Object other) {
    if (other is! Card) return false;
    Card o = other as Card;
    return deck == o.deck && identifier == o.identifier;
  }

  int get hashCode => 37 * (deck.hashCode + 41 * identifier.hashCode);

  static final List<Card> All = new UnmodifiableListView<Card>([
    new Card("classic", "c1"),
    new Card("classic", "c2"),
    new Card("classic", "c3"),
    new Card("classic", "c4"),
    new Card("classic", "c5"),
    new Card("classic", "c6"),
    new Card("classic", "c7"),
    new Card("classic", "c8"),
    new Card("classic", "c9"),
    new Card("classic", "c10"),
    new Card("classic", "cj"),
    new Card("classic", "cq"),
    new Card("classic", "ck"),
    new Card("classic", "d1"),
    new Card("classic", "d2"),
    new Card("classic", "d3"),
    new Card("classic", "d4"),
    new Card("classic", "d5"),
    new Card("classic", "d6"),
    new Card("classic", "d7"),
    new Card("classic", "d8"),
    new Card("classic", "d9"),
    new Card("classic", "d10"),
    new Card("classic", "dj"),
    new Card("classic", "dq"),
    new Card("classic", "dk"),
    new Card("classic", "h1"),
    new Card("classic", "h2"),
    new Card("classic", "h3"),
    new Card("classic", "h4"),
    new Card("classic", "h5"),
    new Card("classic", "h6"),
    new Card("classic", "h7"),
    new Card("classic", "h8"),
    new Card("classic", "h9"),
    new Card("classic", "h10"),
    new Card("classic", "hj"),
    new Card("classic", "hq"),
    new Card("classic", "hk"),
    new Card("classic", "s1"),
    new Card("classic", "s2"),
    new Card("classic", "s3"),
    new Card("classic", "s4"),
    new Card("classic", "s5"),
    new Card("classic", "s6"),
    new Card("classic", "s7"),
    new Card("classic", "s8"),
    new Card("classic", "s9"),
    new Card("classic", "s10"),
    new Card("classic", "sj"),
    new Card("classic", "sq"),
    new Card("classic", "sk"),
  ]);

  toString() => "${deck} ${identifier}";

  get string => toString();
}
