-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquery.rs
74 lines (64 loc) · 1.94 KB
/
query.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
use serde_json::Value;
use std::collections::HashSet;
use serde::Deserialize;
#[allow(dead_code)]
#[derive(Debug, Deserialize, Clone, Default)]
pub struct AmountFilter {
pub total: Option<u8>,
pub min: Option<u8>,
pub max: Option<u8>,
}
#[allow(dead_code)]
#[derive(Debug, Deserialize, Clone, Default)]
pub struct MinMax {
pub max_player: Option<u8>,
pub min_player: Option<u8>,
pub min_squad: Option<u8>,
pub max_squad: Option<u8>,
}
#[allow(dead_code)]
#[derive(Debug, Deserialize, Clone, Default)]
pub struct Rarity {
pub allowed_rarities: Option<Vec<String>>,
pub conditions: Option<Value>,
}
#[allow(dead_code)]
#[derive(Debug, Deserialize, Clone, Default)]
pub struct Chemistry {
pub min_points_for_each_player: Option<u8>,
pub min_squad: Option<u8>,
}
#[allow(dead_code)]
#[derive(Debug, Deserialize, Clone, Default)]
pub struct LeagueNationTeamRequirement {
pub exact_in_squad: Option<u8>,
pub min_in_squad: Option<u8>,
pub max_in_squad: Option<u8>,
pub max_players_from_same: Option<u8>,
pub min_players_from_same: Option<u8>,
pub exact_players_from_same: Option<u8>,
}
#[allow(dead_code)]
#[derive(Debug, Deserialize, Clone, Default)]
pub struct SearchQuery {
pub group: Option<String>,
pub name: String,
pub positions: Vec<String>,
pub leagues: Option<LeagueNationTeamRequirement>,
pub nations: Option<LeagueNationTeamRequirement>,
pub teams: Option<LeagueNationTeamRequirement>,
pub ratings: Option<MinMax>,
pub chemistry: Option<Chemistry>,
pub rarity: Option<Rarity>,
pub quality: Option<Value>,
pub players_to_skip: Option<HashSet<u64>>,
pub hinted_players: Option<HashSet<String>>,
pub hinted_players_are_must: Option<bool>,
#[serde(default="default_max_results")]
pub max_results: u32,
pub max_running_time_sec: Option<u32>,
pub allow_random_positions: Option<bool>,
}
fn default_max_results() -> u32{
1_000_000
}