> For the complete documentation index, see [llms.txt](https://docs.physiqo.in/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.physiqo.in/04-product/prd-1.md).

# Booking

## Booking Module

***

## 1. Purpose

The Booking Module enables patients to schedule physiotherapy appointments through a simple, secure and automated workflow.

The booking process integrates authentication, payment, physiotherapist assignment and notifications into a single experience.

This module represents the primary revenue-generating workflow of the PhysiQo platform.

***

## 2. Business Objectives

The Booking Module shall:

* Enable patients to book appointments in less than 2 minutes.
* Eliminate manual booking operations.
* Prevent fake bookings through mandatory online payment.
* Automatically assign the most suitable physiotherapist.
* Maintain complete booking history.
* Generate invoices automatically.

***

## 3. Booking Workflow

1. Login
2. Select Service
3. Select Appointment Date
4. Select Appointment Time
5. Enter Patient Address
6. Confirm Booking Details
7. Online Payment
8. Payment Verification
9. Automatic Physiotherapist Assignment
10. Booking Confirmation
11. WhatsApp Notification
12. Treatment
13. Review & Rating

```mermaid
flowchart TD

A[Login]

A --> B[Select Service]

B --> C[Date]

C --> D[Time]

D --> E[Address]

E --> F[Confirm Booking]

F --> G[Payment]

G --> H{Success?}

H -->|Yes| I[Assign Physio]

I --> J[Booking Confirmed]

J --> K[WhatsApp]

K --> L[Treatment]

L --> M[Review]

H -->|No| N[Retry Payment]
```

***

## 4. Booking Information

Each booking shall contain the following information.

### Patient Information

* Patient ID
* Name
* Mobile Number

***

### Appointment

* Booking ID
* Appointment Date
* Appointment Time
* Service Type

***

### Location

* Complete Address
* Latitude
* Longitude

***

### Payment

* Payment ID
* Amount
* Payment Status

***

### Assignment

* Physiotherapist ID
* Assignment Status

***

### Completion

* Treatment Status
* Review Status

***

## 5. Booking Validation Rules

Before confirming a booking, the system shall validate:

* User authentication
* Service availability
* Appointment date
* Appointment time
* Valid address
* Successful payment
* Duplicate booking detection

***

## 6. Booking Status

A booking may have one of the following statuses.

* Draft
* Payment Pending
* Payment Successful
* Physiotherapist Assigned
* Confirmed
* Treatment Started
* Treatment Completed
* Cancelled
* Refunded
* Failed
* Reassigned

***

## 7. User Actions

Patients may:

* Create Booking
* Cancel Booking
* Reschedule Booking
* View Booking
* View Invoice
* Contact Support

Physiotherapists may:

* Accept Assignment
* Reject Assignment
* Start Treatment
* Complete Treatment

Administrators may:

* Modify Booking
* Reassign Booking
* Cancel Booking
* Refund Booking

***

## 8. Notifications

The Booking Module shall trigger:

Patient

* Booking Created
* Payment Successful
* Booking Confirmed
* Physiotherapist Assigned
* Reminder
* Completed
* Review Request

Physiotherapist

* New Assignment
* Booking Cancelled
* Booking Rescheduled

Administrator

* Failed Assignment
* Payment Failure
* Refund Request

***

## 9. Business Rules

* Online payment is mandatory before assignment.
* Every booking shall have a unique Booking ID.
* Every booking shall generate an invoice.
* Automatic assignment shall begin only after payment verification.
* Failed payments shall not create confirmed bookings.
* Every booking event shall be logged.

***

## 10. Future Enhancements

* Package Bookings
* Multi-session Booking
* Family Booking
* Corporate Booking
* Recurring Appointments
* Calendar Integration

***

## Related Documents

* Business Rules
* User Journey
* Authentication PRD
* Auto Assignment PRD
* Payment PRD

***

Status

Draft


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.physiqo.in/04-product/prd-1.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
