package com.kamco.cd.kamcoback.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum DetectionClassification {
  BUILDING("building", "건물", 10),
  CONTAINER("container", "컨테이너", 20),
  FIELD("field", "경작지", 30),
  FOREST("forest", "숲", 40),
  GRASS("grass", "초지", 50),
  GREENHOUSE("greenhouse", "비닐하우스", 60),
  LAND("land", "일반토지", 70),
  ORCHARD("orchard", "과수원", 80),
  ROAD("road", "도로", 90),
  STONE("stone", "모래/자갈", 100),
  TANK("tank", "물탱크", 110),
  TUMULUS("tumulus", "토분(무덤)", 120),
  WASTE("waste", "폐기물", 130),
  WATER("water", "물", 140),
  ETC("ETC", "기타", 200); // For 'etc' (miscellaneous/other)

  private final String id;
  private final String desc;
  private final int order;

  /**
   * Optional: Helper method to get the enum from a String, case-insensitive, or return ETC if not
   * found.
   */
  public static DetectionClassification fromString(String text) {
    if (text == null || text.trim().isEmpty()) {
      return ETC;
    }

    try {
      return DetectionClassification.valueOf(text.toUpperCase());
    } catch (IllegalArgumentException e) {
      // If the string doesn't match any enum constant name, return ETC
      return ETC;
    }
  }

  /**
   * Desc 한글명 get 하기
   *
   * @return
   */
  public static String fromStrDesc(String text) {
    DetectionClassification dtf = fromString(text);
    return dtf.getDesc();
  }
}
