ADR Index
Detailed technical decisions. Start from the focused PRDs first.
| ID | Title |
|---|---|
| 0001 | 1. Separate Booking from Appointment |
| 0002 | 2. Allow Guest Booking with Optional Client Account |
| 0003 | 3. Use Shared Services with Psychologist-level Offerings |
| 0004 | 4. Model Availability as Rules, Exceptions, and Concrete Slots |
| 0005 | 5. Payment Success Gates Appointment Confirmation |
| 0006 | 6. Minimize Client Data in Booking MVP |
| 0007 | 7. Give Psychologists Scoped Self-Service |
| 0008 | 8. Store Versioned Consent Records per Purpose |
| 0009 | 9. Include Minimal Transactional Notifications |
| 0010 | 10. Start with One Versioned Global Cancellation Policy |
| 0011 | 11. Keep Rescheduling Administrative and Audited |
| 0012 | 12. Use Asia/Jakarta as Operational Timezone |
| 0013 | 13. Tie Availability Slots to Service Offerings |
| 0014 | 14. Use a Ten-minute Configurable Slot Hold |
| 0015 | 15. Track Operational Appointment Outcomes |
| 0016 | 16. Support Multi-session Packages in MVP |
| 0017 | 17. Schedule the First Package Session at Checkout |
| 0018 | 18. Bind a Package to One Psychologist and Offering |
| 0019 | 19. Give Packages a Visible Configurable Validity Period |
| 0020 | 20. Scope Guest Access to the Booking or Package |
| 0021 | 21. Use Email as Primary Transactional Channel |
| 0022 | 22. Settle Packages with Full Upfront Payment |
| 0023 | 23. Make Verified Gateway Webhook the Payment Truth Source |
| 0024 | 24. Require Admin Review for Single-session Cancellation |
| 0025 | 25. Keep Slot Reserved During Cancellation Review |
| 0026 | 26. Consume Package Entitlements by Operational Outcome |
| 0027 | 27. No-show Consumes Package Entitlement by Default |
| 0028 | 28. Mark No-show After a Fifteen-minute Grace Period |
| 0029 | 29. Handle Privacy Requests Through a Manual Workflow |
| 0030 | 30. Allow Editors to Publish CMS Content Directly |
| 0031 | 31. Separate Editorial Profile Copy from Protected Facts |
| 0032 | 32. Assign Staff Roles Through Explicit Membership |
| 0033 | 33. Give Psychologists Scoped Assigned-client Visibility |
| 0034 | 34. Separate Package Catalog from Purchased Package Instance |
| 0035 | 35. Reserve the First Package Entitlement at Checkout |
| 0036 | 36. Start Package Validity at Verified Payment Success |
| 0037 | 37. Schedule Package Sessions in Sequence |
| 0038 | 38. Advance Package Sequence Past Closed Entitlements |
| 0039 | 39. Reschedule with a Replacement Appointment |
| 0040 | 40. Generate Availability on a Rolling Ninety-day Horizon |
| 0041 | 41. Apply a Fifteen-minute Configurable Transition Buffer |
| 0042 | 42. Snapshot Offering Values at Booking Payment Intent |
| 0043 | 43. Limit ServiceOffering Overrides to Effective Booking Values |
| 0044 | 44. Publish ServiceOfferings Through a Draft-published-archived Lifecycle |
| 0045 | 45. Version Published ServiceOffering Changes |
| 0046 | 46. Use Short-lived One-time ClientAccess Tokens |
| 0047 | 47. Keep Guest Client Records Separate by Default |
| 0048 | 48. Configure Package Validity per ServicePackage |
| 0049 | 49. Keep Crisis Handling Outside the Booking Domain |
| 0050 | 50. Record Refunds as Separate Payment Actions |
| 0051 | 51. Separate Cancellation Intake from Admin Decision |
| 0052 | 52. Include Transactional Appointment Reminders |
| 0053 | 53. Use 24-hour and 2-hour Appointment Reminders |
| 0054 | 54. Correct Appointment Outcomes Through Admin-only Events |
| 0055 | 55. Calculate Package Validity as a Calendar Period |
| 0056 | 56. Model Retention by Transactional Data Category |
| 0057 | 57. Launch with One Payment Gateway Behind an Adapter |
| 0058 | 58. Make Psychologist Availability Changes Effective for Future Generation |
| 0059 | 59. Reconcile Late Payment After SlotHold Expiry |
| 0060 | 60. Resolve Package Unavailability Explicitly |
| 0061 | 61. Regenerate Only Uncommitted Future Availability Slots |
| 0062 | 62. Restore Entitlements Without Resetting Expiry |
| 0063 | 63. Keep Package Refunds Manual at Purchase Level |
| 0064 | 64. Use Required WhatsApp Follow-up for Paid Confirmed Bookings |
| 0065 | 65. Keep Cancellation and Refund Records Internal and Minimal |
| 0066 | 66. Keep Admin WhatsApp as Flexible Manual Support |
| 0067 | 67. Execute Cancellation and Refund Through Admin CMS |
| 0068 | 68. Select Midtrans Snap for Launch Payments |
| 0069 | 69. Keep Launch Payment Methods Minimal |
| 0070 | 70. Separate Public Program Pillars from Bookable Launch Scope |
| 0071 | 71. Launch Counseling Before Psychological Assessment |
| 0072 | 72. Launch Counseling Online and Offline |
| 0073 | 73. Standard Counseling Session Duration |
| 0074 | 74. Launch Counseling Catalog and Prices |
| 0075 | 75. Start Launch with One Confirmed Psychologist |
| 0076 | 76. Case-by-Case Cancellation Without Automatic Cutoff |
| 0077 | 77. Restrict Launch Refunds to Full or No Refund |
| 0078 | 78. One Admin May Execute Separate Cancellation and Refund Actions |
| 0079 | 79. Launch with Admin and Psychologist Staff Roles |
| 0080 | 80. Staff Access via Google SSO and Explicit Membership |
| 0081 | 81. Bootstrap Two Admins for Recovery |
| 0082 | 82. Joint Privacy and Consent Sign-off |
| 0083 | 83. Retain Client and Contact Data for 12 Months |
| 0084 | 84. Retain Payment and Refund Records by Audit/Legal Policy |
| 0085 | 85. Retain Consent with Related Records and Policy Requirements |
| 0086 | 86. Retain Audit and Security Metadata by Policy |
| 0087 | 87. Redact Direct Client Identifiers and Preserve Minimal Pseudonymous Links |
| 0088 | 88. Separate PRD Handoff from Production Launch Gate |
| 0089 | 89. Single Application Architecture — Cloudflare Worker + D1 with PersistenceAdapter Seam |
| 0090 | 90. Couple Package Participant Model |
| 0091 | 91. Capacity Overlap and TransitionBuffer Placement |
| 0092 | 92. Finalize Appointment Outcome Timing, Late-arrival, and Correction Window |
| 0093 | 93. Payment Settlement Uniqueness and `paid_late` Package Effects |
| 0094 | 94. Intake Field Schema, Minor (16–17) Guardian Route, Eligibility Boundary, and Booking Cutoff |
| 0095 | 95. Package Cancellation Matrix and Outcome Race Resolution |
| 0096 | 96. Launch-Gate Executable Checklist (Matrix §7 → owner-by-owner) |
| 0097 | 97. WhatsApp Manual Payment Flow for MVP Launch |