/**
 * PostNL Ecommerce APIsLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

import { lazy, object, optional, Schema, string } from '../schema';
import { Options, optionsSchema } from './options';
import { Sustainability2, sustainability2Schema } from './sustainability2';

export interface ShipmentV22CalculateDateDeliveryResponse {
  deliveryDate?: string;
  /** The delivery options for which a delivery date is returned. Only one delivery option is specified. See [Delivery Options](#tag/Reference-codes/Delivery-options) for possible values. */
  options?: Options;
  /** Sustainability score; see [Sustainability codes](#tag/Reference-codes/Sustainability-codes) for possible values. */
  sustainability?: Sustainability2;
}

export const shipmentV22CalculateDateDeliveryResponseSchema: Schema<ShipmentV22CalculateDateDeliveryResponse> = object(
  {
    deliveryDate: ['DeliveryDate', optional(string())],
    options: ['Options', optional(lazy(() => optionsSchema))],
    sustainability: [
      'Sustainability',
      optional(lazy(() => sustainability2Schema)),
    ],
  }
);
