Use the Shared Service Booking Flow
/hotel, /grooming, and /pet-taxi look like separate products, but they share the same booking modal and core reservation logic. Customer selection, pet selection, booking details, add-on services, summary, and checkout follow the same structure.
Services That Use This Flow
HOTELGROOMINGPET_TAXI
The labels differ by service, but the core reservation states and modal steps are shared.
Read the Main Reservation States
BOOKED
The reservation exists, but the real service has not started yet.
CHECKED_IN
The service has started.
- Hotel: actual stay is in progress
- Grooming: work is in progress
- Pet Taxi: transit is in progress
CHECKED_OUT
The service termination process is complete. Review add-on services and downstream billing around this moment.
CANCELLED
The reservation was cancelled. In most cases, creating a fresh reservation later is safer than trying to restore the old one loosely.
Warning: Once a reservation is
CHECKED_OUTorCANCELLED, any later change can affect payment, receipt history, and operational traceability.
Shared Modal Steps
Step 1. select-customer
Choose the customer first. A wrong customer selection breaks the rest of the reservation and billing context.
Step 2. select-pet
Choose the pet under that customer. Always confirm both name and HN when the customer owns more than one pet.
Step 3. booking-details
Typical booking details include:
- start datetime
- end datetime or checkout datetime
- assigned resource
- Hotel: room
- Grooming: station
- Pet Taxi: vehicle / dispatch resource
- assigned staff or groomer
- comment
- pickup and dropoff address for Pet Taxi
Step 4. add-on-services
Add optional services. This stage uses branch service master data, so names and prices come from operational service configuration.
Step 5. summary
Review the booking summary.
- Hotel: check-in, checkout, length of stay, room
- Grooming: booking time, station, assignee
- Pet Taxi: booking time, vehicle, pickup / dropoff
Step 6. view / edit
Created reservations can be reopened in view mode and edited through the same modal family.
Step 7. checkout
At service completion, review additional billable items again before confirming checkout.
Service-Specific Input Differences
Hotel
- built around duration-based reservations
- uses both check-in and checkout as real stay timing
- needs room conflict review before confirmation
Grooming
- time-slot precision matters more than duration
- station and groomer confirmation are the critical fields
- the code still contains a photo-upload step, but it is not currently mandatory in the main checkout path
Pet Taxi
- pickup and dropoff addresses are core operational data
- vehicle resources are handled similarly to room-style resources in the board
Shared Operating Rules
- confirm customer and pet mapping first
- review add-on services again after the service scope becomes clear
- cancel reservations before start whenever possible
- when editing details, review time, resource, and assignee together to reduce conflicts
Current Implementation Notes
- the new-booking button opens the shared modal
- view and edit are part of the same modal family
- grooming photo-upload exists in code but is not a required completion step in the current main flow