@rippling/rippling-sdk 0.2.0-alpha.35 → 0.2.0-alpha.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/client.d.mts +6 -0
  2. package/client.d.mts.map +1 -1
  3. package/client.d.ts +6 -0
  4. package/client.d.ts.map +1 -1
  5. package/client.js +6 -0
  6. package/client.js.map +1 -1
  7. package/client.mjs +6 -0
  8. package/client.mjs.map +1 -1
  9. package/examples/.keep +4 -0
  10. package/examples/manifest/dental-practice-management/dental-practice-management.ts +651 -0
  11. package/examples/manifest/dental-practice-management/manifest.json +1870 -0
  12. package/examples/manifest/gym-membership-management/gym-membership-management.ts +757 -0
  13. package/examples/manifest/gym-membership-management/manifest.json +1975 -0
  14. package/examples/sdui/sdui-crud-todo/rippling-function.ts +367 -0
  15. package/examples/sdui/sdui-crud-todo/sdui-crud-todo.ts +282 -0
  16. package/examples/sdui/sdui-showcase/rippling-function.ts +381 -0
  17. package/examples/sdui/sdui-showcase/sdui-showcase.ts +351 -0
  18. package/examples/sdui/sdui-tab-multi-view/rippling-function.ts +1061 -0
  19. package/examples/sdui/sdui-tab-multi-view/sdui-tab-multi-view.ts +924 -0
  20. package/examples/sdui/vote/rippling-function.ts +330 -0
  21. package/examples/sdui/vote/vote.ts +298 -0
  22. package/package.json +11 -1
  23. package/resources/company-legal-entity-workers.d.mts +79 -0
  24. package/resources/company-legal-entity-workers.d.mts.map +1 -0
  25. package/resources/company-legal-entity-workers.d.ts +79 -0
  26. package/resources/company-legal-entity-workers.d.ts.map +1 -0
  27. package/resources/company-legal-entity-workers.js +30 -0
  28. package/resources/company-legal-entity-workers.js.map +1 -0
  29. package/resources/company-legal-entity-workers.mjs +26 -0
  30. package/resources/company-legal-entity-workers.mjs.map +1 -0
  31. package/resources/index.d.mts +1 -0
  32. package/resources/index.d.mts.map +1 -1
  33. package/resources/index.d.ts +1 -0
  34. package/resources/index.d.ts.map +1 -1
  35. package/resources/index.js +4 -2
  36. package/resources/index.js.map +1 -1
  37. package/resources/index.mjs +1 -0
  38. package/resources/index.mjs.map +1 -1
  39. package/src/client.ts +20 -0
  40. package/src/resources/company-legal-entity-workers.ts +115 -0
  41. package/src/resources/index.ts +7 -0
  42. package/src/version.ts +1 -1
  43. package/version.d.mts +1 -1
  44. package/version.d.ts +1 -1
  45. package/version.js +1 -1
  46. package/version.mjs +1 -1
@@ -0,0 +1,1975 @@
1
+ {
2
+ "metadata": {
3
+ "key": "gym_membership_management",
4
+ "name": "Gym Membership Management",
5
+ "description": "Members, trainers, class schedules and assignments, roster rollups, and SDUI for today’s classes and check-in"
6
+ },
7
+ "components": [
8
+ {
9
+ "type": "CUSTOM_CATEGORY",
10
+ "api_name": "gym__c",
11
+ "name": "Gym",
12
+ "description": "Memberships, staff, schedules, and attendance"
13
+ },
14
+ {
15
+ "type": "CUSTOM_OBJECT",
16
+ "api_name": "gym_member__c",
17
+ "name": "Member",
18
+ "description": "Gym member profile, contact, and membership status",
19
+ "category_api_name": "gym__c",
20
+ "icon": {
21
+ "emoji": "🏋️"
22
+ },
23
+ "plural_label": "Members"
24
+ },
25
+ {
26
+ "type": "CUSTOM_OBJECT_FIELD",
27
+ "custom_object_api_name": "gym_member__c",
28
+ "field_api_name": "id",
29
+ "field_display_name": "ID",
30
+ "data_type": {
31
+ "options_list": [],
32
+ "supported_types": [],
33
+ "field_type": "TEXT"
34
+ },
35
+ "description": "The Rippling ID of a record",
36
+ "is_required": true,
37
+ "is_unique": true,
38
+ "is_indexed": null,
39
+ "rql_formula": null,
40
+ "formula_attr_metas": null,
41
+ "is_standard": true,
42
+ "derived_aggregated_field": null,
43
+ "derived_field_formula": null,
44
+ "section": null
45
+ },
46
+ {
47
+ "type": "CUSTOM_OBJECT_FIELD",
48
+ "custom_object_api_name": "gym_member__c",
49
+ "field_api_name": "created_at",
50
+ "field_display_name": "Created Date",
51
+ "data_type": {
52
+ "options_list": [],
53
+ "supported_types": [],
54
+ "field_type": "DATETIME"
55
+ },
56
+ "description": "The date and time a record was created",
57
+ "is_required": false,
58
+ "is_unique": false,
59
+ "is_indexed": null,
60
+ "rql_formula": null,
61
+ "formula_attr_metas": null,
62
+ "is_standard": true,
63
+ "derived_aggregated_field": null,
64
+ "derived_field_formula": null,
65
+ "section": null
66
+ },
67
+ {
68
+ "type": "CUSTOM_OBJECT_FIELD",
69
+ "custom_object_api_name": "gym_member__c",
70
+ "field_api_name": "updated_at",
71
+ "field_display_name": "Last Modified Date",
72
+ "data_type": {
73
+ "options_list": [],
74
+ "supported_types": [],
75
+ "field_type": "DATETIME"
76
+ },
77
+ "description": "The date and time a record was last updated",
78
+ "is_required": false,
79
+ "is_unique": false,
80
+ "is_indexed": null,
81
+ "rql_formula": null,
82
+ "formula_attr_metas": null,
83
+ "is_standard": true,
84
+ "derived_aggregated_field": null,
85
+ "derived_field_formula": null,
86
+ "section": null
87
+ },
88
+ {
89
+ "type": "CUSTOM_OBJECT_FIELD",
90
+ "custom_object_api_name": "gym_member__c",
91
+ "field_api_name": "system_updated_at",
92
+ "field_display_name": "System Modified At",
93
+ "data_type": {
94
+ "options_list": [],
95
+ "supported_types": [],
96
+ "field_type": "DATETIME"
97
+ },
98
+ "description": "The date and time a record was last updated by the system",
99
+ "is_required": false,
100
+ "is_unique": false,
101
+ "is_indexed": null,
102
+ "rql_formula": null,
103
+ "formula_attr_metas": null,
104
+ "is_standard": true,
105
+ "derived_aggregated_field": null,
106
+ "derived_field_formula": null,
107
+ "section": null
108
+ },
109
+ {
110
+ "type": "CUSTOM_OBJECT_FIELD",
111
+ "custom_object_api_name": "gym_member__c",
112
+ "field_api_name": "external_id",
113
+ "field_display_name": "External ID",
114
+ "data_type": {
115
+ "options_list": [],
116
+ "supported_types": [],
117
+ "field_type": "TEXT"
118
+ },
119
+ "description": "The external identifier for a record used in third party integrations",
120
+ "is_required": false,
121
+ "is_unique": true,
122
+ "is_indexed": null,
123
+ "rql_formula": null,
124
+ "formula_attr_metas": null,
125
+ "is_standard": true,
126
+ "derived_aggregated_field": null,
127
+ "derived_field_formula": null,
128
+ "section": null
129
+ },
130
+ {
131
+ "type": "CUSTOM_OBJECT_FIELD",
132
+ "custom_object_api_name": "gym_member__c",
133
+ "field_api_name": "name",
134
+ "field_display_name": "Name",
135
+ "data_type": {
136
+ "options_list": [],
137
+ "supported_types": [],
138
+ "field_type": "TEXT"
139
+ },
140
+ "description": "A string used to describe a record. This is used for display purposes as well as search",
141
+ "is_required": true,
142
+ "is_unique": false,
143
+ "is_indexed": null,
144
+ "rql_formula": null,
145
+ "formula_attr_metas": null,
146
+ "is_standard": true,
147
+ "derived_aggregated_field": null,
148
+ "derived_field_formula": null,
149
+ "section": null
150
+ },
151
+ {
152
+ "type": "CUSTOM_OBJECT_FIELD",
153
+ "custom_object_api_name": "gym_member__c",
154
+ "field_api_name": "owner_role",
155
+ "field_display_name": "Owner",
156
+ "data_type": {
157
+ "options_list": [],
158
+ "supported_types": [],
159
+ "field_type": "NATIVE_EDGE",
160
+ "og_model_rql_name": "Employee",
161
+ "db_model_name": "RoleWithCompany",
162
+ "reference_column_storage_type": "STRING"
163
+ },
164
+ "description": "The Employee responsible for the record. This is used by Permissions to determine who has ability to view, edit, and delete data",
165
+ "is_required": false,
166
+ "is_unique": false,
167
+ "is_indexed": null,
168
+ "rql_formula": null,
169
+ "formula_attr_metas": null,
170
+ "is_standard": true,
171
+ "derived_aggregated_field": null,
172
+ "derived_field_formula": null,
173
+ "section": null
174
+ },
175
+ {
176
+ "type": "CUSTOM_OBJECT_FIELD",
177
+ "custom_object_api_name": "gym_member__c",
178
+ "field_api_name": "last_modified_by",
179
+ "field_display_name": "Last Modified by",
180
+ "data_type": {
181
+ "options_list": [],
182
+ "supported_types": [],
183
+ "field_type": "NATIVE_EDGE",
184
+ "og_model_rql_name": "Employee",
185
+ "db_model_name": "RoleWithCompany",
186
+ "reference_column_storage_type": "STRING"
187
+ },
188
+ "description": "The Employee who made the latest change.",
189
+ "is_required": false,
190
+ "is_unique": false,
191
+ "is_indexed": null,
192
+ "rql_formula": null,
193
+ "formula_attr_metas": null,
194
+ "is_standard": true,
195
+ "derived_aggregated_field": null,
196
+ "derived_field_formula": null,
197
+ "section": null
198
+ },
199
+ {
200
+ "type": "CUSTOM_OBJECT_FIELD",
201
+ "custom_object_api_name": "gym_member__c",
202
+ "field_api_name": "created_by",
203
+ "field_display_name": "Created by",
204
+ "data_type": {
205
+ "options_list": [],
206
+ "supported_types": [],
207
+ "field_type": "NATIVE_EDGE",
208
+ "og_model_rql_name": "Employee",
209
+ "db_model_name": "RoleWithCompany",
210
+ "reference_column_storage_type": "STRING"
211
+ },
212
+ "description": "The Employee who created the record",
213
+ "is_required": false,
214
+ "is_unique": false,
215
+ "is_indexed": null,
216
+ "rql_formula": null,
217
+ "formula_attr_metas": null,
218
+ "is_standard": true,
219
+ "derived_aggregated_field": null,
220
+ "derived_field_formula": null,
221
+ "section": null
222
+ },
223
+ {
224
+ "type": "CUSTOM_OBJECT_FIELD_SECTION",
225
+ "section_id": "sec_gm_profile",
226
+ "model_name": "gym_member__c",
227
+ "name": "Profile"
228
+ },
229
+ {
230
+ "type": "CUSTOM_OBJECT_FIELD_SECTION",
231
+ "section_id": "sec_gm_membership",
232
+ "model_name": "gym_member__c",
233
+ "name": "Membership"
234
+ },
235
+ {
236
+ "type": "CUSTOM_OBJECT_FIELD",
237
+ "custom_object_api_name": "gym_member__c",
238
+ "field_api_name": "first_name__c",
239
+ "field_display_name": "First name",
240
+ "data_type": {
241
+ "options_list": [],
242
+ "supported_types": [],
243
+ "field_type": "TEXT",
244
+ "max_length": 80
245
+ },
246
+ "description": null,
247
+ "is_required": true,
248
+ "is_unique": null,
249
+ "is_indexed": null,
250
+ "rql_formula": null,
251
+ "formula_attr_metas": null,
252
+ "is_standard": false,
253
+ "derived_aggregated_field": null,
254
+ "derived_field_formula": null,
255
+ "section": "sec_gm_profile"
256
+ },
257
+ {
258
+ "type": "CUSTOM_OBJECT_FIELD",
259
+ "custom_object_api_name": "gym_member__c",
260
+ "field_api_name": "last_name__c",
261
+ "field_display_name": "Last name",
262
+ "data_type": {
263
+ "options_list": [],
264
+ "supported_types": [],
265
+ "field_type": "TEXT",
266
+ "max_length": 80
267
+ },
268
+ "description": null,
269
+ "is_required": true,
270
+ "is_unique": null,
271
+ "is_indexed": null,
272
+ "rql_formula": null,
273
+ "formula_attr_metas": null,
274
+ "is_standard": false,
275
+ "derived_aggregated_field": null,
276
+ "derived_field_formula": null,
277
+ "section": "sec_gm_profile"
278
+ },
279
+ {
280
+ "type": "CUSTOM_OBJECT_FIELD",
281
+ "custom_object_api_name": "gym_member__c",
282
+ "field_api_name": "email__c",
283
+ "field_display_name": "Email",
284
+ "data_type": {
285
+ "options_list": [],
286
+ "supported_types": [],
287
+ "field_type": "EMAIL"
288
+ },
289
+ "description": null,
290
+ "is_required": null,
291
+ "is_unique": true,
292
+ "is_indexed": null,
293
+ "rql_formula": null,
294
+ "formula_attr_metas": null,
295
+ "is_standard": false,
296
+ "derived_aggregated_field": null,
297
+ "derived_field_formula": null,
298
+ "section": "sec_gm_profile"
299
+ },
300
+ {
301
+ "type": "CUSTOM_OBJECT_FIELD",
302
+ "custom_object_api_name": "gym_member__c",
303
+ "field_api_name": "phone__c",
304
+ "field_display_name": "Phone",
305
+ "data_type": {
306
+ "options_list": [],
307
+ "supported_types": [],
308
+ "field_type": "PHONE_NUMBER"
309
+ },
310
+ "description": null,
311
+ "is_required": null,
312
+ "is_unique": null,
313
+ "is_indexed": null,
314
+ "rql_formula": null,
315
+ "formula_attr_metas": null,
316
+ "is_standard": false,
317
+ "derived_aggregated_field": null,
318
+ "derived_field_formula": null,
319
+ "section": "sec_gm_profile"
320
+ },
321
+ {
322
+ "type": "CUSTOM_OBJECT_FIELD",
323
+ "custom_object_api_name": "gym_member__c",
324
+ "field_api_name": "membership_status__c",
325
+ "field_display_name": "Membership status",
326
+ "data_type": {
327
+ "options_list": ["Active", "Frozen", "Cancelled", "Trial"],
328
+ "supported_types": [],
329
+ "field_type": "SELECT"
330
+ },
331
+ "description": null,
332
+ "is_required": true,
333
+ "is_unique": null,
334
+ "is_indexed": null,
335
+ "rql_formula": null,
336
+ "formula_attr_metas": null,
337
+ "is_standard": false,
338
+ "derived_aggregated_field": null,
339
+ "derived_field_formula": null,
340
+ "section": "sec_gm_membership"
341
+ },
342
+ {
343
+ "type": "CUSTOM_OBJECT_FIELD",
344
+ "custom_object_api_name": "gym_member__c",
345
+ "field_api_name": "join_date__c",
346
+ "field_display_name": "Join date",
347
+ "data_type": {
348
+ "options_list": [],
349
+ "supported_types": [],
350
+ "field_type": "DATE"
351
+ },
352
+ "description": null,
353
+ "is_required": null,
354
+ "is_unique": null,
355
+ "is_indexed": null,
356
+ "rql_formula": null,
357
+ "formula_attr_metas": null,
358
+ "is_standard": false,
359
+ "derived_aggregated_field": null,
360
+ "derived_field_formula": null,
361
+ "section": "sec_gm_membership"
362
+ },
363
+ {
364
+ "type": "CUSTOM_OBJECT_FIELD",
365
+ "custom_object_api_name": "gym_member__c",
366
+ "field_api_name": "emergency_contact__c",
367
+ "field_display_name": "Emergency contact",
368
+ "data_type": {
369
+ "options_list": [],
370
+ "supported_types": [],
371
+ "field_type": "LONG_TEXT",
372
+ "max_length": 2000
373
+ },
374
+ "description": "Name and phone for emergencies",
375
+ "is_required": null,
376
+ "is_unique": null,
377
+ "is_indexed": null,
378
+ "rql_formula": null,
379
+ "formula_attr_metas": null,
380
+ "is_standard": false,
381
+ "derived_aggregated_field": null,
382
+ "derived_field_formula": null,
383
+ "section": "sec_gm_membership"
384
+ },
385
+ {
386
+ "type": "CUSTOM_OBJECT_FIELD",
387
+ "custom_object_api_name": "gym_member__c",
388
+ "field_api_name": "member_display_name__c",
389
+ "field_display_name": "Display name",
390
+ "data_type": {
391
+ "options_list": [],
392
+ "supported_types": [],
393
+ "field_type": "TEXT",
394
+ "max_length": 200
395
+ },
396
+ "description": null,
397
+ "is_required": null,
398
+ "is_unique": null,
399
+ "is_indexed": null,
400
+ "rql_formula": null,
401
+ "formula_attr_metas": null,
402
+ "is_standard": false,
403
+ "derived_aggregated_field": null,
404
+ "derived_field_formula": "CONCATENATE(TRIM(first_name__c), ' ', TRIM(last_name__c))",
405
+ "section": "sec_gm_profile"
406
+ },
407
+ {
408
+ "type": "CUSTOM_OBJECT",
409
+ "api_name": "gym_trainer__c",
410
+ "name": "Trainer",
411
+ "description": "Instructors and coaches who lead scheduled classes",
412
+ "category_api_name": "gym__c",
413
+ "icon": {
414
+ "emoji": "🎯"
415
+ },
416
+ "plural_label": "Trainers"
417
+ },
418
+ {
419
+ "type": "CUSTOM_OBJECT_FIELD",
420
+ "custom_object_api_name": "gym_trainer__c",
421
+ "field_api_name": "id",
422
+ "field_display_name": "ID",
423
+ "data_type": {
424
+ "options_list": [],
425
+ "supported_types": [],
426
+ "field_type": "TEXT"
427
+ },
428
+ "description": "The Rippling ID of a record",
429
+ "is_required": true,
430
+ "is_unique": true,
431
+ "is_indexed": null,
432
+ "rql_formula": null,
433
+ "formula_attr_metas": null,
434
+ "is_standard": true,
435
+ "derived_aggregated_field": null,
436
+ "derived_field_formula": null,
437
+ "section": null
438
+ },
439
+ {
440
+ "type": "CUSTOM_OBJECT_FIELD",
441
+ "custom_object_api_name": "gym_trainer__c",
442
+ "field_api_name": "created_at",
443
+ "field_display_name": "Created Date",
444
+ "data_type": {
445
+ "options_list": [],
446
+ "supported_types": [],
447
+ "field_type": "DATETIME"
448
+ },
449
+ "description": "The date and time a record was created",
450
+ "is_required": false,
451
+ "is_unique": false,
452
+ "is_indexed": null,
453
+ "rql_formula": null,
454
+ "formula_attr_metas": null,
455
+ "is_standard": true,
456
+ "derived_aggregated_field": null,
457
+ "derived_field_formula": null,
458
+ "section": null
459
+ },
460
+ {
461
+ "type": "CUSTOM_OBJECT_FIELD",
462
+ "custom_object_api_name": "gym_trainer__c",
463
+ "field_api_name": "updated_at",
464
+ "field_display_name": "Last Modified Date",
465
+ "data_type": {
466
+ "options_list": [],
467
+ "supported_types": [],
468
+ "field_type": "DATETIME"
469
+ },
470
+ "description": "The date and time a record was last updated",
471
+ "is_required": false,
472
+ "is_unique": false,
473
+ "is_indexed": null,
474
+ "rql_formula": null,
475
+ "formula_attr_metas": null,
476
+ "is_standard": true,
477
+ "derived_aggregated_field": null,
478
+ "derived_field_formula": null,
479
+ "section": null
480
+ },
481
+ {
482
+ "type": "CUSTOM_OBJECT_FIELD",
483
+ "custom_object_api_name": "gym_trainer__c",
484
+ "field_api_name": "system_updated_at",
485
+ "field_display_name": "System Modified At",
486
+ "data_type": {
487
+ "options_list": [],
488
+ "supported_types": [],
489
+ "field_type": "DATETIME"
490
+ },
491
+ "description": "The date and time a record was last updated by the system",
492
+ "is_required": false,
493
+ "is_unique": false,
494
+ "is_indexed": null,
495
+ "rql_formula": null,
496
+ "formula_attr_metas": null,
497
+ "is_standard": true,
498
+ "derived_aggregated_field": null,
499
+ "derived_field_formula": null,
500
+ "section": null
501
+ },
502
+ {
503
+ "type": "CUSTOM_OBJECT_FIELD",
504
+ "custom_object_api_name": "gym_trainer__c",
505
+ "field_api_name": "external_id",
506
+ "field_display_name": "External ID",
507
+ "data_type": {
508
+ "options_list": [],
509
+ "supported_types": [],
510
+ "field_type": "TEXT"
511
+ },
512
+ "description": "The external identifier for a record used in third party integrations",
513
+ "is_required": false,
514
+ "is_unique": true,
515
+ "is_indexed": null,
516
+ "rql_formula": null,
517
+ "formula_attr_metas": null,
518
+ "is_standard": true,
519
+ "derived_aggregated_field": null,
520
+ "derived_field_formula": null,
521
+ "section": null
522
+ },
523
+ {
524
+ "type": "CUSTOM_OBJECT_FIELD",
525
+ "custom_object_api_name": "gym_trainer__c",
526
+ "field_api_name": "name",
527
+ "field_display_name": "Name",
528
+ "data_type": {
529
+ "options_list": [],
530
+ "supported_types": [],
531
+ "field_type": "TEXT"
532
+ },
533
+ "description": "A string used to describe a record. This is used for display purposes as well as search",
534
+ "is_required": true,
535
+ "is_unique": false,
536
+ "is_indexed": null,
537
+ "rql_formula": null,
538
+ "formula_attr_metas": null,
539
+ "is_standard": true,
540
+ "derived_aggregated_field": null,
541
+ "derived_field_formula": null,
542
+ "section": null
543
+ },
544
+ {
545
+ "type": "CUSTOM_OBJECT_FIELD",
546
+ "custom_object_api_name": "gym_trainer__c",
547
+ "field_api_name": "owner_role",
548
+ "field_display_name": "Owner",
549
+ "data_type": {
550
+ "options_list": [],
551
+ "supported_types": [],
552
+ "field_type": "NATIVE_EDGE",
553
+ "og_model_rql_name": "Employee",
554
+ "db_model_name": "RoleWithCompany",
555
+ "reference_column_storage_type": "STRING"
556
+ },
557
+ "description": "The Employee responsible for the record. This is used by Permissions to determine who has ability to view, edit, and delete data",
558
+ "is_required": false,
559
+ "is_unique": false,
560
+ "is_indexed": null,
561
+ "rql_formula": null,
562
+ "formula_attr_metas": null,
563
+ "is_standard": true,
564
+ "derived_aggregated_field": null,
565
+ "derived_field_formula": null,
566
+ "section": null
567
+ },
568
+ {
569
+ "type": "CUSTOM_OBJECT_FIELD",
570
+ "custom_object_api_name": "gym_trainer__c",
571
+ "field_api_name": "last_modified_by",
572
+ "field_display_name": "Last Modified by",
573
+ "data_type": {
574
+ "options_list": [],
575
+ "supported_types": [],
576
+ "field_type": "NATIVE_EDGE",
577
+ "og_model_rql_name": "Employee",
578
+ "db_model_name": "RoleWithCompany",
579
+ "reference_column_storage_type": "STRING"
580
+ },
581
+ "description": "The Employee who made the latest change.",
582
+ "is_required": false,
583
+ "is_unique": false,
584
+ "is_indexed": null,
585
+ "rql_formula": null,
586
+ "formula_attr_metas": null,
587
+ "is_standard": true,
588
+ "derived_aggregated_field": null,
589
+ "derived_field_formula": null,
590
+ "section": null
591
+ },
592
+ {
593
+ "type": "CUSTOM_OBJECT_FIELD",
594
+ "custom_object_api_name": "gym_trainer__c",
595
+ "field_api_name": "created_by",
596
+ "field_display_name": "Created by",
597
+ "data_type": {
598
+ "options_list": [],
599
+ "supported_types": [],
600
+ "field_type": "NATIVE_EDGE",
601
+ "og_model_rql_name": "Employee",
602
+ "db_model_name": "RoleWithCompany",
603
+ "reference_column_storage_type": "STRING"
604
+ },
605
+ "description": "The Employee who created the record",
606
+ "is_required": false,
607
+ "is_unique": false,
608
+ "is_indexed": null,
609
+ "rql_formula": null,
610
+ "formula_attr_metas": null,
611
+ "is_standard": true,
612
+ "derived_aggregated_field": null,
613
+ "derived_field_formula": null,
614
+ "section": null
615
+ },
616
+ {
617
+ "type": "CUSTOM_OBJECT_FIELD_SECTION",
618
+ "section_id": "sec_tr_profile",
619
+ "model_name": "gym_trainer__c",
620
+ "name": "Trainer"
621
+ },
622
+ {
623
+ "type": "CUSTOM_OBJECT_FIELD",
624
+ "custom_object_api_name": "gym_trainer__c",
625
+ "field_api_name": "full_name__c",
626
+ "field_display_name": "Full name",
627
+ "data_type": {
628
+ "options_list": [],
629
+ "supported_types": [],
630
+ "field_type": "TEXT",
631
+ "max_length": 160
632
+ },
633
+ "description": null,
634
+ "is_required": true,
635
+ "is_unique": null,
636
+ "is_indexed": null,
637
+ "rql_formula": null,
638
+ "formula_attr_metas": null,
639
+ "is_standard": false,
640
+ "derived_aggregated_field": null,
641
+ "derived_field_formula": null,
642
+ "section": "sec_tr_profile"
643
+ },
644
+ {
645
+ "type": "CUSTOM_OBJECT_FIELD",
646
+ "custom_object_api_name": "gym_trainer__c",
647
+ "field_api_name": "email__c",
648
+ "field_display_name": "Email",
649
+ "data_type": {
650
+ "options_list": [],
651
+ "supported_types": [],
652
+ "field_type": "EMAIL"
653
+ },
654
+ "description": null,
655
+ "is_required": null,
656
+ "is_unique": null,
657
+ "is_indexed": null,
658
+ "rql_formula": null,
659
+ "formula_attr_metas": null,
660
+ "is_standard": false,
661
+ "derived_aggregated_field": null,
662
+ "derived_field_formula": null,
663
+ "section": "sec_tr_profile"
664
+ },
665
+ {
666
+ "type": "CUSTOM_OBJECT_FIELD",
667
+ "custom_object_api_name": "gym_trainer__c",
668
+ "field_api_name": "specialty__c",
669
+ "field_display_name": "Primary specialty",
670
+ "data_type": {
671
+ "options_list": ["Yoga", "Spin", "HIIT", "Strength", "Pilates", "Dance", "Aquatics", "General"],
672
+ "supported_types": [],
673
+ "field_type": "SELECT"
674
+ },
675
+ "description": null,
676
+ "is_required": null,
677
+ "is_unique": null,
678
+ "is_indexed": null,
679
+ "rql_formula": null,
680
+ "formula_attr_metas": null,
681
+ "is_standard": false,
682
+ "derived_aggregated_field": null,
683
+ "derived_field_formula": null,
684
+ "section": "sec_tr_profile"
685
+ },
686
+ {
687
+ "type": "CUSTOM_OBJECT_FIELD",
688
+ "custom_object_api_name": "gym_trainer__c",
689
+ "field_api_name": "bio__c",
690
+ "field_display_name": "Bio & certifications",
691
+ "data_type": {
692
+ "options_list": [],
693
+ "supported_types": [],
694
+ "field_type": "LONG_TEXT",
695
+ "max_length": 4000
696
+ },
697
+ "description": null,
698
+ "is_required": null,
699
+ "is_unique": null,
700
+ "is_indexed": null,
701
+ "rql_formula": null,
702
+ "formula_attr_metas": null,
703
+ "is_standard": false,
704
+ "derived_aggregated_field": null,
705
+ "derived_field_formula": null,
706
+ "section": "sec_tr_profile"
707
+ },
708
+ {
709
+ "type": "CUSTOM_OBJECT_FIELD",
710
+ "custom_object_api_name": "gym_trainer__c",
711
+ "field_api_name": "trainer_label__c",
712
+ "field_display_name": "List label",
713
+ "data_type": {
714
+ "options_list": [],
715
+ "supported_types": [],
716
+ "field_type": "TEXT",
717
+ "max_length": 220
718
+ },
719
+ "description": null,
720
+ "is_required": null,
721
+ "is_unique": null,
722
+ "is_indexed": null,
723
+ "rql_formula": null,
724
+ "formula_attr_metas": null,
725
+ "is_standard": false,
726
+ "derived_aggregated_field": null,
727
+ "derived_field_formula": "CONCATENATE(full_name__c, ' · ', specialty__c)",
728
+ "section": "sec_tr_profile"
729
+ },
730
+ {
731
+ "type": "CUSTOM_OBJECT",
732
+ "api_name": "gym_class_session__c",
733
+ "name": "Class session",
734
+ "description": "A scheduled class with assigned trainer, time, and capacity",
735
+ "category_api_name": "gym__c",
736
+ "icon": {
737
+ "emoji": "📅"
738
+ },
739
+ "plural_label": "Class sessions"
740
+ },
741
+ {
742
+ "type": "CUSTOM_OBJECT_FIELD",
743
+ "custom_object_api_name": "gym_class_session__c",
744
+ "field_api_name": "id",
745
+ "field_display_name": "ID",
746
+ "data_type": {
747
+ "options_list": [],
748
+ "supported_types": [],
749
+ "field_type": "TEXT"
750
+ },
751
+ "description": "The Rippling ID of a record",
752
+ "is_required": true,
753
+ "is_unique": true,
754
+ "is_indexed": null,
755
+ "rql_formula": null,
756
+ "formula_attr_metas": null,
757
+ "is_standard": true,
758
+ "derived_aggregated_field": null,
759
+ "derived_field_formula": null,
760
+ "section": null
761
+ },
762
+ {
763
+ "type": "CUSTOM_OBJECT_FIELD",
764
+ "custom_object_api_name": "gym_class_session__c",
765
+ "field_api_name": "created_at",
766
+ "field_display_name": "Created Date",
767
+ "data_type": {
768
+ "options_list": [],
769
+ "supported_types": [],
770
+ "field_type": "DATETIME"
771
+ },
772
+ "description": "The date and time a record was created",
773
+ "is_required": false,
774
+ "is_unique": false,
775
+ "is_indexed": null,
776
+ "rql_formula": null,
777
+ "formula_attr_metas": null,
778
+ "is_standard": true,
779
+ "derived_aggregated_field": null,
780
+ "derived_field_formula": null,
781
+ "section": null
782
+ },
783
+ {
784
+ "type": "CUSTOM_OBJECT_FIELD",
785
+ "custom_object_api_name": "gym_class_session__c",
786
+ "field_api_name": "updated_at",
787
+ "field_display_name": "Last Modified Date",
788
+ "data_type": {
789
+ "options_list": [],
790
+ "supported_types": [],
791
+ "field_type": "DATETIME"
792
+ },
793
+ "description": "The date and time a record was last updated",
794
+ "is_required": false,
795
+ "is_unique": false,
796
+ "is_indexed": null,
797
+ "rql_formula": null,
798
+ "formula_attr_metas": null,
799
+ "is_standard": true,
800
+ "derived_aggregated_field": null,
801
+ "derived_field_formula": null,
802
+ "section": null
803
+ },
804
+ {
805
+ "type": "CUSTOM_OBJECT_FIELD",
806
+ "custom_object_api_name": "gym_class_session__c",
807
+ "field_api_name": "system_updated_at",
808
+ "field_display_name": "System Modified At",
809
+ "data_type": {
810
+ "options_list": [],
811
+ "supported_types": [],
812
+ "field_type": "DATETIME"
813
+ },
814
+ "description": "The date and time a record was last updated by the system",
815
+ "is_required": false,
816
+ "is_unique": false,
817
+ "is_indexed": null,
818
+ "rql_formula": null,
819
+ "formula_attr_metas": null,
820
+ "is_standard": true,
821
+ "derived_aggregated_field": null,
822
+ "derived_field_formula": null,
823
+ "section": null
824
+ },
825
+ {
826
+ "type": "CUSTOM_OBJECT_FIELD",
827
+ "custom_object_api_name": "gym_class_session__c",
828
+ "field_api_name": "external_id",
829
+ "field_display_name": "External ID",
830
+ "data_type": {
831
+ "options_list": [],
832
+ "supported_types": [],
833
+ "field_type": "TEXT"
834
+ },
835
+ "description": "The external identifier for a record used in third party integrations",
836
+ "is_required": false,
837
+ "is_unique": true,
838
+ "is_indexed": null,
839
+ "rql_formula": null,
840
+ "formula_attr_metas": null,
841
+ "is_standard": true,
842
+ "derived_aggregated_field": null,
843
+ "derived_field_formula": null,
844
+ "section": null
845
+ },
846
+ {
847
+ "type": "CUSTOM_OBJECT_FIELD",
848
+ "custom_object_api_name": "gym_class_session__c",
849
+ "field_api_name": "name",
850
+ "field_display_name": "Name",
851
+ "data_type": {
852
+ "options_list": [],
853
+ "supported_types": [],
854
+ "field_type": "TEXT"
855
+ },
856
+ "description": "A string used to describe a record. This is used for display purposes as well as search",
857
+ "is_required": true,
858
+ "is_unique": false,
859
+ "is_indexed": null,
860
+ "rql_formula": null,
861
+ "formula_attr_metas": null,
862
+ "is_standard": true,
863
+ "derived_aggregated_field": null,
864
+ "derived_field_formula": null,
865
+ "section": null
866
+ },
867
+ {
868
+ "type": "CUSTOM_OBJECT_FIELD",
869
+ "custom_object_api_name": "gym_class_session__c",
870
+ "field_api_name": "owner_role",
871
+ "field_display_name": "Owner",
872
+ "data_type": {
873
+ "options_list": [],
874
+ "supported_types": [],
875
+ "field_type": "NATIVE_EDGE",
876
+ "og_model_rql_name": "Employee",
877
+ "db_model_name": "RoleWithCompany",
878
+ "reference_column_storage_type": "STRING"
879
+ },
880
+ "description": "The Employee responsible for the record. This is used by Permissions to determine who has ability to view, edit, and delete data",
881
+ "is_required": false,
882
+ "is_unique": false,
883
+ "is_indexed": null,
884
+ "rql_formula": null,
885
+ "formula_attr_metas": null,
886
+ "is_standard": true,
887
+ "derived_aggregated_field": null,
888
+ "derived_field_formula": null,
889
+ "section": null
890
+ },
891
+ {
892
+ "type": "CUSTOM_OBJECT_FIELD",
893
+ "custom_object_api_name": "gym_class_session__c",
894
+ "field_api_name": "last_modified_by",
895
+ "field_display_name": "Last Modified by",
896
+ "data_type": {
897
+ "options_list": [],
898
+ "supported_types": [],
899
+ "field_type": "NATIVE_EDGE",
900
+ "og_model_rql_name": "Employee",
901
+ "db_model_name": "RoleWithCompany",
902
+ "reference_column_storage_type": "STRING"
903
+ },
904
+ "description": "The Employee who made the latest change.",
905
+ "is_required": false,
906
+ "is_unique": false,
907
+ "is_indexed": null,
908
+ "rql_formula": null,
909
+ "formula_attr_metas": null,
910
+ "is_standard": true,
911
+ "derived_aggregated_field": null,
912
+ "derived_field_formula": null,
913
+ "section": null
914
+ },
915
+ {
916
+ "type": "CUSTOM_OBJECT_FIELD",
917
+ "custom_object_api_name": "gym_class_session__c",
918
+ "field_api_name": "created_by",
919
+ "field_display_name": "Created by",
920
+ "data_type": {
921
+ "options_list": [],
922
+ "supported_types": [],
923
+ "field_type": "NATIVE_EDGE",
924
+ "og_model_rql_name": "Employee",
925
+ "db_model_name": "RoleWithCompany",
926
+ "reference_column_storage_type": "STRING"
927
+ },
928
+ "description": "The Employee who created the record",
929
+ "is_required": false,
930
+ "is_unique": false,
931
+ "is_indexed": null,
932
+ "rql_formula": null,
933
+ "formula_attr_metas": null,
934
+ "is_standard": true,
935
+ "derived_aggregated_field": null,
936
+ "derived_field_formula": null,
937
+ "section": null
938
+ },
939
+ {
940
+ "type": "CUSTOM_OBJECT_FIELD_SECTION",
941
+ "section_id": "sec_cs_schedule",
942
+ "model_name": "gym_class_session__c",
943
+ "name": "Schedule"
944
+ },
945
+ {
946
+ "type": "CUSTOM_OBJECT_FIELD_SECTION",
947
+ "section_id": "sec_cs_class",
948
+ "model_name": "gym_class_session__c",
949
+ "name": "Class & room"
950
+ },
951
+ {
952
+ "type": "CUSTOM_OBJECT_FIELD",
953
+ "custom_object_api_name": "gym_class_session__c",
954
+ "field_api_name": "trainer_ref__c",
955
+ "field_display_name": "Trainer",
956
+ "data_type": {
957
+ "options_list": [],
958
+ "supported_types": [],
959
+ "field_type": "OG_REFERENCE_FIELD",
960
+ "og_model_rql_name": "gym_trainer__c",
961
+ "edge_type": "LOOKUP",
962
+ "related_data_label": "Class sessions"
963
+ },
964
+ "description": "Instructor leading this session",
965
+ "is_required": true,
966
+ "is_unique": null,
967
+ "is_indexed": null,
968
+ "rql_formula": null,
969
+ "formula_attr_metas": null,
970
+ "is_standard": false,
971
+ "derived_aggregated_field": null,
972
+ "derived_field_formula": null,
973
+ "section": "sec_cs_class"
974
+ },
975
+ {
976
+ "type": "CUSTOM_OBJECT_FIELD",
977
+ "custom_object_api_name": "gym_class_session__c",
978
+ "field_api_name": "start_time__c",
979
+ "field_display_name": "Start",
980
+ "data_type": {
981
+ "options_list": [],
982
+ "supported_types": [],
983
+ "field_type": "DATETIME"
984
+ },
985
+ "description": "Session start (local)",
986
+ "is_required": true,
987
+ "is_unique": null,
988
+ "is_indexed": null,
989
+ "rql_formula": null,
990
+ "formula_attr_metas": null,
991
+ "is_standard": false,
992
+ "derived_aggregated_field": null,
993
+ "derived_field_formula": null,
994
+ "section": "sec_cs_schedule"
995
+ },
996
+ {
997
+ "type": "CUSTOM_OBJECT_FIELD",
998
+ "custom_object_api_name": "gym_class_session__c",
999
+ "field_api_name": "end_time__c",
1000
+ "field_display_name": "End",
1001
+ "data_type": {
1002
+ "options_list": [],
1003
+ "supported_types": [],
1004
+ "field_type": "DATETIME"
1005
+ },
1006
+ "description": "Session end (local)",
1007
+ "is_required": true,
1008
+ "is_unique": null,
1009
+ "is_indexed": null,
1010
+ "rql_formula": null,
1011
+ "formula_attr_metas": null,
1012
+ "is_standard": false,
1013
+ "derived_aggregated_field": null,
1014
+ "derived_field_formula": null,
1015
+ "section": "sec_cs_schedule"
1016
+ },
1017
+ {
1018
+ "type": "CUSTOM_OBJECT_FIELD",
1019
+ "custom_object_api_name": "gym_class_session__c",
1020
+ "field_api_name": "class_type__c",
1021
+ "field_display_name": "Class type",
1022
+ "data_type": {
1023
+ "options_list": [
1024
+ "Yoga",
1025
+ "Spin",
1026
+ "HIIT",
1027
+ "Strength",
1028
+ "Pilates",
1029
+ "Dance",
1030
+ "Aquatics",
1031
+ "Recovery / stretch",
1032
+ "Other"
1033
+ ],
1034
+ "supported_types": [],
1035
+ "field_type": "SELECT"
1036
+ },
1037
+ "description": null,
1038
+ "is_required": true,
1039
+ "is_unique": null,
1040
+ "is_indexed": null,
1041
+ "rql_formula": null,
1042
+ "formula_attr_metas": null,
1043
+ "is_standard": false,
1044
+ "derived_aggregated_field": null,
1045
+ "derived_field_formula": null,
1046
+ "section": "sec_cs_class"
1047
+ },
1048
+ {
1049
+ "type": "CUSTOM_OBJECT_FIELD",
1050
+ "custom_object_api_name": "gym_class_session__c",
1051
+ "field_api_name": "room_name__c",
1052
+ "field_display_name": "Studio / room",
1053
+ "data_type": {
1054
+ "options_list": [],
1055
+ "supported_types": [],
1056
+ "field_type": "TEXT",
1057
+ "max_length": 80
1058
+ },
1059
+ "description": "E.g. Studio A, Pool lane 2",
1060
+ "is_required": null,
1061
+ "is_unique": null,
1062
+ "is_indexed": null,
1063
+ "rql_formula": null,
1064
+ "formula_attr_metas": null,
1065
+ "is_standard": false,
1066
+ "derived_aggregated_field": null,
1067
+ "derived_field_formula": null,
1068
+ "section": "sec_cs_class"
1069
+ },
1070
+ {
1071
+ "type": "CUSTOM_OBJECT_FIELD",
1072
+ "custom_object_api_name": "gym_class_session__c",
1073
+ "field_api_name": "capacity__c",
1074
+ "field_display_name": "Capacity",
1075
+ "data_type": {
1076
+ "options_list": [],
1077
+ "supported_types": [],
1078
+ "field_type": "NUMBER",
1079
+ "num_of_decimal_places": 0
1080
+ },
1081
+ "description": "Maximum attendees for this session",
1082
+ "is_required": null,
1083
+ "is_unique": null,
1084
+ "is_indexed": null,
1085
+ "rql_formula": null,
1086
+ "formula_attr_metas": null,
1087
+ "is_standard": false,
1088
+ "derived_aggregated_field": null,
1089
+ "derived_field_formula": null,
1090
+ "section": "sec_cs_class"
1091
+ },
1092
+ {
1093
+ "type": "CUSTOM_OBJECT_FIELD",
1094
+ "custom_object_api_name": "gym_class_session__c",
1095
+ "field_api_name": "session_notes__c",
1096
+ "field_display_name": "Notes",
1097
+ "data_type": {
1098
+ "options_list": [],
1099
+ "supported_types": [],
1100
+ "field_type": "LONG_TEXT",
1101
+ "max_length": 4000
1102
+ },
1103
+ "description": null,
1104
+ "is_required": null,
1105
+ "is_unique": null,
1106
+ "is_indexed": null,
1107
+ "rql_formula": null,
1108
+ "formula_attr_metas": null,
1109
+ "is_standard": false,
1110
+ "derived_aggregated_field": null,
1111
+ "derived_field_formula": null,
1112
+ "section": "sec_cs_class"
1113
+ },
1114
+ {
1115
+ "type": "CUSTOM_OBJECT_FIELD",
1116
+ "custom_object_api_name": "gym_class_session__c",
1117
+ "field_api_name": "session_date__c",
1118
+ "field_display_name": "Session date",
1119
+ "data_type": {
1120
+ "options_list": [],
1121
+ "supported_types": [],
1122
+ "field_type": "DATE"
1123
+ },
1124
+ "description": "Calendar day for filtering “today” views",
1125
+ "is_required": null,
1126
+ "is_unique": null,
1127
+ "is_indexed": null,
1128
+ "rql_formula": null,
1129
+ "formula_attr_metas": null,
1130
+ "is_standard": false,
1131
+ "derived_aggregated_field": null,
1132
+ "derived_field_formula": "DATETRUNC('DAY', start_time__c)",
1133
+ "section": "sec_cs_schedule"
1134
+ },
1135
+ {
1136
+ "type": "CUSTOM_OBJECT_FIELD",
1137
+ "custom_object_api_name": "gym_class_session__c",
1138
+ "field_api_name": "session_board_label__c",
1139
+ "field_display_name": "Board label",
1140
+ "data_type": {
1141
+ "options_list": [],
1142
+ "supported_types": [],
1143
+ "field_type": "TEXT",
1144
+ "max_length": 260
1145
+ },
1146
+ "description": null,
1147
+ "is_required": null,
1148
+ "is_unique": null,
1149
+ "is_indexed": null,
1150
+ "rql_formula": null,
1151
+ "formula_attr_metas": null,
1152
+ "is_standard": false,
1153
+ "derived_aggregated_field": null,
1154
+ "derived_field_formula": "CONCATENATE(class_type__c, ' · ', room_name__c)",
1155
+ "section": "sec_cs_schedule"
1156
+ },
1157
+ {
1158
+ "type": "CUSTOM_OBJECT",
1159
+ "api_name": "gym_class_enrollment__c",
1160
+ "name": "Class enrollment",
1161
+ "description": "Member registration for a session with attendance and check-in",
1162
+ "category_api_name": "gym__c",
1163
+ "icon": {
1164
+ "emoji": "✅"
1165
+ },
1166
+ "plural_label": "Class enrollments"
1167
+ },
1168
+ {
1169
+ "type": "CUSTOM_OBJECT_FIELD",
1170
+ "custom_object_api_name": "gym_class_enrollment__c",
1171
+ "field_api_name": "id",
1172
+ "field_display_name": "ID",
1173
+ "data_type": {
1174
+ "options_list": [],
1175
+ "supported_types": [],
1176
+ "field_type": "TEXT"
1177
+ },
1178
+ "description": "The Rippling ID of a record",
1179
+ "is_required": true,
1180
+ "is_unique": true,
1181
+ "is_indexed": null,
1182
+ "rql_formula": null,
1183
+ "formula_attr_metas": null,
1184
+ "is_standard": true,
1185
+ "derived_aggregated_field": null,
1186
+ "derived_field_formula": null,
1187
+ "section": null
1188
+ },
1189
+ {
1190
+ "type": "CUSTOM_OBJECT_FIELD",
1191
+ "custom_object_api_name": "gym_class_enrollment__c",
1192
+ "field_api_name": "created_at",
1193
+ "field_display_name": "Created Date",
1194
+ "data_type": {
1195
+ "options_list": [],
1196
+ "supported_types": [],
1197
+ "field_type": "DATETIME"
1198
+ },
1199
+ "description": "The date and time a record was created",
1200
+ "is_required": false,
1201
+ "is_unique": false,
1202
+ "is_indexed": null,
1203
+ "rql_formula": null,
1204
+ "formula_attr_metas": null,
1205
+ "is_standard": true,
1206
+ "derived_aggregated_field": null,
1207
+ "derived_field_formula": null,
1208
+ "section": null
1209
+ },
1210
+ {
1211
+ "type": "CUSTOM_OBJECT_FIELD",
1212
+ "custom_object_api_name": "gym_class_enrollment__c",
1213
+ "field_api_name": "updated_at",
1214
+ "field_display_name": "Last Modified Date",
1215
+ "data_type": {
1216
+ "options_list": [],
1217
+ "supported_types": [],
1218
+ "field_type": "DATETIME"
1219
+ },
1220
+ "description": "The date and time a record was last updated",
1221
+ "is_required": false,
1222
+ "is_unique": false,
1223
+ "is_indexed": null,
1224
+ "rql_formula": null,
1225
+ "formula_attr_metas": null,
1226
+ "is_standard": true,
1227
+ "derived_aggregated_field": null,
1228
+ "derived_field_formula": null,
1229
+ "section": null
1230
+ },
1231
+ {
1232
+ "type": "CUSTOM_OBJECT_FIELD",
1233
+ "custom_object_api_name": "gym_class_enrollment__c",
1234
+ "field_api_name": "system_updated_at",
1235
+ "field_display_name": "System Modified At",
1236
+ "data_type": {
1237
+ "options_list": [],
1238
+ "supported_types": [],
1239
+ "field_type": "DATETIME"
1240
+ },
1241
+ "description": "The date and time a record was last updated by the system",
1242
+ "is_required": false,
1243
+ "is_unique": false,
1244
+ "is_indexed": null,
1245
+ "rql_formula": null,
1246
+ "formula_attr_metas": null,
1247
+ "is_standard": true,
1248
+ "derived_aggregated_field": null,
1249
+ "derived_field_formula": null,
1250
+ "section": null
1251
+ },
1252
+ {
1253
+ "type": "CUSTOM_OBJECT_FIELD",
1254
+ "custom_object_api_name": "gym_class_enrollment__c",
1255
+ "field_api_name": "external_id",
1256
+ "field_display_name": "External ID",
1257
+ "data_type": {
1258
+ "options_list": [],
1259
+ "supported_types": [],
1260
+ "field_type": "TEXT"
1261
+ },
1262
+ "description": "The external identifier for a record used in third party integrations",
1263
+ "is_required": false,
1264
+ "is_unique": true,
1265
+ "is_indexed": null,
1266
+ "rql_formula": null,
1267
+ "formula_attr_metas": null,
1268
+ "is_standard": true,
1269
+ "derived_aggregated_field": null,
1270
+ "derived_field_formula": null,
1271
+ "section": null
1272
+ },
1273
+ {
1274
+ "type": "CUSTOM_OBJECT_FIELD",
1275
+ "custom_object_api_name": "gym_class_enrollment__c",
1276
+ "field_api_name": "name",
1277
+ "field_display_name": "Name",
1278
+ "data_type": {
1279
+ "options_list": [],
1280
+ "supported_types": [],
1281
+ "field_type": "TEXT"
1282
+ },
1283
+ "description": "A string used to describe a record. This is used for display purposes as well as search",
1284
+ "is_required": true,
1285
+ "is_unique": false,
1286
+ "is_indexed": null,
1287
+ "rql_formula": null,
1288
+ "formula_attr_metas": null,
1289
+ "is_standard": true,
1290
+ "derived_aggregated_field": null,
1291
+ "derived_field_formula": null,
1292
+ "section": null
1293
+ },
1294
+ {
1295
+ "type": "CUSTOM_OBJECT_FIELD",
1296
+ "custom_object_api_name": "gym_class_enrollment__c",
1297
+ "field_api_name": "owner_role",
1298
+ "field_display_name": "Owner",
1299
+ "data_type": {
1300
+ "options_list": [],
1301
+ "supported_types": [],
1302
+ "field_type": "NATIVE_EDGE",
1303
+ "og_model_rql_name": "Employee",
1304
+ "db_model_name": "RoleWithCompany",
1305
+ "reference_column_storage_type": "STRING"
1306
+ },
1307
+ "description": "The Employee responsible for the record. This is used by Permissions to determine who has ability to view, edit, and delete data",
1308
+ "is_required": false,
1309
+ "is_unique": false,
1310
+ "is_indexed": null,
1311
+ "rql_formula": null,
1312
+ "formula_attr_metas": null,
1313
+ "is_standard": true,
1314
+ "derived_aggregated_field": null,
1315
+ "derived_field_formula": null,
1316
+ "section": null
1317
+ },
1318
+ {
1319
+ "type": "CUSTOM_OBJECT_FIELD",
1320
+ "custom_object_api_name": "gym_class_enrollment__c",
1321
+ "field_api_name": "last_modified_by",
1322
+ "field_display_name": "Last Modified by",
1323
+ "data_type": {
1324
+ "options_list": [],
1325
+ "supported_types": [],
1326
+ "field_type": "NATIVE_EDGE",
1327
+ "og_model_rql_name": "Employee",
1328
+ "db_model_name": "RoleWithCompany",
1329
+ "reference_column_storage_type": "STRING"
1330
+ },
1331
+ "description": "The Employee who made the latest change.",
1332
+ "is_required": false,
1333
+ "is_unique": false,
1334
+ "is_indexed": null,
1335
+ "rql_formula": null,
1336
+ "formula_attr_metas": null,
1337
+ "is_standard": true,
1338
+ "derived_aggregated_field": null,
1339
+ "derived_field_formula": null,
1340
+ "section": null
1341
+ },
1342
+ {
1343
+ "type": "CUSTOM_OBJECT_FIELD",
1344
+ "custom_object_api_name": "gym_class_enrollment__c",
1345
+ "field_api_name": "created_by",
1346
+ "field_display_name": "Created by",
1347
+ "data_type": {
1348
+ "options_list": [],
1349
+ "supported_types": [],
1350
+ "field_type": "NATIVE_EDGE",
1351
+ "og_model_rql_name": "Employee",
1352
+ "db_model_name": "RoleWithCompany",
1353
+ "reference_column_storage_type": "STRING"
1354
+ },
1355
+ "description": "The Employee who created the record",
1356
+ "is_required": false,
1357
+ "is_unique": false,
1358
+ "is_indexed": null,
1359
+ "rql_formula": null,
1360
+ "formula_attr_metas": null,
1361
+ "is_standard": true,
1362
+ "derived_aggregated_field": null,
1363
+ "derived_field_formula": null,
1364
+ "section": null
1365
+ },
1366
+ {
1367
+ "type": "CUSTOM_OBJECT_FIELD_SECTION",
1368
+ "section_id": "sec_ce_link",
1369
+ "model_name": "gym_class_enrollment__c",
1370
+ "name": "Session & member"
1371
+ },
1372
+ {
1373
+ "type": "CUSTOM_OBJECT_FIELD_SECTION",
1374
+ "section_id": "sec_ce_att",
1375
+ "model_name": "gym_class_enrollment__c",
1376
+ "name": "Attendance"
1377
+ },
1378
+ {
1379
+ "type": "CUSTOM_OBJECT_FIELD",
1380
+ "custom_object_api_name": "gym_class_enrollment__c",
1381
+ "field_api_name": "class_session_ref__c",
1382
+ "field_display_name": "Class session",
1383
+ "data_type": {
1384
+ "options_list": [],
1385
+ "supported_types": [],
1386
+ "field_type": "OG_REFERENCE_FIELD",
1387
+ "og_model_rql_name": "gym_class_session__c",
1388
+ "edge_type": "PARENT_CHILD",
1389
+ "related_data_label": "Enrollments",
1390
+ "parent_child_type": "PRIMARY",
1391
+ "enable_parent_owner_inheritance": false
1392
+ },
1393
+ "description": "Which scheduled class this row belongs to",
1394
+ "is_required": true,
1395
+ "is_unique": null,
1396
+ "is_indexed": null,
1397
+ "rql_formula": null,
1398
+ "formula_attr_metas": null,
1399
+ "is_standard": false,
1400
+ "derived_aggregated_field": null,
1401
+ "derived_field_formula": null,
1402
+ "section": "sec_ce_link"
1403
+ },
1404
+ {
1405
+ "type": "CUSTOM_OBJECT_FIELD",
1406
+ "custom_object_api_name": "gym_class_enrollment__c",
1407
+ "field_api_name": "member_ref__c",
1408
+ "field_display_name": "Member",
1409
+ "data_type": {
1410
+ "options_list": [],
1411
+ "supported_types": [],
1412
+ "field_type": "OG_REFERENCE_FIELD",
1413
+ "og_model_rql_name": "gym_member__c",
1414
+ "edge_type": "LOOKUP",
1415
+ "related_data_label": "Class enrollments"
1416
+ },
1417
+ "description": null,
1418
+ "is_required": true,
1419
+ "is_unique": null,
1420
+ "is_indexed": null,
1421
+ "rql_formula": null,
1422
+ "formula_attr_metas": null,
1423
+ "is_standard": false,
1424
+ "derived_aggregated_field": null,
1425
+ "derived_field_formula": null,
1426
+ "section": "sec_ce_link"
1427
+ },
1428
+ {
1429
+ "type": "CUSTOM_OBJECT_FIELD",
1430
+ "custom_object_api_name": "gym_class_enrollment__c",
1431
+ "field_api_name": "attendance_status__c",
1432
+ "field_display_name": "Attendance",
1433
+ "data_type": {
1434
+ "options_list": ["Registered", "Checked in", "Late", "No-show", "Cancelled"],
1435
+ "supported_types": [],
1436
+ "field_type": "SELECT"
1437
+ },
1438
+ "description": "Front desk: set to Checked in when the member arrives",
1439
+ "is_required": true,
1440
+ "is_unique": null,
1441
+ "is_indexed": null,
1442
+ "rql_formula": null,
1443
+ "formula_attr_metas": null,
1444
+ "is_standard": false,
1445
+ "derived_aggregated_field": null,
1446
+ "derived_field_formula": null,
1447
+ "section": "sec_ce_att"
1448
+ },
1449
+ {
1450
+ "type": "CUSTOM_OBJECT_FIELD",
1451
+ "custom_object_api_name": "gym_class_enrollment__c",
1452
+ "field_api_name": "checked_in_at__c",
1453
+ "field_display_name": "Checked in at",
1454
+ "data_type": {
1455
+ "options_list": [],
1456
+ "supported_types": [],
1457
+ "field_type": "DATETIME"
1458
+ },
1459
+ "description": "Timestamp when staff recorded arrival (optional)",
1460
+ "is_required": null,
1461
+ "is_unique": null,
1462
+ "is_indexed": null,
1463
+ "rql_formula": null,
1464
+ "formula_attr_metas": null,
1465
+ "is_standard": false,
1466
+ "derived_aggregated_field": null,
1467
+ "derived_field_formula": null,
1468
+ "section": "sec_ce_att"
1469
+ },
1470
+ {
1471
+ "type": "CUSTOM_OBJECT_FIELD",
1472
+ "custom_object_api_name": "gym_class_enrollment__c",
1473
+ "field_api_name": "enrollment_notes__c",
1474
+ "field_display_name": "Notes",
1475
+ "data_type": {
1476
+ "options_list": [],
1477
+ "supported_types": [],
1478
+ "field_type": "LONG_TEXT",
1479
+ "max_length": 2000
1480
+ },
1481
+ "description": null,
1482
+ "is_required": null,
1483
+ "is_unique": null,
1484
+ "is_indexed": null,
1485
+ "rql_formula": null,
1486
+ "formula_attr_metas": null,
1487
+ "is_standard": false,
1488
+ "derived_aggregated_field": null,
1489
+ "derived_field_formula": null,
1490
+ "section": "sec_ce_att"
1491
+ },
1492
+ {
1493
+ "type": "CUSTOM_OBJECT_FIELD",
1494
+ "custom_object_api_name": "gym_class_enrollment__c",
1495
+ "field_api_name": "roster_row_label__c",
1496
+ "field_display_name": "Roster row label",
1497
+ "data_type": {
1498
+ "options_list": [],
1499
+ "supported_types": [],
1500
+ "field_type": "TEXT",
1501
+ "max_length": 160
1502
+ },
1503
+ "description": null,
1504
+ "is_required": null,
1505
+ "is_unique": null,
1506
+ "is_indexed": null,
1507
+ "rql_formula": null,
1508
+ "formula_attr_metas": null,
1509
+ "is_standard": false,
1510
+ "derived_aggregated_field": null,
1511
+ "derived_field_formula": "CONCATENATE(attendance_status__c, ' · Enrollment')",
1512
+ "section": "sec_ce_att"
1513
+ },
1514
+ {
1515
+ "type": "CUSTOM_OBJECT_FIELD",
1516
+ "custom_object_api_name": "gym_class_session__c",
1517
+ "field_api_name": "enrollment_count__c",
1518
+ "field_display_name": "Enrolled (count)",
1519
+ "data_type": {
1520
+ "options_list": [],
1521
+ "supported_types": [],
1522
+ "field_type": "NUMBER"
1523
+ },
1524
+ "description": "Rows on this session’s roster",
1525
+ "is_required": null,
1526
+ "is_unique": null,
1527
+ "is_indexed": null,
1528
+ "rql_formula": null,
1529
+ "formula_attr_metas": null,
1530
+ "is_standard": false,
1531
+ "derived_aggregated_field": {
1532
+ "aggregation_function": "COUNT",
1533
+ "child_model_name": "gym_class_enrollment__c",
1534
+ "currency_code": null,
1535
+ "field_to_aggregate": "member_ref__c",
1536
+ "filters": [],
1537
+ "lookup_field_api_name": "class_session_ref__c"
1538
+ },
1539
+ "derived_field_formula": null,
1540
+ "section": "sec_cs_schedule"
1541
+ },
1542
+ {
1543
+ "type": "CUSTOM_OBJECT_VALIDATION_RULE",
1544
+ "model_rql_name": "gym_class_session__c",
1545
+ "rule_id": "gym_session_end_after_start",
1546
+ "state": "ACTIVE",
1547
+ "level": "FIELD",
1548
+ "display_name": "End time must be after start",
1549
+ "rule_description": "Prevents zero-length or inverted intervals",
1550
+ "custom_error_message": "End time must be after the start time.",
1551
+ "rql_formula": "(end_time__c <= start_time__c)",
1552
+ "field_rql_name": "end_time__c"
1553
+ },
1554
+ {
1555
+ "type": "CUSTOM_OBJECT_RECORD_TRIGGERED_FLOW",
1556
+ "model_rql_name": "gym_class_enrollment__c",
1557
+ "flow_id": "gym_default_enrollment_status",
1558
+ "flow_name": "Default attendance to Registered",
1559
+ "trigger_type": "CREATE",
1560
+ "description": "New roster rows start as Registered unless changed",
1561
+ "actions": [
1562
+ {
1563
+ "target_field": "attendance_status__c",
1564
+ "fixed_value": ["Registered"]
1565
+ }
1566
+ ]
1567
+ },
1568
+ {
1569
+ "type": "CUSTOM_OBJECT_LIST_VIEW",
1570
+ "object_rql_name": "gym_member__c",
1571
+ "view_id": "view_gym_all_members",
1572
+ "name": "All members",
1573
+ "public": true,
1574
+ "fields": ["member_display_name__c", "email__c", "phone__c", "membership_status__c", "join_date__c"],
1575
+ "description": "Directory with membership status",
1576
+ "object_scope": "all",
1577
+ "sort_order": "ASC",
1578
+ "order_by": "last_name__c"
1579
+ },
1580
+ {
1581
+ "type": "CUSTOM_OBJECT_LIST_VIEW",
1582
+ "object_rql_name": "gym_trainer__c",
1583
+ "view_id": "view_gym_all_trainers",
1584
+ "name": "All trainers",
1585
+ "public": true,
1586
+ "fields": ["full_name__c", "email__c", "specialty__c", "trainer_label__c"],
1587
+ "description": "Staff roster with session counts",
1588
+ "object_scope": "all",
1589
+ "sort_order": "ASC",
1590
+ "order_by": "full_name__c"
1591
+ },
1592
+ {
1593
+ "type": "CUSTOM_OBJECT_LIST_VIEW",
1594
+ "object_rql_name": "gym_class_session__c",
1595
+ "view_id": "view_gym_all_sessions",
1596
+ "name": "All class sessions",
1597
+ "public": true,
1598
+ "fields": [
1599
+ "trainer_ref__c",
1600
+ "start_time__c",
1601
+ "end_time__c",
1602
+ "class_type__c",
1603
+ "room_name__c",
1604
+ "capacity__c",
1605
+ "enrollment_count__c",
1606
+ "session_board_label__c"
1607
+ ],
1608
+ "description": "Chronological schedule with trainer and enrollments",
1609
+ "object_scope": "all",
1610
+ "sort_order": "ASC",
1611
+ "order_by": "start_time__c"
1612
+ },
1613
+ {
1614
+ "type": "CUSTOM_OBJECT_LIST_VIEW",
1615
+ "object_rql_name": "gym_class_session__c",
1616
+ "view_id": "view_gym_today_sessions",
1617
+ "name": "Today’s class sessions",
1618
+ "public": true,
1619
+ "fields": [
1620
+ "trainer_ref__c",
1621
+ "start_time__c",
1622
+ "end_time__c",
1623
+ "class_type__c",
1624
+ "room_name__c",
1625
+ "enrollment_count__c",
1626
+ "session_board_label__c",
1627
+ "session_date__c"
1628
+ ],
1629
+ "description": "Sessions whose calendar day is today — use with Today’s schedule SDUI tab",
1630
+ "object_scope": "all",
1631
+ "sort_order": "ASC",
1632
+ "order_by": "start_time__c",
1633
+ "rql_filter": "(session_date__c == TODAY())"
1634
+ },
1635
+ {
1636
+ "type": "CUSTOM_OBJECT_LIST_VIEW",
1637
+ "object_rql_name": "gym_class_enrollment__c",
1638
+ "view_id": "view_gym_all_enrollments",
1639
+ "name": "All enrollments",
1640
+ "public": true,
1641
+ "fields": [
1642
+ "class_session_ref__c",
1643
+ "member_ref__c",
1644
+ "attendance_status__c",
1645
+ "checked_in_at__c",
1646
+ "roster_row_label__c"
1647
+ ],
1648
+ "description": "Full roster grid",
1649
+ "object_scope": "all",
1650
+ "sort_order": "ASC",
1651
+ "order_by": "member_ref__c"
1652
+ },
1653
+ {
1654
+ "type": "CUSTOM_OBJECT_PAGE_LAYOUT",
1655
+ "layout_id": "layout_gym_member",
1656
+ "api_name": "default",
1657
+ "object_rql_name": "gym_member__c",
1658
+ "name": "Member",
1659
+ "system_created": false,
1660
+ "tab_edits": {
1661
+ "newTabs": [
1662
+ {
1663
+ "key": "member",
1664
+ "name": "Member",
1665
+ "type": "tab_with_sections",
1666
+ "sections": [
1667
+ {
1668
+ "key": "profile",
1669
+ "name": "Profile",
1670
+ "type": "fields_section",
1671
+ "fields": [
1672
+ {
1673
+ "fieldRqlName": "first_name__c"
1674
+ },
1675
+ {
1676
+ "fieldRqlName": "last_name__c"
1677
+ },
1678
+ {
1679
+ "fieldRqlName": "member_display_name__c"
1680
+ },
1681
+ {
1682
+ "fieldRqlName": "email__c"
1683
+ },
1684
+ {
1685
+ "fieldRqlName": "phone__c"
1686
+ }
1687
+ ]
1688
+ },
1689
+ {
1690
+ "key": "membership",
1691
+ "name": "Membership",
1692
+ "type": "fields_section",
1693
+ "fields": [
1694
+ {
1695
+ "fieldRqlName": "membership_status__c"
1696
+ },
1697
+ {
1698
+ "fieldRqlName": "join_date__c"
1699
+ },
1700
+ {
1701
+ "fieldRqlName": "emergency_contact__c"
1702
+ }
1703
+ ]
1704
+ }
1705
+ ]
1706
+ }
1707
+ ],
1708
+ "systemTabEdits": {},
1709
+ "tabsOrder": ["member"]
1710
+ },
1711
+ "header_edits": {
1712
+ "newTitleField": "member_display_name__c"
1713
+ },
1714
+ "visibility_conditions": {},
1715
+ "blueprint_key": "gym_member__c"
1716
+ },
1717
+ {
1718
+ "type": "CUSTOM_OBJECT_PAGE_LAYOUT",
1719
+ "layout_id": "layout_gym_trainer",
1720
+ "api_name": "default",
1721
+ "object_rql_name": "gym_trainer__c",
1722
+ "name": "Trainer",
1723
+ "system_created": false,
1724
+ "tab_edits": {
1725
+ "newTabs": [
1726
+ {
1727
+ "key": "trainer",
1728
+ "name": "Trainer",
1729
+ "type": "tab_with_sections",
1730
+ "sections": [
1731
+ {
1732
+ "key": "info",
1733
+ "name": "Details",
1734
+ "type": "fields_section",
1735
+ "fields": [
1736
+ {
1737
+ "fieldRqlName": "full_name__c"
1738
+ },
1739
+ {
1740
+ "fieldRqlName": "email__c"
1741
+ },
1742
+ {
1743
+ "fieldRqlName": "specialty__c"
1744
+ },
1745
+ {
1746
+ "fieldRqlName": "trainer_label__c"
1747
+ },
1748
+ {
1749
+ "fieldRqlName": "bio__c"
1750
+ }
1751
+ ]
1752
+ }
1753
+ ]
1754
+ }
1755
+ ],
1756
+ "systemTabEdits": {},
1757
+ "tabsOrder": ["trainer"]
1758
+ },
1759
+ "header_edits": {
1760
+ "newTitleField": "full_name__c"
1761
+ },
1762
+ "visibility_conditions": {},
1763
+ "blueprint_key": "gym_trainer__c"
1764
+ },
1765
+ {
1766
+ "type": "CUSTOM_OBJECT_PAGE_LAYOUT",
1767
+ "layout_id": "layout_gym_class_session",
1768
+ "api_name": "default",
1769
+ "object_rql_name": "gym_class_session__c",
1770
+ "name": "Class session",
1771
+ "system_created": false,
1772
+ "tab_edits": {
1773
+ "newTabs": [
1774
+ {
1775
+ "key": "session",
1776
+ "name": "Session",
1777
+ "type": "tab_with_sections",
1778
+ "sections": [
1779
+ {
1780
+ "key": "schedule",
1781
+ "name": "Schedule",
1782
+ "type": "fields_section",
1783
+ "fields": [
1784
+ {
1785
+ "fieldRqlName": "trainer_ref__c"
1786
+ },
1787
+ {
1788
+ "fieldRqlName": "start_time__c"
1789
+ },
1790
+ {
1791
+ "fieldRqlName": "end_time__c"
1792
+ },
1793
+ {
1794
+ "fieldRqlName": "session_date__c"
1795
+ },
1796
+ {
1797
+ "fieldRqlName": "session_board_label__c"
1798
+ },
1799
+ {
1800
+ "fieldRqlName": "enrollment_count__c"
1801
+ }
1802
+ ]
1803
+ },
1804
+ {
1805
+ "key": "class",
1806
+ "name": "Class & room",
1807
+ "type": "fields_section",
1808
+ "fields": [
1809
+ {
1810
+ "fieldRqlName": "class_type__c"
1811
+ },
1812
+ {
1813
+ "fieldRqlName": "room_name__c"
1814
+ },
1815
+ {
1816
+ "fieldRqlName": "capacity__c"
1817
+ },
1818
+ {
1819
+ "fieldRqlName": "session_notes__c"
1820
+ }
1821
+ ]
1822
+ }
1823
+ ]
1824
+ }
1825
+ ],
1826
+ "systemTabEdits": {},
1827
+ "tabsOrder": ["session"]
1828
+ },
1829
+ "header_edits": {
1830
+ "newTitleField": "session_board_label__c"
1831
+ },
1832
+ "visibility_conditions": {},
1833
+ "blueprint_key": "gym_class_session__c"
1834
+ },
1835
+ {
1836
+ "type": "CUSTOM_OBJECT_PAGE_LAYOUT",
1837
+ "layout_id": "layout_gym_enrollment",
1838
+ "api_name": "default",
1839
+ "object_rql_name": "gym_class_enrollment__c",
1840
+ "name": "Enrollment",
1841
+ "system_created": false,
1842
+ "tab_edits": {
1843
+ "newTabs": [
1844
+ {
1845
+ "key": "roster",
1846
+ "name": "Roster",
1847
+ "type": "tab_with_sections",
1848
+ "sections": [
1849
+ {
1850
+ "key": "link",
1851
+ "name": "Session & member",
1852
+ "type": "fields_section",
1853
+ "fields": [
1854
+ {
1855
+ "fieldRqlName": "class_session_ref__c"
1856
+ },
1857
+ {
1858
+ "fieldRqlName": "member_ref__c"
1859
+ }
1860
+ ]
1861
+ },
1862
+ {
1863
+ "key": "attendance",
1864
+ "name": "Attendance & check-in",
1865
+ "type": "fields_section",
1866
+ "fields": [
1867
+ {
1868
+ "fieldRqlName": "attendance_status__c"
1869
+ },
1870
+ {
1871
+ "fieldRqlName": "checked_in_at__c"
1872
+ },
1873
+ {
1874
+ "fieldRqlName": "roster_row_label__c"
1875
+ },
1876
+ {
1877
+ "fieldRqlName": "enrollment_notes__c"
1878
+ }
1879
+ ]
1880
+ }
1881
+ ]
1882
+ }
1883
+ ],
1884
+ "systemTabEdits": {},
1885
+ "tabsOrder": ["roster"]
1886
+ },
1887
+ "header_edits": {
1888
+ "newTitleField": "roster_row_label__c"
1889
+ },
1890
+ "visibility_conditions": {},
1891
+ "blueprint_key": "gym_class_enrollment__c"
1892
+ },
1893
+ {
1894
+ "type": "FUNCTION",
1895
+ "name": "Today’s schedule (SDUI)",
1896
+ "api_name": "gym_today_schedule_fn",
1897
+ "description": "Searchable grid of class sessions — pair with list view “Today’s class sessions” or filter by date",
1898
+ "code_draft": "import { FunctionContext, FunctionEvent, FunctionResponse } from '@rippling/rippling-sdk';\nimport SDUI from '@rippling/sdui-builder';\n\nconst OBJECT = 'gym_class_session__c';\n\nexport async function onRipplingEvent(\n event: FunctionEvent,\n context: FunctionContext,\n): Promise<FunctionResponse> {\n const action = event.parameters?.action;\n\n if (!action || action === 'init') {\n const s = SDUI.createState({});\n const root = SDUI.components.VStack({\n children: [\n SDUI.components.ObjectListView({\n objectApiName: OBJECT,\n canSearchInGrid: true,\n }),\n ],\n });\n return new FunctionResponse({\n body: { spec: JSON.stringify(SDUI.render(s, root)) },\n statusCode: 200,\n headers: {},\n message: '',\n });\n }\n\n return new FunctionResponse({ body: {}, statusCode: 200, headers: {}, message: '' });\n}",
1899
+ "dependencies": {
1900
+ "@rippling/rippling-sdk": "^0.2.0-alpha.33",
1901
+ "@rippling/sdui-builder": "^0.1.0"
1902
+ },
1903
+ "deployment_options": {
1904
+ "runtime": "lambda-deno"
1905
+ }
1906
+ },
1907
+ {
1908
+ "type": "FUNCTION",
1909
+ "name": "Check-in desk (SDUI)",
1910
+ "api_name": "gym_check_in_desk_fn",
1911
+ "description": "Searchable roster grid — update attendance and checked-in time as members arrive",
1912
+ "code_draft": "import { FunctionContext, FunctionEvent, FunctionResponse } from '@rippling/rippling-sdk';\nimport SDUI from '@rippling/sdui-builder';\n\nconst OBJECT = 'gym_class_enrollment__c';\n\nexport async function onRipplingEvent(\n event: FunctionEvent,\n context: FunctionContext,\n): Promise<FunctionResponse> {\n const action = event.parameters?.action;\n\n if (!action || action === 'init') {\n const s = SDUI.createState({});\n const root = SDUI.components.VStack({\n children: [\n SDUI.components.ObjectListView({\n objectApiName: OBJECT,\n canSearchInGrid: true,\n }),\n ],\n });\n return new FunctionResponse({\n body: { spec: JSON.stringify(SDUI.render(s, root)) },\n statusCode: 200,\n headers: {},\n message: '',\n });\n }\n\n return new FunctionResponse({ body: {}, statusCode: 200, headers: {}, message: '' });\n}",
1913
+ "dependencies": {
1914
+ "@rippling/rippling-sdk": "^0.2.0-alpha.33",
1915
+ "@rippling/sdui-builder": "^0.1.0"
1916
+ },
1917
+ "deployment_options": {
1918
+ "runtime": "lambda-deno"
1919
+ }
1920
+ },
1921
+ {
1922
+ "type": "SDUI_PAGE",
1923
+ "name": "Today’s schedule",
1924
+ "sdui_page_id": "gym_today_schedule",
1925
+ "function_api_name": "gym_today_schedule_fn",
1926
+ "description": "SDUI list of class sessions for front desk (filter to today in the grid)"
1927
+ },
1928
+ {
1929
+ "type": "SDUI_PAGE",
1930
+ "name": "Check-in desk",
1931
+ "sdui_page_id": "gym_check_in_desk",
1932
+ "function_api_name": "gym_check_in_desk_fn",
1933
+ "description": "SDUI roster — set attendance to Checked in and optional checked-in time"
1934
+ },
1935
+ {
1936
+ "type": "CUSTOM_APP",
1937
+ "api_name": "gym_membership_management_app",
1938
+ "name": "Gym Membership Management",
1939
+ "description": "Members, trainers, schedules, enrollments, today’s sessions list view, and SDUI for schedule + check-in",
1940
+ "app_type": "custom",
1941
+ "pages": [
1942
+ {
1943
+ "api_name": "gym_member__c",
1944
+ "page_type": "object_page",
1945
+ "object_rql_name": "gym_member__c"
1946
+ },
1947
+ {
1948
+ "api_name": "gym_trainer__c",
1949
+ "page_type": "object_page",
1950
+ "object_rql_name": "gym_trainer__c"
1951
+ },
1952
+ {
1953
+ "api_name": "gym_class_session__c",
1954
+ "page_type": "object_page",
1955
+ "object_rql_name": "gym_class_session__c"
1956
+ },
1957
+ {
1958
+ "api_name": "gym_class_enrollment__c",
1959
+ "page_type": "object_page",
1960
+ "object_rql_name": "gym_class_enrollment__c"
1961
+ },
1962
+ {
1963
+ "api_name": "gym_today_schedule",
1964
+ "page_type": "sdui_page",
1965
+ "sdui_page_id": "gym_today_schedule"
1966
+ },
1967
+ {
1968
+ "api_name": "gym_check_in_desk",
1969
+ "page_type": "sdui_page",
1970
+ "sdui_page_id": "gym_check_in_desk"
1971
+ }
1972
+ ]
1973
+ }
1974
+ ]
1975
+ }