namespace Nop.Core;

/// <summary>
/// Collection of MimeType Constants for using to avoid Typos
/// If needed MimeTypes missing feel free to add
/// </summary>
public static class MimeTypes
{
    #region application/*

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationForceDownload => "application/force-download";

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationJson => "application/json";

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationManifestJson => "application/manifest+json";

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationOctetStream => "application/octet-stream";

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationPdf => "application/pdf";

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationRssXml => "application/rss+xml";

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationXml => "application/xml";

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationXWwwFormUrlencoded => "application/x-www-form-urlencoded";

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationZip => "application/zip";

    /// <summary>
    /// Type
    /// </summary>
    public static string ApplicationXZipCo => "application/x-zip-co";

    #endregion

    #region image/*

    /// <summary>
    /// Type
    /// </summary>
    public static string ImageBmp => "image/bmp";

    /// <summary>
    /// Type
    /// </summary>
    public static string ImageGif => "image/gif";

    /// <summary>
    /// Type
    /// </summary>
    public static string ImageJpeg => "image/jpeg";

    /// <summary>
    /// Type
    /// </summary>
    public static string ImagePJpeg => "image/pjpeg";

    /// <summary>
    /// Type
    /// </summary>
    public static string ImagePng => "image/png";

    /// <summary>
    /// Type
    /// </summary>
    public static string ImageTiff => "image/tiff";

    /// <summary>
    /// Type
    /// </summary>
    public static string ImageWebp => "image/webp";

    /// <summary>
    /// Type
    /// </summary>
    public static string ImageSvg => "image/svg+xml";

    #endregion

    #region text/*

    /// <summary>
    /// Type
    /// </summary>
    public static string TextCss => "text/css";

    /// <summary>
    /// Type
    /// </summary>
    public static string TextCsv => "text/csv";

    /// <summary>
    /// Type
    /// </summary>
    public static string TextJavascript => "text/javascript";

    /// <summary>
    /// Type
    /// </summary>
    public static string TextPlain => "text/plain";

    /// <summary>
    /// Type
    /// </summary>
    public static string TextXlsx => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

    #endregion

    #region Multipart

    /// <summary>
    /// Type
    /// </summary>
    public static string MultipartFormData => "multipart/form-data";

    #endregion
}