package com.sonic.frog.event.inner;

import com.sonic.frog.config.EventConfig;
import com.sonic.common.event.Event;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 定义当前系统的消息
 * @author code
 */
@AllArgsConstructor
@Getter
public enum EventType {
    /** 事件定义 */
    DEMO_CREATED(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "demo_created", "demo 创建"),

    AI_IM_INFO(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "ai_im_info", "AI的IM基础信息"),

    CALC_HEARTBEAT_LEVEL(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "calc_heartbeat_level", "心动等级计算"),

    CALC_HEARTBEAT_SCORE(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "calc_heartbeat_score", "心动分计算"),

    SUBTRACT_HEARTBEAT_VAL(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "subtract_heartbeat_val", "扣减心动值"),

    AI_USER_STAT(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "ai_user_stat", "ai用户数据统计"),

    CALC_HEARTBEAT_RANK(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "calc_heartbeat_rank", "心动榜单总分值计算"),

    AI_CHANGE(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "ai_change", "ai创建，编辑，删除变化"),


    ;

    EventType(String scene, String module, String name, String desc) {
        this.eventCode = Event.EventCode.builder()
                .scene(scene)
                .module(module)
                .name(name)
                .build();
        this.desc = desc;
    }

    private String desc;
    private Event.EventCode eventCode;
}
