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

import { array, lazy, object, optional, Schema } from '../schema';
import { CompleteStatus, completeStatusSchema } from './completeStatus';
import { CurrentStatus, currentStatusSchema } from './currentStatus';
import { Warning2, warning2Schema } from './warning2';

export interface ShippingstatusResponse {
  /** The current status and old statuses of the shipment */
  completeStatus?: CompleteStatus;
  /** The current status and old statuses of the shipment */
  currentStatus?: CurrentStatus;
  /** Possible warnings (see [Error Codes](#tag/Error-codes) for possible values) */
  warnings?: Warning2[];
}

export const shippingstatusResponseSchema: Schema<ShippingstatusResponse> = object(
  {
    completeStatus: [
      'CompleteStatus',
      optional(lazy(() => completeStatusSchema)),
    ],
    currentStatus: ['CurrentStatus', optional(lazy(() => currentStatusSchema))],
    warnings: ['Warnings', optional(array(lazy(() => warning2Schema)))],
  }
);
