Skip to content

Consultee self-leave for group events + UI kind-gates for impossible actions (audit R4/R5/C4/C6) #1005

Description

@teetangh

Context

Several consultee-facing actions are offered by the UI but always fail server-side. Consultees see Reschedule on webinar/class cards although the route 403s them (app/api/appointments/[appointmentId]/reschedule/route.ts:141-152); trial reschedule is offered but the participant check never matches TRIAL (ConsulteeAppointmentsAdapter.tsx:188-200); "Cancel booking" is shown for group events with no self-removal endpoint in existence (C4); and the consultee trial Cancel calls the generic route, gets a 409, and the toast falsely reports "Booking already updated" (useEventActions.ts:158-177). Separately there is no self-leave flow at all for webinar/class attendees — the only removal path is consultant-initiated.

Proposed approach

Two parts. First, kind-gate the UI: hide or disable actions whose server route will 403 or no-op for the derived appointment type, and point trial cancellation at the trial route. Second, design and build a consultee self-leave endpoint for group events (per-attendee appointment cancellation with policy-snapshot refund once the refund gateway lands), which then lets the UI re-enable the action honestly.

Audit ids R4/R5/C4/C6; found alongside #998.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bookingBooking, scheduling, slots, reschedule, cancellationdashboardDashboard IA, tabs, semantics, UX across all roleslaunch: pre-mvpGates launch — money, data, or a failure we would not detect

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions