Store.phone stays login/boss; contactPhone is C-end dial. Public store APIs keep phone compat via publicDial mapping.
Co-authored-by: Cursor <cursoragent@cursor.com>
- HQ stores: partner column uses companyName/name/phone via partnerOptionLabel
- Dev plan: version RELEASED auto-marks tasks RELEASED and tickets PUBLISHED with releasedVersionNo
- mini-user/h5-shop/h5-partner v3.4.13 UX fixes (store UI, iOS scan OAuth, partner login guard)
- Docs: v3.4.13 dev doc + status audit updates
Co-authored-by: Cursor <cursoragent@cursor.com>
Add client-logging SDK, expanded event taxonomy, API observability, admin domain events UI, and move SENTRY_DSN to HQ system settings with @sentry/node bootstrap after config preload.
Co-authored-by: Cursor <cursoragent@cursor.com>
City partner storeCount jumps to /stores?partnerId=; normalize empty/null text so usage rule is not saved as literal "null.
Co-authored-by: Cursor <cursoragent@cursor.com>
HQ can remove store sub-accounts from primary account detail; cities table store count jumps to /stores?cityId=.
Co-authored-by: Cursor <cursoragent@cursor.com>
HQ store update now syncs store_account.phone for shop login; expand editable store fields. System version only for SUPER_ADMIN; permissions checklist layout polish.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add benefitUsageRule on store create/edit (HQ + partner) and C-end detail between intro and env gallery.
Co-authored-by: Cursor <cursoragent@cursor.com>
HQ store detail can set coordinates and open Baidu Map search by name/address; admin update API persists lat/lng.
Co-authored-by: Cursor <cursoragent@cursor.com>
HQ create-store wizard now collects 1-2 hour segments and avgPrice, and API validates them on create/update.
Co-authored-by: Cursor <cursoragent@cursor.com>
Support 1-2 hour segments and optional avgPrice; show bank settlement on HQ store detail; enforce pickup min 2 bottles; Chinese order statuses; block shop reopen after permanent close.
Co-authored-by: Cursor <cursoragent@cursor.com>