# Attributes

EtaData `Object`

The main response object contains two main properties: `fixedData` and `dynamicData`.

## FixedData `Object`

Contains static information about the order that does not change during delivery. `null` if `isStaticDataRequired` is `false`.

### Child attributes

- **order `Order`**  
  Basic order details.

- **customer `Customer`**  
  Details of the customer receiving the order.

- **restaurant `Restaurant`**  
  Details of the pickup location.

- **carrier `Carrier`**  
  Details of the assigned delivery driver/carrier.

- **isExpired `Boolean`**  
  Flag indicating if the tracking link/data has expired.

## Order `Object`

Basic order details.

### Child attributes

- **orderNumber `String`**  
  The public-facing order number.

## Customer `Object`

Details of the customer receiving the order.

### Child attributes

- **name `String`**  
  Customer's name.

- **address `String`**  
  Customer's delivery address.

- **latitude `Double`**  
  Latitude of the delivery address.

- **longitude `Double`**  
  Longitude of the delivery address.

## Restaurant `Object`

Details of the pickup location.

### Child attributes

- **name `String`**  
  Restaurant/store name.

- **address `String`**  
  Restaurant/store address.

- **latitude `Double`**  
  Latitude of the restaurant/store.

- **longitude `Double`**  
  Longitude of the restaurant/store.

## Carrier `Object`

Details of the assigned delivery driver/carrier.

### Child attributes

- **id `Integer`**  
  The unique ID of the carrier. `-1` if not assigned.

- **name `String`**  
  The carrier's name. "Not assigned" if no carrier is assigned yet.

- **phoneNumber `String`**  
  The contact phone number. This may be the carrier's direct number, a masked proxy number, or the restaurant's number, depending on system settings.

- **imagePath `String`**  
  The file name or path for the carrier's profile image. Defaults to a placeholder if not set.

## DynamicData `Object`

Contains dynamic, real-time information about the order's progress and the carrier's location.

### Child attributes

- **orderStatus `OrderStatus`**  
  Contains various timestamps and the current status of the order.

- **carrierLocation `CarrierLocation`**  
  The real-time geographical coordinates of the carrier.

- **estimatedTimeInMinutes `String`**  
  The estimated time of arrival in minutes. Can be "INF" if ETA is not available.

- **detailEta `DetailEta`**  
  A more detailed breakdown of the ETA calculation.

## OrderStatus `Object`

Contains various timestamps and the current status of the order.

### Child attributes

- **startTime `String`**  
  Timestamp when the carrier started the delivery. (`nullable`)

- **pickedTime `String`**  
  Timestamp when the order was picked up from the restaurant. (`nullable`)

- **arrivedTime `String`**  
  Timestamp when the carrier arrived at the customer location. (`nullable`)

- **deliveryTime `String`**  
  Timestamp when the order was successfully delivered. (`nullable`)

- **failedDeliveryTime `String`**  
  Timestamp of a failed delivery attempt. (`nullable`)

- **status `String`**  
  The current status of the order (e.g., `ASSIGNED`, `IN_TRANSIT`, `DELIVERED`).

## CarrierLocation `Object`

The real-time geographical coordinates of the carrier.

### Child attributes

- **latitude `Double`**  
  The current latitude of the carrier.

- **longitude `Double`**  
  The current longitude of the carrier.

## DetailEta `Object`

A more detailed breakdown of the ETA calculation.

### Child attributes

- **estimatedTimeInMinutes `Double`**  
  The final estimated time of arrival in minutes. `-1.0` indicates not available.

- **pickUpTime `Double`**  
  Estimated time in minutes for the carrier to reach the pickup location.

- **travelDistance `Double`**  
  The total travel distance for the delivery route in the system's configured units (e.g., miles or km).

- **travelDistanceTime `Double`**  
  The estimated time in minutes based purely on the travel distance and speed.

- **deliveryTime `Double`**  
  Estimated time in minutes to travel from the pickup location to the final delivery destination.

- **orderPosition `Integer`**  
  For batch/stacked orders, this is the position of the current order in the carrier's delivery queue. `-1` if not a batch order.

- **startedOrder `Integer`**  
  For batch/stacked orders, this indicates which order in the sequence the carrier is currently fulfilling. `-1` if not a batch order.

- **calprog `String`**  
  A debug string representing the internal steps and values used in the ETA calculation.

## Sample JSON Output

```json
{
    "fixedData": {
        "order": {
            "orderNumber": "your_order_number"
        },
        "customer": {
            "name": "John Doe",
            "address": "State Farm Arena, State Farm Drive, Atlanta, GA, USA",
            "latitude": 33.7574062,
            "longitude": -84.396233
        },
        "restaurant": {
            "name": "My Restaurant",
            "address": "5th Avenue, New York, NY, USA",
            "latitude": 40.7744123,
            "longitude": -73.9656103
        },
        "carrier": {
            "id": 321743,
            "name": "Alice Johnson",
            "phoneNumber": "+12101234567",
            "imagePath": "William_Martin.png"
        },
        "isExpired": false
    },
    "dynamicData": {
        "orderStatus": {
            "startTime": "2025-06-24T16:28:29.000Z",
            "pickedTime": "2025-06-24T16:28:33.000Z",
            "arrivedTime": null,
            "deliveryTime": null,
            "failedDeliveryTime": null,
            "status": "PICKED_UP"
        },
        "carrierLocation": {
            "latitude": 37.822334,
            "longitude": -81.224434
        },
        "estimatedTimeInMinutes": "12",
        "detailEta": {
            "estimatedTimeInMinutes": 12.0,
            "pickUpTime": 0.0,
            "travelDistance": 3745.3496704217405,
            "travelDistanceTime": 11.636290872102045,
            "deliveryTime": 0.0,
            "orderPosition": 1,
            "startedOrder": 0,
            "calprog": ""
        }
    }
}
```
