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

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 优惠券领取方式，对应 {@code app_coupon_template.get_type} / {@code app_member_coupon.get_type}。
 *
 * @author jeesharp
 * @since 2026-05-07
 */
@Getter
@AllArgsConstructor
public enum CouponGetTypeEnum {

    /**
     * 手动领取
     */
    MANUAL(1, "手动领取"),

    /**
     * 自动发放
     */
    AUTO(2, "自动发放"),

    /**
     * 兑换领取
     */
    EXCHANGE(3, "兑换领取"),

    /**
     * 活动赠送（多见于用户券实例）
     */
    ACTIVITY(4, "活动赠送");

    private final Integer value;
    private final String desc;

    public static CouponGetTypeEnum fromValue(Integer value) {
        if (value == null) {
            return null;
        }
        for (CouponGetTypeEnum e : values()) {
            if (e.value.equals(value)) {
                return e;
            }
        }
        return null;
    }

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