skyblock_rs/objects/
auction.rs1use crate::objects::profile::PartialProfile;
2use crate::objects::items::Item;
3
4#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
5pub struct Claim {
6 pub claimed: bool,
7 }
9
10#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
11#[serde(transparent)]
12pub struct PartialAuction(pub String);
13
14#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
15pub struct Auction {
16 pub uuid: PartialAuction,
19 pub auctioneer: PartialProfile,
21 pub coop: Vec<PartialProfile>,
23 pub start: i64,
25 pub end: i64,
28 #[serde(flatten)]
30 pub item: Item,
31 #[serde(flatten)]
33 pub bids: Bids,
34 #[serde(flatten)]
37 pub claim: Claim,
38}
39
40#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
42pub struct Bids {
43 #[serde(rename = "highest_bid_amount")]
45 pub highest: i64,
46 #[serde(rename = "starting_bid")]
48 pub starting: i64,
49 pub bids: Vec<Bid>,
51}
52
53#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
55pub struct Bid {
56 pub auction_id: PartialAuction,
58 pub bidder: PartialProfile,
60 pub amount: i64,
62 pub timestamp: i64,
64}
65
66#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Clone)]
68pub struct GlobalAuctions {
69 pub page: usize,
71 #[serde(rename = "totalPages")]
73 pub total_pages: usize,
74 #[serde(rename = "totalAuctions")]
76 pub total_auctions: usize,
77 #[serde(rename = "lastUpdated")]
79 pub last_update: u64,
80 pub auctions: Vec<Auction>,
82}
83
84#[cfg(test)]
86#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Clone)]
87pub struct SearchedAuctions {
88 pub auctions: Vec<Auction>,
89}