Skip to content

Customer Saved Addresses

Taxi & Private HireProductsCustomer › 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).

Fields

FieldTypeDescription
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.