added and updated models
This commit is contained in:
		
							
								
								
									
										61
									
								
								specs/models/finance/marketplace.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								specs/models/finance/marketplace.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
module marketplace
 | 
			
		||||
 | 
			
		||||
import base
 | 
			
		||||
import freeflowuniverse.herolib.data.ourtime
 | 
			
		||||
import asset // For AssetType
 | 
			
		||||
// ListingStatus, ListingType enums and Bid struct are used from the same module
 | 
			
		||||
 | 
			
		||||
// Listing represents a marketplace listing for an asset
 | 
			
		||||
pub struct Listing {
 | 
			
		||||
	base.Base // Provides id, created_at, updated_at
 | 
			
		||||
pub mut:
 | 
			
		||||
	title         string
 | 
			
		||||
	description   string
 | 
			
		||||
	asset_id      string
 | 
			
		||||
	asset_type    asset.AssetType // Enum from the asset model
 | 
			
		||||
	seller_id     string
 | 
			
		||||
	price         f64    // Initial price for fixed price, or starting price for auction
 | 
			
		||||
	currency      string
 | 
			
		||||
	listing_type  ListingType
 | 
			
		||||
	status        ListingStatus
 | 
			
		||||
	expires_at    ourtime.OurTime // Optional
 | 
			
		||||
	sold_at       ourtime.OurTime // Optional
 | 
			
		||||
	buyer_id      string          // Optional
 | 
			
		||||
	sale_price    f64             // Optional
 | 
			
		||||
	bids          []Bid           // List of bids for auction type listings
 | 
			
		||||
	tags          []string
 | 
			
		||||
	image_url     string          // Optional
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ListingStatus defines the status of a marketplace listing
 | 
			
		||||
pub enum ListingStatus {
 | 
			
		||||
	active
 | 
			
		||||
	sold
 | 
			
		||||
	cancelled
 | 
			
		||||
	expired
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ListingType defines the type of marketplace listing
 | 
			
		||||
pub enum ListingType {
 | 
			
		||||
	fixed_price
 | 
			
		||||
	auction
 | 
			
		||||
	exchange
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Bid represents a bid on an auction listing
 | 
			
		||||
pub struct Bid {
 | 
			
		||||
pub mut:
 | 
			
		||||
	listing_id  string // ID of the listing this bid belongs to
 | 
			
		||||
	bidder_id   u32
 | 
			
		||||
	amount      f64
 | 
			
		||||
	currency    string
 | 
			
		||||
	status      BidStatus
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// BidStatus defines the status of a bid on an auction listing
 | 
			
		||||
pub enum BidStatus {
 | 
			
		||||
	active
 | 
			
		||||
	accepted
 | 
			
		||||
	rejected
 | 
			
		||||
	cancelled
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user