44 lines
1001 B
Java
44 lines
1001 B
Java
package tc.oc.api.docs;
|
|
|
|
import java.time.Instant;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
import com.google.common.collect.Lists;
|
|
import tc.oc.api.annotations.Serialize;
|
|
import tc.oc.api.docs.virtual.Document;
|
|
import tc.oc.api.docs.virtual.MapDoc;
|
|
import tc.oc.api.docs.virtual.Model;
|
|
|
|
@Serialize
|
|
public interface Tournament extends Model {
|
|
|
|
String name();
|
|
Instant start();
|
|
Instant end();
|
|
|
|
int min_players_per_match();
|
|
int max_players_per_match();
|
|
|
|
List<team.Id> accepted_teams();
|
|
|
|
default List<String> acceptedTeamNames() {
|
|
return Lists.transform(accepted_teams(), team.Id::name);
|
|
}
|
|
|
|
/**
|
|
* game type -> [map ids]
|
|
*
|
|
* Key is some kind of string identifying game type e.g. "core", "wool", "tdm"
|
|
*
|
|
* Value is a set of {@link MapDoc#_id()}
|
|
*/
|
|
List<MapClassification> map_classifications();
|
|
|
|
@Serialize
|
|
interface MapClassification extends Document {
|
|
String name();
|
|
Set<String> map_ids();
|
|
}
|
|
}
|