/**
 * 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 { Options2, options2Schema } from './options2';
import { Sustainability4, sustainability4Schema } from './sustainability4';

export interface TimeframeTimeframe {
  /** The start time of the expected delivery window */
  from?: string;
  /** The delivery option for which the timeframe is calculated. See [Delivery Options](#tag/Reference-codes/Delivery-options) for possible values. */
  options?: Options2;
  /** The end time of the expected delivery window */
  to?: string;
  /** Sustainability score */
  sustainability?: Sustainability4;
}

export const timeframeTimeframeSchema: Schema<TimeframeTimeframe> = object({
  from: ['From', optional(string())],
  options: ['Options', optional(lazy(() => options2Schema))],
  to: ['To', optional(string())],
  sustainability: [
    'Sustainability',
    optional(lazy(() => sustainability4Schema)),
  ],
});
