Before the program can be tested, we have to fill the database with data. There does exist a version to seed the data directly from the Scryfall API, however this takes about 20 minutes (80K object long JSON file that has to be parsed)
Therefore i have provided a smaller JSON file containing less cards. In order to seed the database with this you can use
```
stack run -- --seedFromFile
```
If you want to wait the full 20 minutes you can run the command
It essentially is a Query Language, with similar properties as SQL. (It uses SQL at the `bottom` layer). So we have split the two `Sets` we can to into the following.
## Query
A query is a very simple way of saying, limit all the cards in magic the gathering with the set limitation. Example there exists a Query function `SuperType` that takes in a string. This function will then match all cards `type_line` and return only those containing a match.
## Operator
This is an operator between two sets. Example of an operator is the `intersect` operator. This takes two `Sets` and returns only the cards that exist in both. Example of a query using `intersect`:
This query will only return Legendary Creatures, (Note: In theory you can write only (SuperType Legendary Creature) and it will return the same, however it is recommended to limit the SuperType search to only one word)
## Avalible Query functions:
1. (`CmcLT` Int)
- This function will find all cards with converted mana cost less than the Integer provided as input
2. (`CmcMT` Int)
- This function will find all cards with converted mana cost more than the Integer provided as input
3. (`CmcEQ` Int)
- This function will find all cards with converted mana cost equal to the Integer
Here are some example queries and their expected results:
`((SuperType Creature) intersect (SuperType Legendary)) intersect (CmcLTEQ 3)` this query should return all Creatures that are also legendary with a converted mana cost less than or equal to three
`(SuperType Enchantment) intersect (SuperType Creature)` This should return all Enchantments that are also Creatures
`(SuperType Creature) minus (SuperType Legendary)` This should return all non legendary creatures.