using System.ComponentModel;

namespace CareFusion.Lib.StorageSystem.Input
{
    /// <summary>
    /// Defines the different possible input handlings for a pack.
    /// </summary>
    public enum InputHandling
    {
        /// <summary>
        /// The pack input is allowed.
        /// </summary>        
        Allowed = 0,

        /// <summary>
        /// The pack input is only allowed when the pack is stored in a fridge.
        /// </summary>
        [Description("Allowed for fridge")]
        AllowedForFridge = 1,

        /// <summary>
        /// The pack input is forbidden.
        /// </summary>
        Rejected = 2,

        /// <summary>
        /// The pack input is forbidden because no expiry date has been defined by the storage system.
        /// </summary>
        [Description("Rejected (Missing expiry date)")]
        RejectedNoExpiryDate = 3,

        /// <summary>
        /// The pack input is rejected because no picking indicator has been defined by the storage system.
        /// </summary>
        [Description("Rejected (Missing picking indicator)")]
        RejectedNoPickingIndicator = 4,

        /// <summary>
        /// Pack input is rejected because no batch number has been defined by the storage system.
        /// </summary>
        [Description("Rejected (Missing batch number)")]
        RejectedNoBatchNumber = 5,

        /// <summary>
        /// Pack input is rejected because no stock location has been defined by the storage system.
        /// </summary>
        [Description("Rejected (Missing stock location)")]
        RejectedNoStockLocation = 6,

        /// <summary>
        /// Pack input is rejected because an invalid stock location has been defined by the storage system.
        /// </summary>
        [Description("Rejected (Invalid stock location)")]
        RejectedInvalidStockLocation = 7,

        /// <summary>
        /// Pack input is rejected because a serial number was not provided by the storage system.
        /// </summary>
        [Description("Rejected (Missing serial number)")]
        RejectedNoSerialNumber = 8
    }
}
