Customer Saved Addresses
Taxi & Private Hire › Products › Customer › Customer Saved Addresses
Generally available
Per-customer address book entries with usage telemetry — pickup and destination counts, last-used timestamp. Lets the booking UI suggest "home", "work", and recent places without re-typing. Notes carry customer-supplied access instructions (gate codes, side-entrance directions).
Related
Fields
| Field | Type | Description |
|---|---|---|
address | string | Human-readable address text shown to operators, drivers, and the customer. Required at create time. |
addressId | string | Opaque reference returned by the upstream geocoder (Google Places ID etc.). Used to re-resolve coordinates and components if the address is reused without rebuilding the search. |
latitude | decimal | WGS-84 latitude in decimal degrees, six fractional digits (~11cm resolution). Required. |
longitude | decimal | WGS-84 longitude in decimal degrees, six fractional digits (~11cm resolution). Required. |
lastUsedDate | integer | Unix timestamp of the most recent trip stop that touched this address. Drives the "recent places" sort in the booking UI. |
usedPickupCount | integer | Count of completed pickups at this address. Incremented when SaveCustomerAddress processes a PICKUP-type stop. |
usedDestinationCount | integer | Count of completed dropoffs at this address. Incremented when SaveCustomerAddress processes a DROPOFF-type stop. |
customer | Customer | Owning customer. Not serialised onto the public payload to avoid customer ↔ address circular references. |
driverNote | string | Notes shared with the Driver and Operator, to be treated as publicly visible and not to include personal information |
managementNote | string | Internal notes for management use only. |
clientId | bigint | Tenant scope. Every tenant-aware entity carries this; `ClientFilter` enforces row-level isolation on read; the multi-tenancy routing layer (`/client/{clientId}`) sets it at create time. Surfaced only under `admin` / `tripLog` groups — never to end users. |
internalKey | string | Optional client-supplied external reference / idempotency key. When present, lets external systems correlate platform-side records back to their own source-of-truth ids. Not persisted to a column — populated by the request handler when the caller sets it. |
__objectType | string | Discriminator string (entity class short-name) emitted alongside the id in serialized output. Resolved at read time by `getObjectType()`; lets the FE dispatch entity-specific rendering without inspecting the URL. |
id | bigint | Snowflake-style primary key (unsigned BIGINT). Generated by `IdFactory` at create time; surfaced to the FE / API as a `G`-prefixed string and stripped back to plain bigint server-side before Doctrine lookup. |
createdDate | integer | Unix timestamp the row was first persisted. Set in the entity's PrePersist hook; never rewritten on subsequent updates. |
updatedDate | integer | Unix timestamp the row was last touched. Bumped on every commit that hits the Doctrine UoW for this entity; drives FE invalidation + the listing change cursor. |
passiveUpdatedDate | int | Read-through alias for `updatedDate` exposed under different serializer groups. Lets the FE distinguish "real edit" from "background touch" projections without changing the underlying column. |
listingUpdatedDate | int | Listing-projection timestamp surfaced only under the `listMode` group. Driven by `TripCache` and other listing-shape refreshers separately from `updatedDate` so a listing rebuild doesn't trigger detail-page invalidation. |