updates table schema
This commit is contained in:
Binary file not shown.
@@ -1,2 +1,3 @@
|
||||
DROP TABLE items;
|
||||
DROP TABLE looted;
|
||||
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
-- The global inventory of items
|
||||
CREATE TABLE items (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
name VARCHAR NOT NULL,
|
||||
base_price INTEGER NOT NULL
|
||||
);
|
||||
|
||||
-- The items that have been looted
|
||||
CREATE TABLE looted (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
name VARCHAR NOT NULL,
|
||||
base_price INTEGER NOT NULL,
|
||||
owner_id INTEGER NOT NULL,
|
||||
FOREIGN KEY (owner_id) REFERENCES players(id)
|
||||
);
|
||||
|
||||
@@ -7,3 +7,5 @@ CREATE TABLE players (
|
||||
gp INTEGER DEFAULT 0 NOT NULL,
|
||||
pp INTEGER DEFAULT 0 NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO players (id, name) VALUES (0, 'Groupe');
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
DROP TABLE looted;
|
||||
@@ -1,8 +0,0 @@
|
||||
CREATE TABLE looted (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
player_id INTEGER NOT NULL,
|
||||
item_id INTEGER NOT NULL,
|
||||
acquired_date DATE NOT NULL,
|
||||
FOREIGN KEY (player_id) REFERENCES players(id),
|
||||
FOREIGN KEY (item_id) REFERENCES items(id)
|
||||
);
|
||||
1
lootalot_db/migrations/2019-06-21-113950_claims/down.sql
Normal file
1
lootalot_db/migrations/2019-06-21-113950_claims/down.sql
Normal file
@@ -0,0 +1 @@
|
||||
DROP TABLE claims;
|
||||
8
lootalot_db/migrations/2019-06-21-113950_claims/up.sql
Normal file
8
lootalot_db/migrations/2019-06-21-113950_claims/up.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
CREATE TABLE claims (
|
||||
id INTEGER PRIMARY KEY NOT NULL,
|
||||
player_id INTEGER NOT NULL,
|
||||
loot_id INTEGER NOT NULL,
|
||||
resolve INTEGER NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY (player_id) REFERENCES players(id),
|
||||
FOREIGN KEY (loot_id) REFERENCES looted(id)
|
||||
);
|
||||
@@ -23,18 +23,14 @@ impl Player {
|
||||
Ok(players.load::<Self>(conn)?)
|
||||
}
|
||||
|
||||
pub fn fetch_chest(player: i32, conn: &SqliteConnection) -> QueryResult<Vec<Item>> {
|
||||
let owned = {
|
||||
use schema::looted::dsl::*;
|
||||
looted.filter(player_id.eq(player)).select(item_id).load::<i32>(conn)?
|
||||
};
|
||||
pub fn fetch_chest(player_id: i32, conn: &SqliteConnection) -> QueryResult<Vec<Item>> {
|
||||
use schema::looted::dsl::*;
|
||||
let owned = looted
|
||||
.filter(owner_id.eq(player_id))
|
||||
.select((id, name, base_price))
|
||||
.load::<Item>(conn)?;
|
||||
dbg!(&owned);
|
||||
let chest = {
|
||||
use schema::items::dsl::*;
|
||||
items.filter(id.eq_any(owned)).load::<Item>(conn)?
|
||||
};
|
||||
dbg!(&chest);
|
||||
Ok(chest)
|
||||
Ok(owned)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
table! {
|
||||
claims (id) {
|
||||
id -> Integer,
|
||||
player_id -> Integer,
|
||||
loot_id -> Integer,
|
||||
resolve -> Integer,
|
||||
}
|
||||
}
|
||||
|
||||
table! {
|
||||
items (id) {
|
||||
id -> Integer,
|
||||
@@ -9,9 +18,9 @@ table! {
|
||||
table! {
|
||||
looted (id) {
|
||||
id -> Integer,
|
||||
player_id -> Integer,
|
||||
item_id -> Integer,
|
||||
acquired_date -> Date,
|
||||
name -> Text,
|
||||
base_price -> Integer,
|
||||
owner_id -> Integer,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +36,13 @@ table! {
|
||||
}
|
||||
}
|
||||
|
||||
joinable!(looted -> items (item_id));
|
||||
joinable!(looted -> players (player_id));
|
||||
joinable!(claims -> looted (loot_id));
|
||||
joinable!(claims -> players (player_id));
|
||||
joinable!(looted -> players (owner_id));
|
||||
|
||||
allow_tables_to_appear_in_same_query!(items, looted, players,);
|
||||
allow_tables_to_appear_in_same_query!(
|
||||
claims,
|
||||
items,
|
||||
looted,
|
||||
players,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user