package com.czg.constant;

import lombok.Getter;

/**
 * @author Administrator
 */
public interface TableValueConstant {
    interface OrderDetail {
        @Getter
        enum SubStatus {
            PENDING_PREP("PENDING_PREP", "待起菜"),
            READY_TO_SERVE("READY_TO_SERVE", "待出菜"),
            SENT_OUT("SENT_OUT", "已出菜"),
            DELIVERED("DELIVERED", "已上菜"),
            EXPIRED("EXPIRED", "已超时");
            private final String code;
            private final String msg;

            SubStatus(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }
    }

    interface MemberExpFlow {
        @Getter
        enum Type {
            RECHARGE("RECHARGE", "充值成长值 积分发放在扣减余额的地方"),
            PAY("PAY", "购买会员"),
            MEMBER_TASK("MEMBER_TASK", "会员周奖励"),
            COST("COST", "消费成长值");
            private final String code;
            private final String msg;

            Type(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }

    }


    interface DistributionConfig {
        @Getter
        enum OpenType {
            PAY("pay", "支付购买"),
            COST("COST", "消费增积分");
            private final String code;
            private final String msg;

            OpenType(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }

    }

    interface DistributionAmountFlow {
        @Getter
        enum Type {
            MANUAL_RECHARGE("manual_recharge", "手动充值"),
            REFUND("refund", "退款"),
            SUB("sub", "系统扣减"),
            OPEN("open", "分销员购买"),
            MANUAL_SUB("manual_sub", "手动扣减"),
            SELF_RECHARGE("self_recharge", "自助充值");
            private final String code;
            private final String msg;

            Type(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }

    }

    interface DistributionWithdrawFlow {
        @Getter
        enum Status {
            PENDING("pending", "提现中"),
            REFUND("refund", "提现中"),
            SUB("sub", "系统扣减"),
            OPEN("open", "分销员购买"),
            FINISH("finish", "已提现"),
            SELF_RECHARGE("self_recharge", "自助充值"), FAIL("fail", "失败");
            private final String code;
            private final String msg;

            Status(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }

    }

    interface DistributionFlow {
        @Getter
        enum Status {
            PENDING("pending", "待入账"),
            SUCCESS("success", "已入账"),
            REFUND("refund", "已退款"),
            FAIL("fail", "失败");
            private final String code;
            private final String msg;

            Status(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }

    }

    interface EnableConfig {
        @Getter
        enum Type {
            RECHARGE_REDEMPTION("recharge_redemption", "充值兑换"),
            COUPON_REDEMPTION("coupon_redemption", "券兑换");
            private final String code;
            private final String msg;

            Type(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }

    }

    interface ConsumeDiscount {
        @Getter
        enum DiscountType {
            FIXED("FIXED", "固定减免"),
            RANDOM("RANDOM", "随机减免");
            private final String code;
            private final String msg;

            DiscountType(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }
    }

    interface BirthdayGiftRecord {
        @Getter
        enum PushStatus {
            WAIT_PUSH("wait_push", "待推送"),
            NO_PUSH("no_push", "不用推送"),
            SUCCESS("success", "推送成功");
            private final String code;
            private final String msg;

            PushStatus(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }
    }


    interface BirthdayGiftRecordCoupon {
        @Getter
        enum Type {
            GIVE("give", "待推送"),
            CONSUME("consume", "推送成功");
            private final String code;
            private final String msg;

            Type(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }
    }

    interface MkConsumeCashback {
        @Getter
        enum CashbackType {
            FIX("fix", "待推送"),
            PERCENTAGE("percentage", "推送成功");
            private final String code;
            private final String msg;

            CashbackType(String code, String msg) {
                this.code = code;
                this.msg = msg;
            }
        }
    }
}
