initial
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# Reservair
|
||||
|
||||
A WordPress plugin for managing reservations and bookings. Visitors submit reservation requests through a Gutenberg block; administrators manage everything through a dedicated admin panel.
|
||||
|
||||
## Requirements
|
||||
|
||||
- WordPress 6.7+
|
||||
- PHP 7.4+
|
||||
- Composer
|
||||
- Node.js / npm
|
||||
|
||||
## Admin Menu
|
||||
|
||||
| Page | Slug | Description |
|
||||
|---|---|---|
|
||||
| Reservations (root) | `reservations-settings` | Services — the reservable resources |
|
||||
| Timetables | `timetable-settings` | Time-block schedules with capacity and repeating windows |
|
||||
| Forms | `forms-settings` | Custom reservation form definitions |
|
||||
| Reservations | `reservations-list` | All submissions with accept / reject actions |
|
||||
| Google Calendar | `rsv-google-calendar` | OAuth2 connect and webhook configuration |
|
||||
|
||||
## REST API
|
||||
|
||||
All routes are registered under the `reservations/v1` namespace.
|
||||
|
||||
| Resource | Controller |
|
||||
|---|---|
|
||||
| `/service` | `RsvServicesController` |
|
||||
| `/service-type` | `RsvServiceTypeController` |
|
||||
| `/reservation` | `RsvReservationController` |
|
||||
| `/timetable` | `RsvTimetableDefinitionController` |
|
||||
| `/timetable/availability` | `RsvTimetableAvailabilityController` |
|
||||
| `/timetable/capacity` | `RsvTimetableCapacityController` |
|
||||
| `/timetable/reservation` | `RsvTimetableReservationController` |
|
||||
| `/form` | `RsvFormController` |
|
||||
| `/form-definition` | `RsvFormDefinitionController` |
|
||||
| `/google-callback` | OAuth2 redirect handler |
|
||||
| `/google-calendar-hook` | Google Calendar push notification webhook |
|
||||
|
||||
## Linting
|
||||
|
||||
Static analysis is handled by [Psalm](https://psalm.dev/) and covers both `src/` (frontend PHP) and `includes/` (plugin PHP).
|
||||
|
||||
```bash
|
||||
vendor/bin/psalm
|
||||
```
|
||||
|
||||
Pre-existing issues are suppressed in `psalm-baseline.xml`. New code must introduce no new errors — any issue not in the baseline will cause a non-zero exit.
|
||||
|
||||
**Updating the baseline** — after intentionally fixing pre-existing issues, shrink the baseline so they don't regress:
|
||||
|
||||
```bash
|
||||
vendor/bin/psalm --update-baseline
|
||||
```
|
||||
|
||||
**Psalm is part of the `lint` Composer script**, alongside `phpcs` and `phpstan` (those require separate installation):
|
||||
|
||||
```bash
|
||||
composer run lint
|
||||
```
|
||||
|
||||
## Running Tests
|
||||
|
||||
See [`tests/README.md`](tests/README.md) for setup and usage.
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
```bash
|
||||
composer install
|
||||
```
|
||||
Reference in New Issue
Block a user