26 lines
1.8 KiB
Java
26 lines
1.8 KiB
Java
package com.baiyue.common.event;
|
|
|
|
/** Explicit business-event destinations. There is no regional or default destination. */
|
|
public record EventDeliveryRoute(String serviceName, String path, boolean acceptsStale) {
|
|
public static EventDeliveryRoute forEventType(String eventType) {
|
|
if (eventType == null) throw new IllegalArgumentException("Event type is required");
|
|
return switch (eventType) {
|
|
case EventTypes.FIRST_LEG_LOADING_PLAN_COMPLETED, EventTypes.WALLET_COMMAND_COMPLETED ->
|
|
new EventDeliveryRoute("lastleg-service", "/internal/lastleg/events", false);
|
|
case EventTypes.FIRST_LEG_CONTAINER_SHIPPING_NODE_RECORDED ->
|
|
new EventDeliveryRoute("lastleg-service", "/internal/lastleg/events", true);
|
|
case EventTypes.OVERSEAS_CONTAINER_UNLOADED, EventTypes.OVERSEAS_DELIVERY_COMPLETED ->
|
|
new EventDeliveryRoute("firstleg-service", "/internal/firstleg/v1/container-events", false);
|
|
case EventTypes.OVERSEAS_INBOUND_ORDER_DETAINED_CHANGED ->
|
|
new EventDeliveryRoute("firstleg-service", "/internal/firstleg/v1/container-events", true);
|
|
case EventTypes.WALLET_COMMAND_REQUESTED ->
|
|
new EventDeliveryRoute("finance-service", "/internal/finance/v1/wallet-command-events", false);
|
|
case EventTypes.BUSINESS_FEE_SOURCE_CHANGED ->
|
|
new EventDeliveryRoute("finance-service", "/internal/finance/v1/business-fee-source-events", false);
|
|
case EventTypes.COMPANY_VEHICLE_COST_SUBMITTED ->
|
|
new EventDeliveryRoute("finance-service", "/internal/finance/v1/vehicle-costs/events", false);
|
|
default -> throw new IllegalArgumentException("Unsupported direct-delivery event type: " + eventType);
|
|
};
|
|
}
|
|
}
|