final
This commit is contained in:
@@ -119,18 +119,23 @@ export async function POST(request: NextRequest) {
|
||||
)
|
||||
}
|
||||
|
||||
// Check if user has unlocked wholesale prices
|
||||
const [referralRows] = await pool.execute(
|
||||
'SELECT COUNT(*) as count FROM referrals WHERE referrer = ?',
|
||||
[buyer_id]
|
||||
)
|
||||
const referralCount = (referralRows as any[])[0]?.count || 0
|
||||
const isWholesaleUnlocked = referralCount >= 3
|
||||
|
||||
// Calculate price
|
||||
// ppu is stored as integer where 1000 = $1.00, so divide by 1000 to get actual price
|
||||
const pricePerUnit = drop.ppu / 1000
|
||||
let priceAmount = 0
|
||||
if (drop.unit === 'kg') {
|
||||
priceAmount = (size / 1000) * pricePerUnit
|
||||
} else {
|
||||
priceAmount = size * pricePerUnit
|
||||
}
|
||||
// Assuming ppu is per gram
|
||||
const pricePerGram = drop.ppu / 1000
|
||||
const priceToUse = isWholesaleUnlocked ? pricePerGram * 0.76 : pricePerGram
|
||||
const priceAmount = size * priceToUse
|
||||
|
||||
// Round to 2 decimal places
|
||||
priceAmount = Math.round(priceAmount * 100) / 100
|
||||
const roundedPriceAmount = Math.round(priceAmount * 100) / 100
|
||||
|
||||
// Generate order ID
|
||||
const orderId = `SALE-${Date.now()}-${drop_id}-${buyer_id}`
|
||||
@@ -163,7 +168,7 @@ export async function POST(request: NextRequest) {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
price_amount: priceAmount,
|
||||
price_amount: roundedPriceAmount,
|
||||
price_currency: nowPaymentsConfig.currency,
|
||||
pay_currency: payCurrency, // Required: crypto currency (btc, eth, etc)
|
||||
order_id: orderId,
|
||||
@@ -190,7 +195,7 @@ export async function POST(request: NextRequest) {
|
||||
// payment.payment_id is the NOWPayments payment ID
|
||||
await connection.execute(
|
||||
'INSERT INTO pending_orders (payment_id, order_id, drop_id, buyer_id, buyer_data_id, size, price_amount, price_currency, expires_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
|
||||
[payment.payment_id, orderId, drop_id, buyer_id, buyer_data_id, size, priceAmount, nowPaymentsConfig.currency, expiresAt]
|
||||
[payment.payment_id, orderId, drop_id, buyer_id, buyer_data_id, size, roundedPriceAmount, nowPaymentsConfig.currency, expiresAt]
|
||||
)
|
||||
|
||||
// Commit transaction - inventory is now reserved
|
||||
|
||||
Reference in New Issue
Block a user