You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The central catalog of offerings on the platform. Two types:
6
-
-**`booking`** — a bookable service; has an associated `service_schedules` row (via `scheduling_id`).
7
-
-**`coaching_session`** — a coaching offering; `scheduling_id` is null — the scheduling is handled through the `coaching_sessions` table.
6
+
-**`booking`** — a fixed event with predetermined time slots set by the admin. Users buy it like a product with no input on timing. `scheduled_at` holds the time slots as a JSON array.
7
+
-**`coaching_session`** — a coaching offering where the user proposes availability. `scheduled_at` is null — timing is handled through the `coaching_sessions` table.
8
8
9
9
```mermaid
10
10
erDiagram
@@ -13,32 +13,18 @@ erDiagram
13
13
text title
14
14
text description
15
15
service_type type "coaching_session | booking"
16
-
uuid scheduling_id "null for coaching_session"
16
+
jsonb scheduled_at "array of {start, end} objects — null for coaching_session"
17
17
int duration_minutes
18
18
int price "in cents"
19
19
boolean is_active
20
20
timestamp created_at
21
-
}
22
-
```
23
-
24
-
## Service Schedules
25
-
26
-
Holds the scheduling data for `booking`-type services. Format of `data` is TBD.
0 commit comments