preps historic events management
This commit is contained in:
@@ -41,6 +41,42 @@ pub fn create_pool() -> Pool {
|
||||
}
|
||||
|
||||
|
||||
/// Every possible update which can happen during a query
|
||||
#[derive(Serialize, Debug)]
|
||||
pub enum Update {
|
||||
Wealth(Wealth),
|
||||
ItemAdded(Item),
|
||||
ItemRemoved(Item),
|
||||
ClaimAdded(Claim),
|
||||
ClaimRemoved(Claim),
|
||||
}
|
||||
|
||||
/// Every value which can be queried
|
||||
#[derive(Debug)]
|
||||
pub enum Value {
|
||||
Player(Player),
|
||||
Item(Item),
|
||||
Claim(Claim),
|
||||
ItemList(Vec<Item>),
|
||||
ClaimList(Vec<Claim>),
|
||||
PlayerList(Vec<Player>),
|
||||
Notifications(Vec<String>),
|
||||
}
|
||||
|
||||
impl serde::Serialize for Value {
|
||||
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
|
||||
match self {
|
||||
Value::Player(v) => v.serialize(serializer),
|
||||
Value::Item(v) => v.serialize(serializer),
|
||||
Value::Claim(v) => v.serialize(serializer),
|
||||
Value::ItemList(v) => v.serialize(serializer),
|
||||
Value::ClaimList(v) => v.serialize(serializer),
|
||||
Value::PlayerList(v) => v.serialize(serializer),
|
||||
Value::Notifications(v) => v.serialize(serializer),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Sells a single item inside a transaction
|
||||
///
|
||||
/// # Returns
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
pub mod claim;
|
||||
pub mod item;
|
||||
pub mod player;
|
||||
pub mod history;
|
||||
|
||||
pub use claim::Claim;
|
||||
pub use item::Item;
|
||||
|
||||
@@ -7,6 +7,16 @@ table! {
|
||||
}
|
||||
}
|
||||
|
||||
table! {
|
||||
history (id) {
|
||||
id -> Integer,
|
||||
player_id -> Integer,
|
||||
event_date -> Timestamp,
|
||||
text -> Text,
|
||||
updates -> Nullable<Text>,
|
||||
}
|
||||
}
|
||||
|
||||
table! {
|
||||
items (id) {
|
||||
id -> Integer,
|
||||
@@ -46,11 +56,13 @@ table! {
|
||||
|
||||
joinable!(claims -> looted (loot_id));
|
||||
joinable!(claims -> players (player_id));
|
||||
joinable!(history -> players (player_id));
|
||||
joinable!(looted -> players (owner_id));
|
||||
joinable!(notifications -> players (player_id));
|
||||
|
||||
allow_tables_to_appear_in_same_query!(
|
||||
claims,
|
||||
history,
|
||||
items,
|
||||
looted,
|
||||
notifications,
|
||||
|
||||
Reference in New Issue
Block a user