refactor:centralize order status rules in shared package
Runner Test / test (push) Successful in 17s
Runner Test / test (pull_request) Successful in 18s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Abdulaziz Salim Said AL-Gharbi
2026-10-08 16:25:50 +04:00
co-authored by Claude Opus 5.5
parent 31b367e3a3
commit 12c4bc62c1
7 changed files with 38 additions and 24 deletions
+20
View File
@@ -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);
}