Files
go-order-manager/capture.go
T
mats 5237c8ab85
Build and Publish / BuildAndDeploy (push) Failing after 37s
notes
2026-07-03 19:29:14 +02:00

57 lines
2.4 KiB
Go

// File capture.go holds CaptureData — the wire payload used when an order
// claims a payment authorisation or records fulfilment capture.
//
// Consumers:
// - PersistingOrderHandler in main.go on the OrderPlaced path.
// - A small backoffice admin route kicks capture.
//
// It is NOT a public HTTP surface; its JSON field names mirror the UCP
// capture.v1 schema that go-cart-actor publishes on the se_* RabbitMQ
// exchange. If you change a field here, you almost certainly have to
// change go-cart-actor's emit site at the same time.
package main
type CaptureData struct {
CapturedAmount int `json:"captured_amount"`
Description string `json:"description"`
OrderLines []struct {
ImageURL string `json:"image_url"`
MerchantData string `json:"merchant_data"`
Name string `json:"name"`
ProductIdentifiers struct {
Brand string `json:"brand"`
CategoryPath string `json:"category_path"`
Color string `json:"color"`
GlobalTradeItemNumber string `json:"global_trade_item_number"`
ManufacturerPartNumber string `json:"manufacturer_part_number"`
Size string `json:"size"`
} `json:"product_identifiers"`
ProductURL string `json:"product_url"`
Quantity int `json:"quantity"`
QuantityUnit string `json:"quantity_unit"`
Reference string `json:"reference"`
Subscription struct {
Interval string `json:"interval"`
IntervalCount int `json:"interval_count"`
Name string `json:"name"`
} `json:"subscription"`
TaxRate int `json:"tax_rate"`
TotalAmount int `json:"total_amount"`
TotalDiscountAmount int `json:"total_discount_amount"`
TotalTaxAmount int `json:"total_tax_amount"`
Type string `json:"type"`
UnitPrice int `json:"unit_price"`
} `json:"order_lines"`
Reference string `json:"reference"`
ShippingDelay int `json:"shipping_delay"`
ShippingInfo []struct {
ReturnShippingCompany string `json:"return_shipping_company"`
ReturnTrackingNumber string `json:"return_tracking_number"`
ReturnTrackingURI string `json:"return_tracking_uri"`
ShippingCompany string `json:"shipping_company"`
ShippingMethod string `json:"shipping_method"`
TrackingNumber string `json:"tracking_number"`
TrackingURI string `json:"tracking_uri"`
} `json:"shipping_info"`
}