fix(appointment): correct payment flow and account-info prefill

- Booking response is double-nested: read appointment uuid/expires_at from
  res.data.data so the payment countdown and gateway redirect actually fire.
- Payment result page (/payment/[uuid]): unwrap res.data.data, use real
  backend fields (amount_rials, gateway, created_at, type) and statuses
  (pending/success/failed/canceled/refunded); the "pay" button now re-initiates
  via postAppointmentPayment instead of building a URL on the API origin.
- Add /payment/result interstitial that reads payment_uuid from the gateway
  callback and forwards to /payment/[uuid].
- Prefill account info correctly in the booking form: name from profile.label,
  insurances from *_id, gender as string, national_code editable unless approved.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
hamed
2026-06-16 10:06:56 +03:30
co-authored by Claude Opus 4.8
parent 7d65239615
commit 59d29cd7c7
5 changed files with 217 additions and 43 deletions
+3 -2
View File
@@ -125,10 +125,11 @@ function SubmitData({ setStep, data, prevData, setErrors, doctor, isForAnother,
};
const res = await request.postAppointment(appointmentPayload);
const appointmentUuid = res?.data?.uuid;
const appointment = res?.data?.data;
const appointmentUuid = appointment?.uuid;
if (appointmentUuid) {
setAppointmentId(appointmentUuid);
setAppointmentExpiresAt?.(res?.data?.expires_at ?? null);
setAppointmentExpiresAt?.(appointment?.expires_at ?? null);
}
}