refactor:centralize order status rules in shared package
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
31b367e3a3
commit
12c4bc62c1
@@ -1,3 +1,23 @@
|
||||
export const orderStatuses = ["pending", "processing", "shipped", "cancelled", "refunded"] as const;
|
||||
|
||||
export type OrderStatus = (typeof orderStatuses)[number];
|
||||
|
||||
const orderItemsEditableStatuses: readonly OrderStatus[] = ["pending"];
|
||||
const shippingAddressEditableStatuses: readonly OrderStatus[] = ["pending", "processing"];
|
||||
const orderCancellableStatuses: readonly OrderStatus[] = ["pending", "processing"];
|
||||
|
||||
export const orderItemsLockedMessage = "Order items cannot be changed for this order status.";
|
||||
export const shippingAddressLockedMessage = "Shipping address cannot be changed for this order status.";
|
||||
export const orderCancellationBlockedMessage = "Order cannot be cancelled for this order status.";
|
||||
|
||||
export function canEditOrderItems(status: OrderStatus) {
|
||||
return orderItemsEditableStatuses.includes(status);
|
||||
}
|
||||
|
||||
export function canEditShippingAddress(status: OrderStatus) {
|
||||
return shippingAddressEditableStatuses.includes(status);
|
||||
}
|
||||
|
||||
export function canCancelOrder(status: OrderStatus) {
|
||||
return orderCancellableStatuses.includes(status);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user