using Quadarax.Foundation.Core.Attributes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Quadarax.Foundation.Core.Exceptions;

namespace qdr.fnd.core.pqueue.Exceptions
{
    public class PSStorageException : CodeException<PSStorageException.ErrorCodes>
    {
        #region *** Error Codes ***

        public enum ErrorCodes : int
        {
            [ErrorMessage("Item with id={0} not found in storage.")]
            PsStorageItemNotFound = 6000,
            [ErrorMessage("Item with id={0} already exists in storage.")]
            PsStorageItemAlreadyExists = 6001,
        }
        #endregion

        #region *** Constructors ***

        /// <inheritdoc />
        public PSStorageException(ErrorCodes code, Exception innerException) : base(code, innerException)
        {
        }

        /// <inheritdoc />
        public PSStorageException(ErrorCodes code) : base(code)
        {
        }

        /// <inheritdoc />
        public PSStorageException(ErrorCodes code, params object[] messageArguments) : base(code, messageArguments)
        {
        }

        /// <inheritdoc />
        public PSStorageException(ErrorCodes code, Exception innerException, params object[] messageArguments) : base(code, innerException, messageArguments)
        {
        }
        #endregion
    }
}
