handle limited quantity
All checks were successful
Build and Publish / BuildAndDeployAmd64 (push) Successful in 36s
Build and Publish / BuildAndDeployArm64 (push) Successful in 3m43s

This commit is contained in:
2025-11-26 21:35:40 +01:00
parent a17d5fc570
commit afa79e7b56
3 changed files with 32 additions and 8 deletions

View File

@@ -2,6 +2,7 @@ package cart
import (
"fmt"
"time"
messages "git.k6n.net/go-cart-actor/pkg/messages"
)
@@ -36,6 +37,14 @@ func InitializeCheckout(g *CartGrain, m *messages.InitializeCheckout) error {
if m.OrderId == "" {
return fmt.Errorf("InitializeCheckout: missing orderId")
}
now := time.Now()
for _, item := range g.Items {
if item.ReservationEndTime != nil {
if now.After(*item.ReservationEndTime) {
return fmt.Errorf("InitializeCheckout: item id %d reservation has expired", item.Id)
}
}
}
g.OrderReference = m.OrderId
g.PaymentStatus = m.Status