import Joi from 'joi';
import { IdentifierSchema } from '../identifier-schema';
import { DimensionsSchema } from '../units';
import { CurrencySchema } from '../currency-schema';
import { DimensionDetailsSchema } from '../units/dimension-details-schema';
import { WeightDetailsSchema } from '../units/weight-details-schema';
import { LabelMessageSchema } from '../labels/label-message-schema';
import { CustomsSchema } from '../customs/customs-schema';

export const ShippedPackageSchema = Joi.object({
  tracking_number: Joi.string().optional(),
  tracking_url: Joi.string().optional(),
  alternative_identifiers: Joi.array().items(IdentifierSchema).optional(),
  dimension_details: DimensionDetailsSchema.optional(),
  weight_details: WeightDetailsSchema.optional(),
  package_code: Joi.string().optional(),
  weight: Joi.number().optional(),
  dimensions: DimensionsSchema.optional(),
  insured_value: CurrencySchema.required(),
  label_messages: LabelMessageSchema.optional(),
  customs: CustomsSchema.optional(),
  products: Joi.array().items(IdentifierSchema).optional(),
});
