package com.ycwl.basic.image.pipeline.enums;

/**
 * 图片来源枚举
 * 用于标识图片的拍摄或上传来源
 */
public enum ImageSource {

    /**
     * IPC设备(IP Camera)
     * 景区固定安装的网络摄像头拍摄的照片
     */
    IPC("ipc", "IPC设备"),

    /**
     * 相机设备
     * 工作人员使用专业相机拍摄的照片
     */
    CAMERA("camera", "相机设备"),

    /**
     * 手机上传
     * 用户通过手机客户端上传的照片
     */
    PHONE("phone", "手机上传"),

    /**
     * 未知来源
     * 无法确定来源或其他特殊情况
     */
    UNKNOWN("unknown", "未知来源");

    private final String code;
    private final String description;

    ImageSource(String code, String description) {
        this.code = code;
        this.description = description;
    }

    public String getCode() {
        return code;
    }

    public String getDescription() {
        return description;
    }

    /**
     * 根据code获取枚举
     */
    public static ImageSource fromCode(String code) {
        if (code == null) {
            return UNKNOWN;
        }
        for (ImageSource source : values()) {
            if (source.code.equalsIgnoreCase(code)) {
                return source;
            }
        }
        return UNKNOWN;
    }
}
