namespace ApiTerceiroSimulador.Models.OpenDelivery
{
    /// <summary>
    /// Information for INDOOR orders.
    /// </summary>
    public class Indoor
    {
        /// <summary>
        /// Indoor mode identifier:
        /// </summary>
        public required string Mode { get; set; } = IndoorModes.Default; // "DEFAULT",

        /// <summary>
        /// Date and time for when the order is ready. It can be calculated by the Ordering Application using the average preparation time of the dishes. Default is the same time as order creation time.
        /// </summary>
        public required string IndoorDateTime { get; set; } // "2019-08-24T14:15:22Z",

        /// <summary>
        /// The place identifier (Required if mode is PLACE)
        /// </summary>
        public string? Place { get; set; }

        /// <summary>
        /// The tab or control card identifier(Required if mode is TAB)
        /// </summary>
        public string? Tab { get; set; }

        /// <summary>
        /// Optional Identifier of the seat where the customer is located.
        /// </summary>
        public string? Seat { get; set; }

        /// <summary>
        /// Optional code to identify the waiter responsible for the order.
        /// </summary>
        public string? WaiterCode { get; set; }
    }
}
