import { LegacyDeliveryProperties } from "../legacyTypes";
import { DeliveryProperties } from "../typings";

/**
 * Maps LegacyDeliveryProperties to DeliveryProperties
 * @param legacyProperties - The legacy delivery properties
 * @returns The new delivery properties format
 */
export const deliveryPropertiesMapper = (
  legacyProperties: LegacyDeliveryProperties
): DeliveryProperties => {
  return {
    delivery_id: legacyProperties.id,
    order_id: legacyProperties.order_id,
    is_urgent: legacyProperties.is_urgent,
    action: legacyProperties.action,
    est_delivery_ts: legacyProperties.est_delivery_ts
      ? typeof legacyProperties.est_delivery_ts === "string"
        ? legacyProperties.est_delivery_ts
        : legacyProperties.est_delivery_ts.toISOString()
      : undefined,
    delivery_coordinates: legacyProperties.delivery_coordinates
      ? [
          legacyProperties.delivery_coordinates.lat || 0,
          legacyProperties.delivery_coordinates.lon || 0,
        ]
      : undefined,
    dispatch_coordinates: legacyProperties.dispatch_coordinates
      ? [
          legacyProperties.dispatch_coordinates.lat || 0,
          legacyProperties.dispatch_coordinates.lon || 0,
        ]
      : undefined,
    meta: legacyProperties.meta,
  };
};
