using MediaBrowser.Model.Entities;
using ServiceStack.ServiceHost;
namespace MediaBrowser.Api.Images
{
    /// 
    /// Class ImageRequest
    /// 
    public class ImageRequest : DeleteImageRequest
    {
        /// 
        /// The max width
        /// 
        [ApiMember(Name = "MaxWidth", Description = "The maximum image width to return.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
        public int? MaxWidth { get; set; }
        /// 
        /// The max height
        /// 
        [ApiMember(Name = "MaxHeight", Description = "The maximum image height to return.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
        public int? MaxHeight { get; set; }
        /// 
        /// The width
        /// 
        [ApiMember(Name = "Width", Description = "The fixed image width to return.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
        public int? Width { get; set; }
        /// 
        /// The height
        /// 
        [ApiMember(Name = "Height", Description = "The fixed image height to return.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
        public int? Height { get; set; }
        /// 
        /// Gets or sets the quality.
        /// 
        /// The quality.
        [ApiMember(Name = "Quality", Description = "Optional quality setting, from 0-100. Defaults to 90 and should suffice in most cases.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
        public int? Quality { get; set; }
        /// 
        /// Gets or sets the tag.
        /// 
        /// The tag.
        [ApiMember(Name = "Tag", Description = "Optional. Supply the cache tag from the item object to receive strong caching headers.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
        public string Tag { get; set; }
    }
    /// 
    /// Class DeleteImageRequest
    /// 
    public class DeleteImageRequest
    {
        /// 
        /// Gets or sets the type of the image.
        /// 
        /// The type of the image.
        [ApiMember(Name = "Type", Description = "Image Type", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
        [ApiMember(Name = "Type", Description = "Image Type", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
        [ApiMember(Name = "Type", Description = "Image Type", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "DELETE")]
        public ImageType Type { get; set; }
        /// 
        /// Gets or sets the index.
        /// 
        /// The index.
        [ApiMember(Name = "Index", Description = "Image Index", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
        [ApiMember(Name = "Index", Description = "Image Index", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "POST")]
        [ApiMember(Name = "Index", Description = "Image Index", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "DELETE")]
        public int? Index { get; set; }
    }
}