import Joi from 'joi';
import { LatLongSchema } from './lat-long-schema';
import { StandardizedStatusCodesSchema } from './standardized-status-codes-schema';
import { StandardizedStatusDetailCodesSchema } from './standardized-status-detail-codes-schema';
import { ProofOfDeliverySchema } from './proof-of-delivery-schema';

export const TrackEventSchema = Joi.object({
  event_datetime: Joi.string().optional().empty().isoDate(),
  event_datetime_local: Joi.string().optional().empty().isoDate(),
  event_code: Joi.string().optional().empty(),
  carrier_detail_code: Joi.string().optional().empty(),
  proof_of_delivery: ProofOfDeliverySchema.optional(),
  description: Joi.string().optional().empty(),
  city: Joi.string().optional().empty(),
  state: Joi.string().optional().empty(),
  postal_code: Joi.string().optional().empty(),
  country: Joi.string().optional().empty(),
  company: Joi.string().optional().empty(),
  signer: Joi.string().optional().empty(),
  geo: LatLongSchema.optional(),
  status_code: StandardizedStatusCodesSchema.optional(),
  status_detail_code: StandardizedStatusDetailCodesSchema.optional(),
});
