package com.zm.order.tool.server.stream.enums;

import com.zm.order.enums.OrderPayType;
import com.zm.order.tool.server.enums.BizTypeEnum;

/**
 * 订单状态映射
 *
 * <p>
 *      烘焙与餐饮的订单支付方式基本一致，只需要关注不同枚举转换即可
 * </p>
 *
 * @author nianchang
 * @date 2023/03/10 6:01 下午
 */
public enum OrderPayTypeMapping {

    /**
     * 烘焙组合支付
     */
    BAKERY_COMBINE_PAY(BizTypeEnum.BAKING.getType(), 8, OrderPayType.COMBINE_PAY.getType()),

    /**
     * 烘焙抖音官方支付
     */
    BAKERY_DY_PAY(BizTypeEnum.BAKING.getType(), 17, OrderPayType.DY_PAY.getType()),

    /**
     * 自定义
     */
    ZDY(BizTypeEnum.BAKING.getType(), 129, OrderPayType.GIFT_CARD_PAY.getType()),

    /**
     * 自定义
     */
    ZDY1(BizTypeEnum.BAKING.getType(), 33, OrderPayType.HS_PAY.getType()),

    /**
     * 烘焙在线支付
     */
    BAKERY_DY(BizTypeEnum.BAKING.getType(), 132, OrderPayType.ONLINE_PAY.getType()),

    /**
     * 烘焙POS收单
     */
    BAKERY_POS_PAY(BizTypeEnum.BAKING.getType(), 265, OrderPayType.POS_PAY.getType()),

    /**
     * 烘焙现金支付
     */
    BAKERY_CASH_PAY(BizTypeEnum.BAKING.getType(), 266, OrderPayType.CASH_PAY.getType()),

    /**
     * 烘焙商家自有微信
     */
    BAKERY_SELLER_WE_CHAT(BizTypeEnum.BAKING.getType(), 267, OrderPayType.SELLER_WE_CHAT.getType()),

    /**
     * 烘焙商家自有支付宝
     */
    BAKERY_SELLER_ALI_PAY(BizTypeEnum.BAKING.getType(), 268, OrderPayType.SELLER_ALI_PAY.getType()),
    ;

    /**
     * 业务类型
     *
     * {@link BizTypeEnum}
     */
    private Integer bizType;

    /**
     * 旧枚举值
     */
    private Integer oldCode;

    /**
     * 新枚举值
     */
    private Integer newCode;

    public Integer getBizType() {
        return bizType;
    }

    public Integer getOldCode() {
        return oldCode;
    }

    public Integer getNewCode() {
        return newCode;
    }

    OrderPayTypeMapping(Integer bizType, Integer oldCode, Integer newCode) {
        this.bizType = bizType;
        this.oldCode = oldCode;
        this.newCode = newCode;
    }
}
