Customer Portal & My Home — Data & read/write tables
The Customer Portal's data read/write view. Convention: 📖 READ, ✏️ WRITE (insert/update).
Data read/write
| Area | Data |
|---|---|
| Staff context (Admin Mode) | GET /api/Manage/CurrentUser, GET /api/Employee/LinkOrg 📖 READ — populates currentUserTopi / currentUserLinkedSites. |
| Caller account (customer mode) | GET /api/ConsumerAccount (no _a) 📖 READ — populates the current-account store. |
| Identity + timezone prefs | GET /api/ConsumerManage/CurrentUser 📖 READ — every mode, hydrates timezone/date-time (INV-USERTZAPI-002). |
| Display mode | EnterpriseSetting.ServiceAreaId 📖 READ — branches Local vs MultiZone. |
| User timezone | User.TimezoneIdentifier / timezoneIdentifier 📖 READ for display + pre-select; ✏️ WRITE via POST /api/User/UpdateUserTimezoneIdentifier or updateUserTimezone(newWindowsId) (Windows TZ ID). |
| Session prompt state | sessionStorage['my-home-tz-prompted'], sessionStorage['tz-popup-dismissed'] ✏️ WRITE (client-side, no DB). |
| Subscription enrollments | Enrollment data scoped to the authenticated account 📖 READ — site, subscription name, enrollment number, attendee, start/end date, status, sessions, weekly pattern, add-ons. |
| Booked periods | EnrollmentPeriod (only IsActive = true and StatusId != Canceled) 📖 READ for Booking Range + View Calendar. |
| Site contact | Site email, mobile/phone, address 📖 READ for Booking UI Program Details + landing site card. |
| Share link | No DB read/write; composes the URL from the Customer Portal base URL (INV-CP-SHARELINK-001). |
Mutations forbidden in the portal
Load/expand/submit from the Customer Portal must not create or mutate:
| Entity | Note |
|---|---|
TermBookingOrder / TermBooking | Only the backend booking/confirmation service. |
Enrollment / EnrollmentPeriod | Read-only in the portal; mutation only via the subscription service. |
Billing / Invoice / CreditNote | Only existing Finance/service. |
Payment | Only Payment. |
Real-world example: A customer expands an enrollment card or clicks View Calendar. → No invisible financial state may be created. → Only read requests, no insert/update on the entities above.
Data from other domains
| Domain | What the portal reads it for |
|---|---|
| Subscription | Enrollment, enrollment number, program/session pattern, add-ons, booked periods. |
| Booking | Booking UI Program Details, site info modal, checkout flow. |
| Master Data | Site contact, account/attendee, BusinessUnitPermission, Class Program Category. |
| Finance | Invoice/paid status display (when a customer-facing invoice action requires it); no internal admin ids exposed. |
| Payment | Payment status for subscription/booking (read-only display). |
Related
- Architecture & data — bootstrap, timezone, share link, read boundary.
- Subscription — enrollment & subscription management.
- Booking — customer booking flow.