/*
 * Copyright (c) 2020. Lemon Healthcare
 *
 *
 */

package com.lemonhc.mplus.httpRequest.model;

import com.google.gson.annotations.SerializedName;

import java.util.List;

import lombok.Getter;

/**
 * 챗봇 response.
 * @author sunghee kang
 * @since 2020.02.03
 */
@Getter
public class ChatBotRes {
    @SerializedName("version")
    String version;
    @SerializedName("userId")
    String userId;
    @SerializedName("sessionId")
    String sessionId;
    @SerializedName("timeStamp")
    Long timeStamp;
    @SerializedName("event")
    String event;
    @SerializedName("bubbles")
    public List<Bubbles> bubbles;
    @SerializedName("scenario")
    public Scenario scenario;
    @SerializedName("entities")
    public List<Entities> entities;
    @SerializedName("keywords")
    public String keywords[];

    public static class Bubbles {
        public String type;
        public Data data;
    }
    public static class Scenario {
        public String name;
        public String[] intent;
        public String chatUtteranceSetId;
    }

    public static class Entities {
        public String word;
        public String name;
    }

    public static class Data {
        @Getter
        public String description;
    }
}

/**
 * 성공시 응답
 * {
 * 	"version": "v2",
 * 	"userId": "123",
 * 	"sessionId": "4317342",
 * 	"timestamp": 1580722714357,
 * 	"bubbles": [{
 * 		"type": "text",
 * 		"data": {
 * 			"description": "수혈실시"
 *                } 	}],
 * 	"scenario": {
 * 		"name": "수혈실시",
 * 		"chatUtteranceSetId": 1455228,
 * 		"intent": ["메뉴이동"] 	},
 * 	"entities": [{
 * 		"word": "수혈",
 * 		"name": "간호POC" 	}],
 * 	"keywords": [],
 * 	"event": "send"
 * }
 * */


/**
 * 실패시 응답
 * {
 * 	"version": "v2",
 * 	"userId": "123",
 * 	"sessionId": "4316457",
 * 	"timestamp": 1580720377507,
 * 	"bubbles": [{
 * 		"type": "text",
 * 		"data": {
 * 			"description": "잘 이해하지 못했어요. 쉽게 설명해주시면 더 좋은 대답을 할 수 있어요."
 *                } 	}],
 * 	"scenario": {
 * 		"intent": [] 	},
 * 	"entities": [],
 * 	"keywords": [],
 * 	"event": "send"
 * }*/
