namespace ApiTerceiroSimulador.Models.OpenDelivery
{
    /// <summary>
    /// Information for DELIVERY orders.
    /// </summary>
    public class Delivery
    {
        /// <summary>
        /// Enum: "MERCHANT" "MARKETPLACE"
        /// </summary>
        public required string DeliveredBy { get; set; } = DeliveredByTypes.Merchant; //"MERCHANT",

        /// <summary>
        /// The address to which the order will be delivered.
        /// </summary>
        public required Address DeliveryAddress { get; set; }

        /// <summary>
        /// Estimated delivery date and time. The same date showed to the customer, in the Ordering Application interface.
        /// </summary>
        public required string EstimatedDeliveryDateTime { get; set; } //"2019-08-24T14:15:22Z",

        /// <summary>
        /// Delivery date. The date time that the delivery actually took place.
        /// </summary>
        public string? DeliveryDateTime { get; set; } //"2019-08-24T14:15:22Z",

        /// <summary>
        /// It gives the Merchant a code so that the delivery man can collect the order.
        /// Note: Not to be confused with the customer's delivery code.
        /// </summary>
        public string? PickupCode { get; set; }
    }
}
