38 lines
958 B
V
38 lines
958 B
V
module datamodel
|
|
|
|
// I can bid for infra, and optionally get accepted
|
|
@[heap]
|
|
pub struct Bid {
|
|
pub mut:
|
|
id u32
|
|
customer_id u32 // links back to customer for this capacity (user on ledger)
|
|
compute_slices_nr int // nr of slices I need in 1 machine
|
|
compute_slice_price f64 // price per 1 GB slice I want to accept
|
|
storage_slices_nr int
|
|
storage_slice_price f64 // price per 1 GB storage slice I want to accept
|
|
storage_slices_nr int
|
|
status BidStatus
|
|
obligation bool // if obligation then will be charged and money needs to be in escrow, otherwise its an intent
|
|
start_date u32 // epoch
|
|
end_date u32
|
|
signature_user string // signature as done by a user/consumer to validate their identity and intent
|
|
billing_period BillingPeriod
|
|
}
|
|
|
|
pub enum BidStatus {
|
|
pending
|
|
confirmed
|
|
assigned
|
|
cancelled
|
|
done
|
|
}
|
|
|
|
|
|
pub enum BillingPeriod {
|
|
hourly
|
|
monthly
|
|
yearly
|
|
biannually
|
|
triannually
|
|
}
|