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

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum DetectionClassification {
  BUILDING("building", "빌딩"),
  CONTAINER("container", "컨테이너(창고·적재함)"),
  FIELD("field", "경작지 / 들판"),
  FOREST("forest", "숲"),
  GRASS("grass", "초지 / 잔디지역"),
  GREENHOUSE("greenhouse", "비닐하우스"),
  LAND("land", "나지"),
  ORCHARD("orchard", "과수원"),
  ROAD("road", "도로"),
  STONE("stone", "암석 / 돌 지역"),
  TANK("tank", "탱크(저유탱크 등 저장시설)"),
  TUMULUS("tumulus", "고분(무덤)"),
  WASTE("waste", "폐기물 적치장 / 황폐지"),
  WATER("water", "수체(水域) / 물"),
  ETC("ETC", "기타"); // For 'etc' (miscellaneous/other)

  private final String id;
  private final String desc;

  /**
   * 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();
  }
}
