fixes
This commit is contained in:
@@ -103,7 +103,10 @@ impl MarketplaceController {
|
||||
AssetType::NFT.as_str(),
|
||||
AssetType::RealEstate.as_str(),
|
||||
AssetType::IntellectualProperty.as_str(),
|
||||
AssetType::PhysicalAsset.as_str(),
|
||||
AssetType::Commodity.as_str(),
|
||||
AssetType::Share.as_str(),
|
||||
AssetType::Bond.as_str(),
|
||||
AssetType::Other.as_str(),
|
||||
]);
|
||||
|
||||
render_template(&tmpl, "marketplace/listings.html", &context)
|
||||
@@ -140,15 +143,28 @@ impl MarketplaceController {
|
||||
if let Some(listing) = listing {
|
||||
// Get similar listings (same asset type, active)
|
||||
let similar_listings: Vec<&Listing> = listings.iter()
|
||||
.filter(|l| l.asset_type == listing.asset_type &&
|
||||
l.status == ListingStatus::Active &&
|
||||
.filter(|l| l.asset_type == listing.asset_type &&
|
||||
l.status == ListingStatus::Active &&
|
||||
l.id != listing.id)
|
||||
.take(4)
|
||||
.collect();
|
||||
|
||||
// Get highest bid amount and minimum bid for auction listings
|
||||
let (highest_bid_amount, minimum_bid) = if listing.listing_type == ListingType::Auction {
|
||||
if let Some(bid) = listing.highest_bid() {
|
||||
(Some(bid.amount), bid.amount + 1.0)
|
||||
} else {
|
||||
(None, listing.price + 1.0)
|
||||
}
|
||||
} else {
|
||||
(None, 0.0)
|
||||
};
|
||||
|
||||
context.insert("active_page", &"marketplace");
|
||||
context.insert("listing", listing);
|
||||
context.insert("similar_listings", &similar_listings);
|
||||
context.insert("highest_bid_amount", &highest_bid_amount);
|
||||
context.insert("minimum_bid", &minimum_bid);
|
||||
|
||||
// Add current user info for bid/purchase forms
|
||||
let user_id = "user-123";
|
||||
@@ -311,7 +327,7 @@ impl MarketplaceController {
|
||||
tmpl: web::Data<Tera>,
|
||||
path: web::Path<String>,
|
||||
) -> Result<HttpResponse> {
|
||||
let listing_id = path.into_inner();
|
||||
let _listing_id = path.into_inner();
|
||||
|
||||
// In a real application, we would:
|
||||
// 1. Find the listing in the database
|
||||
@@ -344,7 +360,10 @@ impl MarketplaceController {
|
||||
AssetType::NFT => 500.0 + (i as f64 * 100.0),
|
||||
AssetType::RealEstate => 50000.0 + (i as f64 * 10000.0),
|
||||
AssetType::IntellectualProperty => 2000.0 + (i as f64 * 500.0),
|
||||
AssetType::PhysicalAsset => 1000.0 + (i as f64 * 200.0),
|
||||
AssetType::Commodity => 1000.0 + (i as f64 * 200.0),
|
||||
AssetType::Share => 300.0 + (i as f64 * 50.0),
|
||||
AssetType::Bond => 1500.0 + (i as f64 * 300.0),
|
||||
AssetType::Other => 800.0 + (i as f64 * 150.0),
|
||||
};
|
||||
|
||||
let mut listing = Listing::new(
|
||||
@@ -382,7 +401,10 @@ impl MarketplaceController {
|
||||
AssetType::NFT => 400.0 + (i as f64 * 50.0),
|
||||
AssetType::RealEstate => 40000.0 + (i as f64 * 5000.0),
|
||||
AssetType::IntellectualProperty => 1500.0 + (i as f64 * 300.0),
|
||||
AssetType::PhysicalAsset => 800.0 + (i as f64 * 100.0),
|
||||
AssetType::Commodity => 800.0 + (i as f64 * 100.0),
|
||||
AssetType::Share => 250.0 + (i as f64 * 40.0),
|
||||
AssetType::Bond => 1200.0 + (i as f64 * 250.0),
|
||||
AssetType::Other => 600.0 + (i as f64 * 120.0),
|
||||
};
|
||||
|
||||
let mut listing = Listing::new(
|
||||
@@ -435,7 +457,10 @@ impl MarketplaceController {
|
||||
AssetType::NFT => 600.0 + (i as f64 * 150.0),
|
||||
AssetType::RealEstate => 60000.0 + (i as f64 * 15000.0),
|
||||
AssetType::IntellectualProperty => 2500.0 + (i as f64 * 600.0),
|
||||
AssetType::PhysicalAsset => 1200.0 + (i as f64 * 300.0),
|
||||
AssetType::Commodity => 1200.0 + (i as f64 * 300.0),
|
||||
AssetType::Share => 350.0 + (i as f64 * 70.0),
|
||||
AssetType::Bond => 1800.0 + (i as f64 * 350.0),
|
||||
AssetType::Other => 1000.0 + (i as f64 * 200.0),
|
||||
};
|
||||
|
||||
let listing = Listing::new(
|
||||
@@ -469,7 +494,10 @@ impl MarketplaceController {
|
||||
AssetType::NFT => 550.0 + (i as f64 * 120.0),
|
||||
AssetType::RealEstate => 55000.0 + (i as f64 * 12000.0),
|
||||
AssetType::IntellectualProperty => 2200.0 + (i as f64 * 550.0),
|
||||
AssetType::PhysicalAsset => 1100.0 + (i as f64 * 220.0),
|
||||
AssetType::Commodity => 1100.0 + (i as f64 * 220.0),
|
||||
AssetType::Share => 320.0 + (i as f64 * 60.0),
|
||||
AssetType::Bond => 1650.0 + (i as f64 * 330.0),
|
||||
AssetType::Other => 900.0 + (i as f64 * 180.0),
|
||||
};
|
||||
|
||||
let sale_price = price * 0.95; // Slight discount on sale
|
||||
@@ -515,7 +543,10 @@ impl MarketplaceController {
|
||||
AssetType::NFT => 450.0 + (i as f64 * 80.0),
|
||||
AssetType::RealEstate => 45000.0 + (i as f64 * 8000.0),
|
||||
AssetType::IntellectualProperty => 1800.0 + (i as f64 * 400.0),
|
||||
AssetType::PhysicalAsset => 900.0 + (i as f64 * 180.0),
|
||||
AssetType::Commodity => 900.0 + (i as f64 * 180.0),
|
||||
AssetType::Share => 280.0 + (i as f64 * 45.0),
|
||||
AssetType::Bond => 1350.0 + (i as f64 * 270.0),
|
||||
AssetType::Other => 750.0 + (i as f64 * 150.0),
|
||||
};
|
||||
|
||||
let mut listing = Listing::new(
|
||||
|
Reference in New Issue
Block a user