30 lines
771 B
Go
30 lines
771 B
Go
package domain
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"calllinesystem/server/internal/model"
|
|
)
|
|
|
|
func DisplayNumber(_ string, number int) (string, error) {
|
|
if number <= 0 || number > 99999 {
|
|
return "", fmt.Errorf("invalid ticket number")
|
|
}
|
|
return fmt.Sprintf("%05d", number), nil
|
|
}
|
|
|
|
func CanTransitionTicket(from, to string) bool {
|
|
switch to {
|
|
case model.TicketArrived:
|
|
return from == model.TicketCalled || from == model.TicketArrived
|
|
case model.TicketCompleted:
|
|
return from == model.TicketCalled || from == model.TicketArrived || from == model.TicketCompleted
|
|
case model.TicketMissed:
|
|
return from == model.TicketCalled || from == model.TicketMissed
|
|
case model.TicketCanceled:
|
|
return from == model.TicketWaiting || from == model.TicketCanceled
|
|
default:
|
|
return false
|
|
}
|
|
}
|