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

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 美食预订单状态，与 {@code app_food_booking_order.book_status} 存储值一致。
 *
 * @author jeesharp
 * @since 2026-05-08
 */
@Getter
@AllArgsConstructor
public enum FoodBookingStatusEnum {

    CREATED("created", "已创建"),
    PENDING_PAY("pending_pay", "待支付"),
    PENDING_USE("pending_use", "待使用"),
    USED("used", "已使用"),
    CANCELLED("cancelled", "已取消"),
    REFUNDED("refunded", "已退款");

    private final String value;
    private final String desc;

    /**
     * 根据存储值解析枚举。
     */
    public static FoodBookingStatusEnum fromValue(String value) {
        if (value == null || value.isBlank()) {
            return null;
        }
        for (FoodBookingStatusEnum e : values()) {
            if (e.value.equals(value)) {
                return e;
            }
        }
        return null;
    }

    /**
     * 根据存储值取中文描述。
     */
    public static String getDescByValue(String value) {
        FoodBookingStatusEnum e = fromValue(value);
        return e != null ? e.getDesc() : "";
    }
}
