package com.nanjing.water.common.enums;

import java.util.Arrays;

/**
 * ContentType 枚举
 */
public enum EContentType {
    /**
     * application/json
     */
    JSON("application/json", "application/json"),
    /**
     * application/x-www-form-urlencoded
     */
    FORM("application/x-www-form-urlencoded", "application/x-www-form-urlencoded"),
    /**
     * multipart/form-data
     */
    FORMDATA("multipart/form-data", "multipart/form-data"),
    /**
     * application/xml
     */
    XML("application/xml", "application/xml"),
    /**
     * text/plain
     */
    TEXT("text/plain", "text/plain"),





    /**
     * application/vnd.ms-excel
     */
    EXCEL("application/vnd.ms-excel", "application/vnd.ms-excel"),
    /**
     * application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
     */
    EXCELX("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
    /**
     * application/msword
     */
    WORD("application/msword", "application/msword"),
    /**
     * application/vnd.openxmlformats-officedocument.wordprocessingml.document
     */
    WORDX("application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"),
    /**
     * application/vnd.ms-powerpoint
     */
    PPT("application/vnd.ms-powerpoint", "application/vnd.ms-powerpoint"),
    /**
     * application/vnd.openxmlformats-officedocument.presentationml.presentation
     */
    PPTX("application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/vnd.openxmlformats-officedocument.presentationml.presentation"),










    /**
     * image/jpeg
     */
    JPEG("image/jpeg", "image/jpeg"),
    /**
     * image/jpg
     */
    JPG("image/jpg", "image/jpg"),
    /**
     * image/gif
     */
    GIF("image/gif", "image/gif"),
    /**
     * image/png
     */
    PNG("image/png", "image/png"),
    /**
     * image/bmp
     */
    BMP("image/bmp", "image/bmp"),










    /**
     * application/zip
     */
    ZIP("application/zip", "application/zip"),
    /**
     * application/x-rar
     */
    RAR("application/x-rar", "application/x-rar"),
    /**
     * application/x-7z-compressed
     */
    X7Z("application/x-7z-compressed", "application/x-7z-compressed"),
    /**
     * application/x-gzip
     */
    GZ("application/x-gzip", "application/x-gzip"),










    /**
     * video/mpeg
     */
    MP2("video/mpeg", "video/mpeg"),
    /**
     * audio/mpeg
     */
    MP3("audio/mpeg", "audio/mpeg"),
    /**
     * aaudio/x-flac
     */
    FLAC("audio/x-flac", "audio/x-flac"),
    /**
     * video/x-flv
     */
    FLV("video/x-flv", "video/x-flv"),
    /**
     * video/3gpp
     */
    X3GP("video/3gpp", "video/3gpp"),
    /**
     * video/mp4
     */
    MP4("video/mp4", "video/mp4"),










    /**
     * application/pdf
     */
    PDF("application/pdf", "application/pdf")
    ;

    private String desc;//枚举描述
    private String value;//枚举值

    public String getValue() {
        return value;
    }
    public String getDesc() {
        return desc;
    }

    /**
     * 构造方法
     * @param desc 枚举描述
     * @param value 枚举值
     */
    EContentType(String desc, String value) {
        this.desc = desc;
        this.value = value;
    }

    /**
     * 根据值获取枚举
     *
     * @param value 枚举值
     * @return
     */
    public static EContentType getByValue(String value) {
        return Arrays.stream(EContentType.values())
                .filter(e -> e.getValue().equals(value))
                .findFirst()
                .orElse(null);
    }

    @Override
    public String toString() {
        return "EContentType{" +
                "desc='" + desc + '\'' +
                ", value=" + value +
                '}';
    }
}