package com.inspect.base.core.constant;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class AlgConstants {
    public static final String METER = "meter";
    public static final String GIS_METER_2 = "gis_meter2";
    public static final String GIS_METER = "gis_meter";
    public static final String INFRA_1800 = "infra_1800";
    public static final String INFRA_YU3 = "infra_yu3";
    public static final String INFRA_CAMERA = "infra_camera";
    public static final String INFRA_CAMERA_REVERSE = "infra_camera_reverse";
    // 红外算法（如绍兴T100）：在初筛阶段由设备直接将温度和图片传过来我们直接展示
    public static final String INFRARED = "infrared";
    public static final String INFRARED2 = "infrared2";
    public static final String XB = "xb";
    // 纠偏算法
    public static final String CORRECTION = "correction";

    public static final String ALG_SUBTYPE_CODE = "alg_subtype_code";

    /**
     * 需要走大模型的算法
     */
    public static final List<String> BIG_MODEL_ALG_LIST = Arrays.asList(
            METER,
            XB,
            INFRA_1800,
            INFRA_YU3,
            INFRA_CAMERA,
            INFRA_CAMERA_REVERSE,
            INFRARED2,
            "isolator",
            "gis_meter",
            CORRECTION,
            "switch",
            GIS_METER_2
    );

    /**
     * 红外类型的算法
     */
    public static final List<String> ALG_INFRARED_LIST = Arrays.asList(
            INFRARED,
            INFRARED2,
            INFRA_1800,
            INFRA_YU3,
            INFRA_CAMERA,
            INFRA_CAMERA_REVERSE
    );

    /**
     * 表计类型的算法
     */
    public static final List<String> ALG_METER_LIST = Arrays.asList(
            METER,
            "gis_meter",
            GIS_METER_2
    );

    /**
     * 可读数的算法（红外和表计）
     */
    public static final List<String> READABLE_ALG_LIST = Stream.concat(ALG_INFRARED_LIST.stream(), ALG_METER_LIST.stream()).collect(Collectors.toList());
}
