Skip to content

Commit 22daea0

Browse files
ahsanbagwanBrutus5000
authored andcommitted
#398 Entities for TMM
1 parent f6d9e44 commit 22daea0

6 files changed

Lines changed: 258 additions & 0 deletions

File tree

src/main/java/com/faforever/api/data/domain/Ladder1v1Map.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
@Immutable
2929
@Audit(action = Action.CREATE, logStatement = "Added map `{0}` with version `{1}` to the ladder pool", logExpressions = {"${ladder1v1Map.mapVersion.map.displayName}", "${ladder1v1Map.mapVersion.version}"})
3030
@Audit(action = Action.DELETE, logStatement = "Removed map `{0}` with version `{1}` from the ladder pool", logExpressions = {"${ladder1v1Map.mapVersion.map.displayName}", "${ladder1v1Map.mapVersion.version}"})
31+
@Deprecated // use MapPool instead
3132
public class Ladder1v1Map {
3233
private int id;
3334
private MapVersion mapVersion;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.faforever.api.data.domain;
2+
3+
import com.yahoo.elide.annotation.Include;
4+
import lombok.Setter;
5+
6+
import javax.persistence.Column;
7+
import javax.persistence.Entity;
8+
import javax.persistence.Table;
9+
10+
@Entity
11+
@Setter
12+
@Table(name = "leaderboard")
13+
@Include(rootLevel = true, type = Leaderboard.TYPE_NAME)
14+
public class Leaderboard extends AbstractEntity {
15+
16+
public static final String TYPE_NAME = "leaderboard";
17+
18+
private String technical_name;
19+
private String name_key;
20+
private String description_key;
21+
22+
@Column(name = "technical_name")
23+
public String getTechnical_name() {
24+
return technical_name;
25+
}
26+
27+
@Column(name = "name_key")
28+
public String getName_key() {
29+
return name_key;
30+
}
31+
32+
@Column(name = "description_key")
33+
public String getDescription_key() {
34+
return description_key;
35+
}
36+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.faforever.api.data.domain;
2+
3+
import com.yahoo.elide.annotation.Include;
4+
import lombok.Setter;
5+
6+
import javax.persistence.Column;
7+
import javax.persistence.Entity;
8+
import javax.persistence.FetchType;
9+
import javax.persistence.JoinColumn;
10+
import javax.persistence.ManyToOne;
11+
import javax.persistence.Table;
12+
import javax.persistence.Transient;
13+
14+
@Entity
15+
@Setter
16+
@Table(name = "leaderboard_rating")
17+
@Include(rootLevel = true, type = LeaderboardRating.TYPE_NAME)
18+
public class LeaderboardRating extends AbstractEntity implements OwnableEntity {
19+
20+
public static final String TYPE_NAME = "leaderboardRating";
21+
22+
private Double mean;
23+
private Double deviation;
24+
private double rating;
25+
private int totalGames;
26+
private int wonGames;
27+
private Leaderboard leaderboard;
28+
private Player player;
29+
30+
@ManyToOne(fetch = FetchType.LAZY)
31+
@JoinColumn(name = "player_id")
32+
public Player getPlayer() {
33+
return player;
34+
}
35+
36+
@ManyToOne(fetch = FetchType.LAZY)
37+
@JoinColumn(name = "leaderboard_id")
38+
public Leaderboard getLeaderboard() {
39+
return leaderboard;
40+
}
41+
42+
@Column(name = "total_games")
43+
public int getTotalGames() {
44+
return totalGames;
45+
}
46+
47+
@Column(name = "won_games")
48+
public int getWonGames() {
49+
return wonGames;
50+
}
51+
52+
@Column(name = "mean")
53+
public Double getMean() {
54+
return mean;
55+
}
56+
57+
@Column(name = "deviation")
58+
public Double getDeviation() {
59+
return deviation;
60+
}
61+
62+
@Column(name = "rating")
63+
public double getRating() {
64+
return rating;
65+
}
66+
67+
@Override
68+
@Transient
69+
public Login getEntityOwner() {
70+
return getPlayer();
71+
}
72+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.faforever.api.data.domain;
2+
3+
import com.yahoo.elide.annotation.Include;
4+
import lombok.Setter;
5+
import org.hibernate.annotations.Immutable;
6+
7+
import javax.persistence.CascadeType;
8+
import javax.persistence.Entity;
9+
import javax.persistence.JoinColumn;
10+
import javax.persistence.JoinTable;
11+
import javax.persistence.ManyToMany;
12+
import javax.persistence.Table;
13+
import javax.validation.constraints.NotNull;
14+
import java.util.Set;
15+
16+
@Entity
17+
@Setter
18+
@Table(name = "map_pool")
19+
@Include(rootLevel = true, type = "mapPool")
20+
@Immutable
21+
public class MapPool extends AbstractEntity {
22+
private String name;
23+
private Set<MapVersion> mapVersions;
24+
25+
@NotNull
26+
public String getName() {
27+
return name;
28+
}
29+
30+
@ManyToMany
31+
@JoinTable(name = "map_pool_map_version",
32+
joinColumns = @JoinColumn(name = "map_pool_id"),
33+
inverseJoinColumns = @JoinColumn(name = "map_version_id")
34+
)
35+
@NotNull
36+
public Set<MapVersion> getMapVersions() {
37+
return mapVersions;
38+
}
39+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.faforever.api.data.domain;
2+
3+
import com.faforever.api.data.checks.IsEntityOwner;
4+
import com.yahoo.elide.annotation.Include;
5+
import com.yahoo.elide.annotation.UpdatePermission;
6+
import lombok.Setter;
7+
8+
import javax.persistence.Column;
9+
import javax.persistence.Entity;
10+
import javax.persistence.FetchType;
11+
import javax.persistence.JoinColumn;
12+
import javax.persistence.ManyToOne;
13+
import javax.persistence.Table;
14+
import javax.validation.constraints.NotNull;
15+
16+
@Entity
17+
@Setter
18+
@Table(name = "matchmaker_queue")
19+
@Include(rootLevel = true, type = MatchmakerQueue.TYPE_NAME)
20+
public class MatchmakerQueue extends AbstractEntity {
21+
22+
public static final String TYPE_NAME = "matchmakerQueue";
23+
24+
private String technicalName;
25+
private String nameKey;
26+
private FeaturedMod featuredMod;
27+
private Leaderboard leaderboard;
28+
29+
@Column(name = "technical_name")
30+
@NotNull
31+
@UpdatePermission(expression = IsEntityOwner.EXPRESSION)
32+
public String getTechnicalName() {
33+
return technicalName;
34+
}
35+
36+
@Column(name = "name_key")
37+
@NotNull
38+
@UpdatePermission(expression = IsEntityOwner.EXPRESSION)
39+
public String getNameKey() {
40+
return nameKey;
41+
}
42+
43+
@ManyToOne(fetch = FetchType.LAZY)
44+
@JoinColumn(name = "featured_mod_id")
45+
public FeaturedMod getFeaturedMod() {
46+
return featuredMod;
47+
}
48+
49+
@ManyToOne(fetch = FetchType.LAZY)
50+
@JoinColumn(name = "leaderboard_id")
51+
public Leaderboard getLeaderboard() {
52+
return leaderboard;
53+
}
54+
55+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.faforever.api.data.domain;
2+
3+
import com.faforever.api.security.elide.permission.WriteMatchmakerMapCheck;
4+
import com.yahoo.elide.annotation.Audit;
5+
import com.yahoo.elide.annotation.Audit.Action;
6+
import com.yahoo.elide.annotation.CreatePermission;
7+
import com.yahoo.elide.annotation.DeletePermission;
8+
import com.yahoo.elide.annotation.Include;
9+
import lombok.Setter;
10+
11+
import javax.annotation.Nullable;
12+
import javax.persistence.Column;
13+
import javax.persistence.Entity;
14+
import javax.persistence.FetchType;
15+
import javax.persistence.JoinColumn;
16+
import javax.persistence.JoinTable;
17+
import javax.persistence.ManyToMany;
18+
import javax.persistence.ManyToOne;
19+
import javax.persistence.Table;
20+
import javax.validation.constraints.NotNull;
21+
import java.util.Set;
22+
23+
@CreatePermission(expression = WriteMatchmakerMapCheck.EXPRESSION)
24+
@DeletePermission(expression = WriteMatchmakerMapCheck.EXPRESSION)
25+
@Entity
26+
@Setter
27+
@Table(name = "matchmaker_queue_map_pool")
28+
@Include(rootLevel = true, type = MatchmakerQueueMapPool.TYPE_NAME)
29+
public class MatchmakerQueueMapPool extends AbstractEntity {
30+
31+
public static final String TYPE_NAME = "matchmakerQueueMapPool";
32+
33+
private MatchmakerQueue matchmakerQueue;
34+
private Double minRating;
35+
private Double maxRating;
36+
37+
@ManyToOne(fetch = FetchType.LAZY)
38+
@JoinColumn(name = "matchmaker_queue_id")
39+
public MatchmakerQueue getMatchmakerQueue() {
40+
return matchmakerQueue;
41+
}
42+
43+
@Nullable
44+
@Column(name = "min_rating")
45+
public Double getMinRating() {
46+
return minRating;
47+
}
48+
49+
@Nullable
50+
@Column(name = "max_rating")
51+
public Double getMaxRating() {
52+
return maxRating;
53+
}
54+
55+
}

0 commit comments

Comments
 (0)