Resource Usage
Track booking assignments to facility resources.
Purpose
Resource usage records link bookings to specific facility resources, enabling:
- Capacity Management: Track which resources are assigned
- Booking Association: Link tee time bookings to specific carts, simulators, etc.
- Usage Analytics: Analyze resource utilization patterns
Usage Properties
| Field | Type | Description |
|---|---|---|
id | number | Unique identifier |
resourceId | number | Linked facility resource |
bookingId | number? | Associated booking ID |
assignedAt | DateTime | When resource was assigned |
releasedAt | DateTime? | When resource was released |
REST API
List Usage Records
GET /resource-usage?tenantId=1&clubId=10&resourceId=42
Query Parameters:
tenantId(required) - Tenant scopeclubId(optional) - Club scoperesourceId(optional) - Filter by resource
Get Single Record
GET /resource-usage/123?tenantId=1
Create Usage Record
POST /resource-usage?tenantId=1&clubId=10
Content-Type: application/json
{
"resourceId": 42,
"bookingId": 12345,
"assignedAt": "2025-01-15T08:00:00Z"
}
Update Record (Release Resource)
PUT /resource-usage/123?tenantId=1
Content-Type: application/json
{
"releasedAt": "2025-01-15T12:00:00Z"
}
Delete Record
DELETE /resource-usage/123?tenantId=1
GraphQL API
Query Usage
query ResourceUsage {
resourceUsage(tenantId: 1, clubId: 10, resourceId: 42) {
id
resourceId
bookingId
assignedAt
releasedAt
}
}
Assign Resource
mutation CreateResourceUsage {
createResourceUsage(
tenantId: 1
clubId: 10
data: {
resourceId: 42
bookingId: 12345
assignedAt: "2025-01-15T08:00:00Z"
}
) {
id
resourceId
bookingId
}
}
Release Resource
mutation UpdateResourceUsage {
updateResourceUsage(
id: 123
tenantId: 1
data: { releasedAt: "2025-01-15T12:00:00Z" }
) {
id
releasedAt
}
}
Workflow
1. Assign Resource to Booking
When a booking is created that requires a resource (e.g., golf cart):
POST /resource-usage?tenantId=1&clubId=10
{
"resourceId": 42,
"bookingId": 12345,
"assignedAt": "2025-01-15T08:00:00Z"
}
2. Check Current Assignments
Query resources currently in use:
GET /resource-usage?tenantId=1&resourceId=42
Filter results where releasedAt is null to find currently assigned resources.
3. Release Resource
When the booking completes:
PUT /resource-usage/123?tenantId=1
{
"releasedAt": "2025-01-15T12:00:00Z"
}
Integration with Tee Time
The resource usage tracking integrates with the Tee Time booking system:
- Booking Created: Tee Time calls Facilities API to assign cart/simulator
- Booking Modified: Updates assignment if resource changes
- Booking Completed: Releases the assigned resource
- Booking Cancelled: Releases and optionally deletes the usage record