Facilities Service
The Facilities Service manages physical assets and resources at golf clubs, including courses, driving ranges, simulators, carts, and courts.
Purpose
Provides a centralized facility management system that can be shared across multiple modules:
- Tee Time - booking facilities for tee times
- Sport Club Ledger (SCL) - facility inventory management
- Member Club Admin (MCA) - administrative oversight
Key Features
| Feature | Description |
|---|---|
| Multi-tenant | All queries scoped by tenantId, optional clubId |
| Resource Types | Golf courses, driving ranges, simulators, carts, courts |
| Maintenance Logs | Track scheduled and completed maintenance |
| Resource Usage | Track booking assignments to resources |
| Availability Check | Query available resources for a time window |
| Soft Delete | Resources are deactivated, not permanently deleted |
| Dual API | REST endpoints + GraphQL resolvers |
Quick Links
- Architecture - System design and components
- API Surface - REST and GraphQL endpoints
- Facility Resources - Core resource management
- Maintenance Logs - Maintenance tracking
- Availability - Availability checking
Related Projects
| Project | Path | Description |
|---|---|---|
facilities-api | apps/facilities/facilities-api | NestJS gateway application |
facilities-service | libs/facilities/facilities-service | Core service module |
facilities-data | libs/prisma/facilities-data | Prisma data layer |
Getting Started
# Serve the API locally
pnpm nx serve facilities-api
# Run unit tests
pnpm nx run facilities-service:test:unit --runInBand
# Build the service
pnpm nx build facilities-service
Swagger Documentation
Interactive API documentation is available at: