support arbitrary player groups
See #42 it should be possible to assign players to arbitrary groups (not just nationalities) such as WCS affiliations.
supports issue #43
the most general way for "groups" would mean that teams are groups, nationalities are groups. I guess then affiliation history would also be useful, like we have team history now.
perhaps player race can handled, for the few cases of race switches (TLO)?
I propose to add a group table with a many-to-many relationship with players. This can be used for all sorts of things. We can auto-generate some of them (continents, say) and leave others manual.
- Continents and regions (NA, EU, KR), can be autogenerated for most, manually overridden for some
- WCS affiliation, has to be manual
- Association (ESF, KeSPA), can be autogenerated from team membership data
- others?
Both https://github.com/TheBB/aligulac/issues/50 and https://github.com/TheBB/aligulac/issues/43 can be solved this way. I'm going to close https://github.com/TheBB/aligulac/issues/43 since I think this issue is more general, while https://github.com/TheBB/aligulac/issues/50 is an interface thing.
The connecting table must at least have an extra override boolean field to allow us to manually override automatic generation in those cases where it's necessary.
Actually now that I think of it, we can use the team functionality for this. Just add another field to the team table (a boolean called 'team', true for all current entries) and rename it 'groups' instead. Recode all the current team code to only consider groups which are teams. And there you have it. This will also support transit between groups, so players changing WCS regions and so on.