base commit
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
export const ORDER_STATUSES = [
|
||||
'DRAFT',
|
||||
'PENDING_PAYMENT',
|
||||
'PAID',
|
||||
'IN_PROGRESS',
|
||||
'SHIPPED',
|
||||
'DONE',
|
||||
'CANCELLED',
|
||||
] as const
|
||||
|
||||
export type OrderStatus = (typeof ORDER_STATUSES)[number]
|
||||
|
||||
export const ORDER_STATUS_TRANSITIONS: Record<OrderStatus, OrderStatus[]> = {
|
||||
DRAFT: ['PENDING_PAYMENT', 'CANCELLED'],
|
||||
PENDING_PAYMENT: ['PAID', 'CANCELLED'],
|
||||
PAID: ['IN_PROGRESS', 'CANCELLED'],
|
||||
IN_PROGRESS: ['SHIPPED', 'CANCELLED'],
|
||||
SHIPPED: ['DONE'],
|
||||
DONE: [],
|
||||
CANCELLED: [],
|
||||
}
|
||||
|
||||
export function canTransitionOrderStatus(from: string, to: string): boolean {
|
||||
if (from === to) return true
|
||||
const f = from as OrderStatus
|
||||
const list = ORDER_STATUS_TRANSITIONS[f]
|
||||
return Array.isArray(list) ? list.includes(to as OrderStatus) : false
|
||||
}
|
||||
Reference in New Issue
Block a user