Files
b2b/app/actions/orderStatusActions/examples.go

123 lines
4.2 KiB
Go

package orderStatusActions
import (
"log"
"git.ma-al.com/goc_daniel/b2b/app/model/enums"
)
func init() {
GlobalRegistry.Register(enums.OrderStatusConfirmed, ActionChain{
SendOrderConfirmationEmail,
NotifyInventorySystem,
})
GlobalRegistry.Register(enums.OrderStatusProcessing, ActionChain{
NotifyWarehouse,
ReserveInventory,
})
GlobalRegistry.Register(enums.OrderStatusShipped, ActionChain{
NotifyWarehouseShipped,
GenerateTrackingNumber,
SendShippingNotificationEmail,
})
GlobalRegistry.Register(enums.OrderStatusDelivered, ActionChain{
SendDeliveryConfirmationEmail,
NotifyFulfillmentComplete,
})
GlobalRegistry.Register(enums.OrderStatusCancelled, ActionChain{
SendCancellationEmail,
ReleaseInventory,
ProcessRefund,
})
GlobalRegistry.Register(enums.OrderStatusReturned, ActionChain{
SendReturnConfirmationEmail,
NotifyReturnsDepartment,
})
GlobalRegistry.Register(enums.OrderStatusRefunded, ActionChain{
NotifyRefundProcessed,
})
GlobalRegistry.Register(enums.OrderStatusPending, ActionChain{})
}
var SendOrderConfirmationEmail = WithID("send_order_confirmation_email", func(actionCtx ActionContext) ActionResult {
log.Printf("Sending order confirmation email for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var NotifyInventorySystem = WithID("notify_inventory_system", func(actionCtx ActionContext) ActionResult {
log.Printf("Notifying inventory system for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var NotifyWarehouse = WithID("notify_warehouse", func(actionCtx ActionContext) ActionResult {
log.Printf("Notifying warehouse for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var ReserveInventory = WithID("reserve_inventory", func(actionCtx ActionContext) ActionResult {
log.Printf("Reserving inventory for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var NotifyWarehouseShipped = WithID("notify_warehouse_shipped", func(actionCtx ActionContext) ActionResult {
log.Printf("Notifying warehouse of shipment for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var GenerateTrackingNumber = WithID("generate_tracking_number", func(actionCtx ActionContext) ActionResult {
log.Printf("Generating tracking number for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var SendShippingNotificationEmail = WithID("send_shipping_notification_email", func(actionCtx ActionContext) ActionResult {
log.Printf("Sending shipping notification email for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var SendDeliveryConfirmationEmail = WithID("send_delivery_confirmation_email", func(actionCtx ActionContext) ActionResult {
log.Printf("Sending delivery confirmation email for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var NotifyFulfillmentComplete = WithID("notify_fulfillment_complete", func(actionCtx ActionContext) ActionResult {
log.Printf("Notifying fulfillment complete for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var SendCancellationEmail = WithID("send_cancellation_email", func(actionCtx ActionContext) ActionResult {
log.Printf("Sending cancellation email for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var ReleaseInventory = WithID("release_inventory", func(actionCtx ActionContext) ActionResult {
log.Printf("Releasing inventory for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var ProcessRefund = WithID("process_refund", func(actionCtx ActionContext) ActionResult {
log.Printf("Processing refund for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var SendReturnConfirmationEmail = WithID("send_return_confirmation_email", func(actionCtx ActionContext) ActionResult {
log.Printf("Sending return confirmation email for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var NotifyReturnsDepartment = WithID("notify_returns_department", func(actionCtx ActionContext) ActionResult {
log.Printf("Notifying returns department for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})
var NotifyRefundProcessed = WithID("notify_refund_processed", func(actionCtx ActionContext) ActionResult {
log.Printf("Notifying refund processed for order %d", actionCtx.OrderId)
return ActionResult{Err: nil}
})