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 }