package com.sonic.cow.event.inner;

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

/**
 * 定义当前系统的消息
 *
 * @author chenjun
 */
@AllArgsConstructor
@Getter
public enum EventType {
    /**
     * 事件定义
     */
    DEMO_CREATED(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "demo_created", "demo 创建"),
    /**
     * ai生成图片-文生图
     */
    AI_TEXT_GEN_IMAGE(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "ai_text_gen_image", "ai生成图片-文生图"),

    /**
     * ai生成图片-图生图
     */
    AI_IMAGE_GEN_IMAGE(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "ai_image_gen_image", "ai生成图片-图生图"),

    /**
     * 情绪感知打分
     */
    EMOTION_SCORE(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "emotion_score", "情绪感知打分"),

    /**
     * 语音通话预扣费处理
     */
    VOICE_CALL_DEDUCTION(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "voice_call_deduction","语音通话预扣费处理"),
    /**
     * 语音通话回调事件处理
     */
    VOICE_CALL_WEBHOOK(EventConfig.DEFAULT_SCENE, EventConfig.DEFAULT_MODULE, "voice_call_webhook","语音通话回调事件处理"),



    ;

    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;
    }
