package com.mgm.mcrm.common.enums; import lombok.Getter; public enum EnumBookingStatus { DUE_IN("DUE IN", "DUE_IN"), DUE_IN_UNDERSCORE("DUE_IN", "DUE_IN"), DUEIN("DUEIN", "DUE_IN"), RESERVED("RESERVED", "RESERVED"), RESERVE("Reserved", "RESERVED"), CHECKEDIN("Checked in", "CHECKED_IN"), CHECKED_IN("CHECKED IN", "CHECKED_IN"), CHECKED_IN_UNDERSCORE("CHECKED_IN", "CHECKED_IN"), CHECK_IN("CHECK_IN", "CHECKED_IN"), CHECK_IN_IN_HOUSE("CHECK_IN(IN_HOUSE)", "CHECKED_IN"), CHECKED_OUT("CHECKED OUT", "CHECKED_OUT"), CHECKED_OUT_UNDERSCORE("CHECKED_OUT", "CHECKED_OUT"), INHOUSE("INHOUSE", "CHECKED_IN"), IN_HOUSE("IN-HOUSE", "CHECKED_IN"), IN_HOUSE_UNDERSCORE("IN_HOUSE", "CHECKED_IN"), IN("IN", "CHECKED_IN"), IH("IH", "CHECKED_IN"), DUE_OUT("DUE OUT", "DUE_OUT"), DUE_OUT_UNDERSCORE("DUE_OUT", "DUE_OUT"), DUEOUT("DUEOUT", "DUE_OUT"), CANCELED("CANCELED", "CANCELED"), CANCELLED("CANCELLED", "CANCELED"), NO_SHOW("No-Show", "NO_SHOW"); @Getter private final String key; @Getter private final String value; EnumBookingStatus(String key, String value) { this.key = key; this.value = value; } public static String getStatusByDaylightStatus(String key) { if (key == null) { return "UNKNOWN"; } String normalizedKey = key.trim(); EnumBookingStatus[] objs = values(); for (EnumBookingStatus obj : objs) { if (obj.getKey().equalsIgnoreCase(normalizedKey)) { return obj.getValue(); } } String compactKey = normalizeStatusKey(normalizedKey); for (EnumBookingStatus obj : objs) { String compactObjKey = normalizeStatusKey(obj.getKey()); if (compactObjKey.equalsIgnoreCase(compactKey)) { return obj.getValue(); } } if (compactKey.contains("CHECKIN") || compactKey.contains("INHOUSE")) { return "CHECKED_IN"; } return "UNKNOWN"; } private static String normalizeStatusKey(String key) { return key == null ? "" : key.replaceAll("[^A-Za-z0-9]", ""); } public static boolean isInclude(String value) { boolean include = false; for (EnumBookingStatus e : EnumBookingStatus.values()) { if (e.getValue().equals(value)) { include = true; break; } } return include; } }