Seraya Psikologi — Documentation

Booking and payment MVP · Implementation baseline · 96 ADR

16. Support Multi-session Packages in MVP

Status

Accepted for the MVP working model; package boundaries are resolved by ADR 0017/0018/0022/0034–0038: progressive later scheduling, one psychologist/offering binding, full-upfront purchase, PackagePurchase, ordered SessionEntitlement, validity, and outcome-based consumption. Exact refund/extension/transfer exceptions remain open.

Context

The product must support both a single-session purchase and a multi-session package in MVP. A package is not just a Booking with an arbitrary list of appointments: it carries session count/entitlement, usage, expiry, and refund implications.

The base distinction remains important: each Appointment is one concrete scheduled session, while Booking represents the client-facing purchase/commitment.

Decision

Allow a Booking to represent either:

Introduce explicit ServicePackage, PackagePurchase, and SessionEntitlement concepts rather than hiding package metadata in Appointment rows. The package catalog defines session count, price, calendar validity, binding, and policy references; the purchase snapshots those terms and owns ordered entitlement units. First session is scheduled at checkout; later sessions are scheduled progressively. Outcome-based consumption, sequential scheduling with closed/expired skipping, and full-upfront settlement are defined by the linked ADRs. Exact partial-use cancellation/refund, extension/restoration, and transfer exceptions remain open.

Consequences

Positive:

Costs and constraints:

Open follow-up

Define exact refund/credit, extension/restoration, and transfer exception behavior.