package com.jeesharp.business.modules.trade.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 统一交易订单业务类型，与 {@code biz_trade_order.biz_type} 存储值一致。
 *
 * @author jeesharp
 * @since 2026-05-08
 */
@Getter
@AllArgsConstructor
public enum TradeBizTypeEnum {

    /** 商城 */
    MALL("MALL", "商城"),
    /** 酒店预订 */
    HOTEL("HOTEL", "酒店"),
    /** 景区门票 */
    SCENIC("SCENIC", "景区"),
    /** 美食预订 */
    FOOD("FOOD", "美食"),
    /** 个人订餐 */
    FOOD_MEAL("FOOD_MEAL", "个人订餐"),
    /** 企业团餐 */
    FOOD_COMPANY_MEAL("FOOD_COMPANY_MEAL", "企业团餐"),
    /** 休闲预约 */
    LEISURE("LEISURE", "休闲"),
    /** 讲解预约 */
    EXPLAIN("EXPLAIN", "讲解"),
    /** 旅游年卡购卡 */
    YEAR_CARD("YEAR_CARD", "年卡"),
    /** 研学预约 */
    STUDY("STUDY", "研学"),
    /** 文化活动报名 */
    CULTURE("CULTURE", "文化活动"),
    /** 乡村预约 */
    VILLAGE("VILLAGE", "乡村"),
    /** 非遗体验预约 */
    HERITAGE("HERITAGE", "非遗");

    private final String value;
    private final String desc;

    public static TradeBizTypeEnum fromValue(String value) {
        if (value == null || value.isBlank()) {
            return null;
        }
        for (TradeBizTypeEnum e : values()) {
            if (e.value.equals(value)) {
                return e;
            }
        }
        return null;
    }

    public static String getDescByValue(String value) {
        TradeBizTypeEnum e = fromValue(value);
        return e != null ? e.getDesc() : "";
    }
}
