package shop.alien.util.common.constant;

/**
 * 优惠券相关功能枚举
 * */
public enum DiscountCouponEnum {
    /**用户优惠券状态*/
    //待使用
    WAITING_USED("0"),
    //已使用
    HAVE_BEEN_USED("1"),
    //已作废
    HAVE_BEEN_VOIDED("2"),

    /**商家优惠券状态*/
    //进行中
    UNDER_WAY("0"),
    //已结束
    FINISHED("1"),
    //未开始
    HAVE_NOT_STARTED("2"),
    //暂停领取
    SUSPEND_GET("3"),
    //已售罄
    HAVE_SOLD_OUT("4"),
    // 草稿
    DRAFT("5"),

    /**限制使用规则*/
    //周规则限制
    WEEKDAY_UNAVAILABLE("weekday_unavailable"),
    //节日规则限制
    HOLIDAY_UNAVAILABLE("holiday_unavailable"),

    /**领取规则*/
    CLAIM_RULE("claim_rule"),
    //每日一领
    DAY("day"),
    //每周一领
    WEEK("WEEK"),
    //每月一领
    MONTH("MONTH"),
    //每年一领
    YEAR("year"),
    //自定义
    CUSTOMIZE("customize"),

    /**时间段规则*/
    //可用时间段
    AVAILABLE_TIME_QUANTUM("available_time_quantum"),
    //不可用时间段
    UNAVAILABLE_TIME_QUANTUM("unavailable_time_quantum"),

    /**条件类型*/
    //所有（未使用）
    ALL("0"),
    //即将过期
    BE_ABOUT_TO_EXPORE("1"),
    //已使用
    HAVE_ALREADY_APPLIED("2"),
    //已过期
    HAVE_EXPIRED("3"),

    /**优惠券领取规则*/
    //可以领取
    CAN_GET("1"),
    //不可以领取
    NO_GET("0"),

    //占位最后一位
    KEY("VALUE");

    // 属性值
    private final String description;
    // 构造方法，用于初始化描述信息
    DiscountCouponEnum(String description) {
        this.description = description;
    }
    // 获取Value的方法
    public String getValue() {
        return description;
    }

// 测试带属性和方法的枚举的使用
    public static void main(String[] args) {
        DiscountCouponEnum discountCouponEnum = DiscountCouponEnum.WAITING_USED;
        System.out.println("用户优惠券状态：" + discountCouponEnum);
        System.out.println("值是：" + discountCouponEnum.getValue());
    }

}

