/*
 * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

// 该类所属的包名，表明其位于商城相关的Java Bean的订单（order）包下，这个接口主要用于定义提交订单事件的先后顺序相关的常量，以便在处理提交订单业务逻辑中，
// 根据不同的业务场景（如是否有优惠券、折扣等活动参与）来确定各个操作环节的执行顺序。
package com.yami.shop.bean.order;

/**
 * SubmitOrderOrder接口用于定义提交订单事件的先后顺序相关的常量值，在整个订单提交的业务流程中，不同的业务操作（例如应用优惠券、折扣等优惠活动）可能有先后顺序之分，
 * 通过这个接口定义的常量来明确这些顺序，方便在具体的事件处理逻辑中进行排序和控制，确保订单提交过程中各个环节按照预定的顺序依次执行，保证业务逻辑的正确性。
 *
 * @author LGH
 */
public interface SubmitOrderOrder {

    /**
     * DEFAULT常量用于表示在没有任何活动（如优惠券、折扣等优惠活动都未参与）时的默认顺序，其值被定义为0，在整个订单提交事件顺序的比较和判断中，
     * 作为基础顺序参考，其他涉及活动的顺序值通常会大于这个默认值，以体现活动相关操作在默认操作之后执行的逻辑。
     */
    int DEFAULT = 0;

    /**
     * DISCOUNT常量用于表示与折扣相关操作在提交订单事件顺序中的位置，其值设定为100，意味着在有折扣活动参与的情况下，折扣相关操作应该在默认顺序（DEFAULT）之后执行，
     * 通过这个顺序值来确保在订单提交流程中，先进行一些基础的订单信息处理（对应默认顺序的操作），然后再进行折扣相关的计算和应用等操作，保证业务逻辑的合理性和连贯性。
     */
    int DISCOUNT = 100;

    /**
     * COUPON常量用于表示与优惠券相关操作在提交订单事件顺序中的位置，其值设定为200，说明在有优惠券活动参与时，优惠券相关操作要在折扣相关操作（DISCOUNT顺序对应的操作）之后执行，
     * 进一步细化了订单提交过程中优惠活动应用的先后顺序，即先处理默认的订单信息，再应用折扣，最后应用优惠券，以此来准确计算订单最终的金额等信息，符合一般的业务流程逻辑。
     */
    int COUPON = 200;
}