7#include "CoreMinimal.h"
9#include "GenericPlatform/GenericPlatformHttp.h"
10#include "Templates/SharedPointer.h"
12#include "NetworkData.generated.h"
26 const FServerConfig& Config = GetDefault<UCustomNetworkSettings>()->GetConfig(Mode);
33 const FString& Endpoint,
34 const TMap<FString, FString>& QueryParams)
38 if (QueryParams.Num() == 0)
44 for (
const auto& Pair : QueryParams)
46 if (Pair.Key.IsEmpty() || Pair.Value.IsEmpty())
49 FString EncodedKey = FGenericPlatformHttp::UrlEncode(Pair.Key);
50 FString EncodedValue = FGenericPlatformHttp::UrlEncode(Pair.Value);
54 QueryString += FString::Printf(TEXT(
"?%s=%s"), *EncodedKey, *EncodedValue);
59 QueryString += FString::Printf(TEXT(
"&%s=%s"), *EncodedKey, *EncodedValue);
63 return BaseUrl + QueryString;
71 const FServerConfig& Config = GetDefault<UCustomNetworkSettings>()->GetConfig(Mode);
79 static FString
Health = FString(
"/health");
84 static FString
users_me = FString(
"/users/me");
96 static FString
scenario = FString(
"/scenario/stages/current");
98 static FString
read_result = FString(
"/scenario/stage/result/post");
114USTRUCT(BlueprintType)
120 UPROPERTY(EditAnywhere, BlueprintReadWrite)
124 UPROPERTY(EditAnywhere, BlueprintReadWrite)
128 UPROPERTY(EditAnywhere, BlueprintReadWrite)
132 UPROPERTY(EditAnywhere, BlueprintReadWrite)
136 UPROPERTY(EditAnywhere, BlueprintReadWrite)
140 UPROPERTY(EditAnywhere, BlueprintReadWrite)
144 UPROPERTY(EditAnywhere, BlueprintReadWrite)
149USTRUCT(BlueprintType)
154 UPROPERTY(BlueprintReadWrite, Category =
"KLingo")
165USTRUCT(BlueprintType)
170 UPROPERTY(BlueprintReadWrite, Category =
"PlayerInfo")
173 UPROPERTY(BlueprintReadWrite, Category = "PlayerInfo")
176 UPROPERTY(BlueprintReadWrite, Category = "PlayerInfo")
179 UPROPERTY(BlueprintReadWrite, Category = "PlayerInfo")
180 int32 Character = -1;
182 UPROPERTY(BlueprintReadWrite, Category = "PlayerInfo")
183 int32 CharacterColor = -1;
185 UPROPERTY(BlueprintReadWrite, Category = "PlayerInfo")
188 UPROPERTY(BlueprintReadWrite, Category = "PlayerInfo")
193USTRUCT(BlueprintType)
198 UPROPERTY(BlueprintReadWrite, Category =
"Word")
201 UPROPERTY(BlueprintReadWrite, Category = "Word")
202 FString Pronunciation;
204 FString ToRichTextString(int32 Index) const;
208USTRUCT(BlueprintType)
213 UPROPERTY(BlueprintReadWrite, Category =
"Word")
216 UPROPERTY(BlueprintReadWrite, Category = "Word")
219 UPROPERTY(BlueprintReadWrite, Category = "Word")
220 FString Pronunciation;
230USTRUCT(BlueprintType)
235 UPROPERTY(BlueprintReadWrite, Category =
"KLingo")
238 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
243USTRUCT(BlueprintType)
248 UPROPERTY(BlueprintReadWrite, Category =
"KLingo")
251 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
252 int32 Difficulty = 0;
254 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
257 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
258 int32 CorrectAnswerIndex = 0;
260 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
263 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
266 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
275USTRUCT(BlueprintType)
280 UPROPERTY(BlueprintReadWrite, Category =
"KLingo")
283 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
288USTRUCT(BlueprintType)
293 UPROPERTY(BlueprintReadWrite, Category =
"KLingo")
294 int32 ListenIndex = 0;
296 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
297 int32 Difficulty = 0;
299 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
302 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
303 int32 CorrectAnswerIndex = 0;
305 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
308 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
311 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
320USTRUCT(BlueprintType)
325 UPROPERTY(BlueprintReadWrite, Category =
"Write")
328 UPROPERTY(BlueprintReadWrite, Category = "
Write")
331 UPROPERTY(BlueprintReadWrite, Category = "
Write")
332 FString pronunciation;
336USTRUCT(BlueprintType)
341 UPROPERTY(BlueprintReadWrite, Category =
"Write")
344 UPROPERTY(BlueprintReadWrite, Category = "
Write")
347 UPROPERTY(BlueprintReadWrite, Category = "
Write")
350 UPROPERTY(BlueprintReadWrite, Category = "
Write")
357USTRUCT(BlueprintType)
362 UPROPERTY(BlueprintReadWrite, Category =
"Write")
365 UPROPERTY(BlueprintReadWrite, Category = "
Write")
368 UPROPERTY(BlueprintReadWrite, Category = "
Write")
369 bool bIsValid = false;
372 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
375 void PrintData() const;
378 bool IsValid() const;
386USTRUCT(BlueprintType)
391 UPROPERTY(BlueprintReadWrite, Category =
"KLingo")
392 int32 SpeakIndex = 0;
394 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
395 int32 Difficulty = 0;
397 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
398 TArray<FString> AnswerPlayer;
400 UPROPERTY(BlueprintReadWrite, Category = "
KLingo")
401 TArray<FString> QuestTarget;
409USTRUCT(BlueprintType)
414 UPROPERTY(BlueprintReadWrite, Category =
"Quest")
415 bool bSuccess = false;
417 UPROPERTY(BlueprintReadWrite, Category = "Quest")
418 float RemainTime = 0.f;
420 UPROPERTY(BlueprintReadWrite, Category = "Quest")
421 int32 AttemptCount = 0;
423 UPROPERTY(BlueprintReadWrite, Category = "Quest")
424 FString SelectedSymbol;
426 UPROPERTY(BlueprintReadWrite, Category = "Quest")
427 FString SelectedColor;
435USTRUCT(BlueprintType)
440 UPROPERTY(BlueprintReadWrite)
444 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
452USTRUCT(BlueprintType)
457 UPROPERTY(BlueprintReadWrite)
460 UPROPERTY(BlueprintReadWrite)
463 UPROPERTY(BlueprintReadWrite)
466 UPROPERTY(BlueprintReadWrite)
470 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
473 void PrintData() const;
478USTRUCT(BlueprintType)
483 UPROPERTY(BlueprintReadWrite, Category =
"Token")
484 FString access_token;
487 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
490 void PrintData() const;
495USTRUCT(BlueprintType)
500 UPROPERTY(BlueprintReadWrite, Category =
"Me")
503 UPROPERTY(BlueprintReadWrite, Category = "Me")
506 UPROPERTY(BlueprintReadWrite, Category = "Me")
509 UPROPERTY(BlueprintReadWrite, Category = "Me")
512 UPROPERTY(BlueprintReadWrite, Category = "Me")
515 UPROPERTY(BlueprintReadWrite, Category = "Me")
519 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
522 void PrintData() const;
525 FLinearColor GetChatProfileBg(
int player_index) const;
530USTRUCT(BlueprintType)
536 void SetFromHttpResponse(
const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
539 void PrintData()
const;
548USTRUCT(BlueprintType)
553 UPROPERTY(BlueprintReadWrite, Category =
"Word")
556 UPROPERTY(BlueprintReadWrite, Category = "Word")
562 static const TArray<FWordInfo> ColorPool = {
563 { TEXT(
"빨강"), TEXT(
"1") },
564 { TEXT(
"파랑"), TEXT(
"2") },
565 { TEXT(
"노랑"), TEXT(
"3") },
566 { TEXT(
"초록"), TEXT(
"4") },
567 { TEXT(
"검정"), TEXT(
"5") },
568 { TEXT(
"흰색"), TEXT(
"6") },
569 { TEXT(
"회색"), TEXT(
"7") },
570 { TEXT(
"주황"), TEXT(
"8") },
571 { TEXT(
"분홍"), TEXT(
"9") },
572 { TEXT(
"갈색"), TEXT(
"10") },
573 { TEXT(
"남색"), TEXT(
"11") },
574 { TEXT(
"보라색"), TEXT(
"12") },
575 { TEXT(
"금색"), TEXT(
"13") },
576 { TEXT(
"은색"), TEXT(
"14") },
577 { TEXT(
"살구색"), TEXT(
"15") },
578 { TEXT(
"하늘색"), TEXT(
"16") },
579 { TEXT(
"자주색"), TEXT(
"17") },
580 { TEXT(
"청록색"), TEXT(
"18") },
581 { TEXT(
"황토색"), TEXT(
"19") },
582 { TEXT(
"진홍색"), TEXT(
"20") },
583 { TEXT(
"군청색"), TEXT(
"21") },
584 { TEXT(
"연두색"), TEXT(
"22") },
585 { TEXT(
"와인색"), TEXT(
"23") },
586 { TEXT(
"베이지색"), TEXT(
"24") }
589 const int Index = FMath::RandRange(0, ColorPool.Num() - 1);
590 return ColorPool[Index];
597 static const TArray<FWordInfo> AnimalPool = {
598 { TEXT(
"개"), TEXT(
"1") },
599 { TEXT(
"고양이"), TEXT(
"2") },
600 { TEXT(
"새"), TEXT(
"3") },
601 { TEXT(
"물고기"), TEXT(
"4") },
602 { TEXT(
"소"), TEXT(
"5") },
603 { TEXT(
"닭"), TEXT(
"6") },
604 { TEXT(
"돼지"), TEXT(
"7") },
605 { TEXT(
"토끼"), TEXT(
"8") },
606 { TEXT(
"말"), TEXT(
"9") },
607 { TEXT(
"양"), TEXT(
"10") },
608 { TEXT(
"사슴"), TEXT(
"11") },
609 { TEXT(
"호랑이"), TEXT(
"12") },
610 { TEXT(
"곰"), TEXT(
"13") },
611 { TEXT(
"여우"), TEXT(
"14") },
612 { TEXT(
"원숭이"), TEXT(
"15") },
613 { TEXT(
"펭귄"), TEXT(
"16") },
614 { TEXT(
"기린"), TEXT(
"17") },
615 { TEXT(
"코끼리"), TEXT(
"18") },
616 { TEXT(
"치타"), TEXT(
"19") },
617 { TEXT(
"물개"), TEXT(
"20") },
618 { TEXT(
"하마"), TEXT(
"21") },
619 { TEXT(
"낙타"), TEXT(
"22") },
620 { TEXT(
"돌고래"), TEXT(
"23") },
621 { TEXT(
"박쥐"), TEXT(
"24") }
624 const int Index = FMath::RandRange(0, AnimalPool.Num() - 1);
625 return AnimalPool[Index];
631 return name == Other.
name && code == Other.
code;
636 return !(*
this == Other);
647USTRUCT(BlueprintType)
652 UPROPERTY(BlueprintReadWrite, Category =
"Scenario")
655 UPROPERTY(BlueprintReadWrite, Category = "Scenario")
663USTRUCT(BlueprintType)
668 UPROPERTY(BlueprintReadWrite, Category =
"Write")
669 bool is_pass = false;
671 UPROPERTY(BlueprintReadWrite, Category = "
Write")
674 UPROPERTY(BlueprintReadWrite, Category = "
Write")
678USTRUCT(BlueprintType)
683 UPROPERTY(BlueprintReadWrite, Category =
"Write")
686 UPROPERTY(BlueprintReadWrite, Category = "
Write")
689 UPROPERTY(BlueprintReadWrite, Category = "
Write")
692 UPROPERTY(BlueprintReadWrite, Category = "
Write")
696USTRUCT(BlueprintType)
701 UPROPERTY(BlueprintReadWrite, Category =
"Write")
704 UPROPERTY(BlueprintReadWrite, Category = "
Write")
711USTRUCT(BlueprintType)
716 UPROPERTY(BlueprintReadWrite, Category =
"Write")
720 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
723 void PrintData() const;
726USTRUCT(BlueprintType)
731 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
734 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
737 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
740 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
743 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
746 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
749 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
750 TArray<int32> wrong_idx;
753 bool ToJsonString(FString& OutJson) const;
759USTRUCT(BlueprintType)
764 UPROPERTY(BlueprintReadWrite, Category =
"Write")
767 UPROPERTY(BlueprintReadWrite, Category = "
Write")
771USTRUCT(BlueprintType)
776 UPROPERTY(BlueprintReadWrite, Category =
"Write")
779 UPROPERTY(BlueprintReadWrite, Category = "
Write")
782 UPROPERTY(BlueprintReadWrite, Category = "
Write")
785 UPROPERTY(BlueprintReadWrite, Category = "
Write")
789 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
798USTRUCT(BlueprintType)
803 UPROPERTY(BlueprintReadWrite, Category =
"Speaking")
806 UPROPERTY(BlueprintReadWrite)
807 TArray<uint8> audio_base64;
810 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
813 void PrintData() const;
825USTRUCT(BlueprintType)
830 UPROPERTY(BlueprintReadWrite, Category =
"Speaking")
833 UPROPERTY(BlueprintReadWrite, Category = "Speaking")
836 UPROPERTY(BlueprintReadWrite, Category = "Speaking")
837 int final_overall_score;
839 UPROPERTY(BlueprintReadWrite, Category = "Speaking")
840 FString final_feedback;
843 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
846 void PrintData() const;
853USTRUCT(BlueprintType)
858 UPROPERTY(BlueprintReadWrite, Category =
"Interview")
862 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
865 void PrintData() const;
868USTRUCT(BlueprintType)
873 UPROPERTY(BlueprintReadWrite)
876 UPROPERTY(BlueprintReadWrite)
879 UPROPERTY(BlueprintReadWrite)
883USTRUCT(BlueprintType)
888 UPROPERTY(BlueprintReadWrite, Category =
"Interview")
892 bool ToJsonString(FString& OutJson) const;
896USTRUCT(BlueprintType)
902 void SetFromHttpResponse(
const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
905 void PrintData()
const;
909USTRUCT(BlueprintType)
914 UPROPERTY(BlueprintReadWrite, Category =
"Read")
917 UPROPERTY(BlueprintReadWrite, Category = "
Read")
918 int32 dificulity = 0;
920 UPROPERTY(BlueprintReadWrite, Category = "
Read")
923 UPROPERTY(BlueprintReadWrite, Category = "
Read")
926 UPROPERTY(BlueprintReadWrite, Category = "
Read")
927 int32 correct_answer_index = 0;
929 UPROPERTY(BlueprintReadWrite, Category = "
Read")
932 UPROPERTY(BlueprintReadWrite, Category = "
Read")
935 UPROPERTY(BlueprintReadWrite, Category = "
Read")
939 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
942 void PrintData() const;
944 TArray<FString> GetWord1List() const;
945 TArray<FString> GetWord2List() const;
950USTRUCT(BlueprintType)
955 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
958 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
961 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
964 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
967 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
970 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
973 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
974 TArray<int32> wrong_idx;
977 bool ToJsonString(FString& OutJson) const;
981USTRUCT(BlueprintType)
986 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
989 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
994USTRUCT(BlueprintType)
999 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
1002 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1003 float average_score;
1005 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1008 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1012 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
1015 void PrintData() const;
1020USTRUCT(BlueprintType)
1025 UPROPERTY(BlueprintReadWrite, Category =
"Listen")
1028 UPROPERTY(BlueprintReadWrite, Category = "
Listen")
1029 int32 dificulity = 0;
1031 UPROPERTY(BlueprintReadWrite, Category = "
Listen")
1034 UPROPERTY(BlueprintReadWrite, Category = "
Listen")
1037 UPROPERTY(BlueprintReadWrite, Category = "
Listen")
1038 int32 correct_answer_index = 0;
1040 UPROPERTY(BlueprintReadWrite, Category = "
Listen")
1043 UPROPERTY(BlueprintReadWrite, Category = "
Listen")
1046 UPROPERTY(BlueprintReadWrite, Category = "
Listen")
1049 UPROPERTY(BlueprintReadWrite, NotReplicated, Category = "
Listen")
1050 TArray<uint8> voice_data;
1053 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
1056 void PrintData() const;
1058 TArray<FString> GetWord1List() const;
1059 TArray<FString> GetWord2List() const;
1064USTRUCT(BlueprintType)
1069 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
1072 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1075 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1078 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1081 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1084 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1087 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1088 TArray<int32> wrong_idx;
1091 bool ToJsonString(FString& OutJson) const;
1095USTRUCT(BlueprintType)
1100 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
1103 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1108USTRUCT(BlueprintType)
1113 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
1116 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1117 float average_score;
1119 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1122 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1126 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
1129 void PrintData() const;
1139USTRUCT(BlueprintType)
1145 UPROPERTY(BlueprintReadWrite, Category =
"SpeakQuest")
1149 UPROPERTY(BlueprintReadWrite, Category = "SpeakQuest")
1153 UPROPERTY(BlueprintReadWrite, Category = "SpeakQuest")
1154 FString pronunciation;
1157 UPROPERTY(BlueprintReadWrite, NotReplicated, Category = "SpeakQuest")
1158 TArray<uint8> voice_data;
1160 FString GetQuestionMessage() const;
1170USTRUCT(BlueprintType)
1175 UPROPERTY(BlueprintReadWrite, Category =
"Speak")
1178 UPROPERTY(BlueprintReadWrite, Category = "
Speak")
1179 int32 difficulty = 0;
1181 UPROPERTY(BlueprintReadWrite, Category = "
Speak")
1185 UPROPERTY(BlueprintReadWrite, Category = "
Speak")
1189 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
1192 void PrintData() const;
1196USTRUCT(BlueprintType)
1201 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
1204 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1207 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1210 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1213 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1216 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1219 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1220 TArray<int32> wrong_idx;
1223 bool ToJsonString(FString& OutJson) const;
1227USTRUCT(BlueprintType)
1232 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
1235 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1241USTRUCT(BlueprintType)
1246 UPROPERTY(BlueprintReadWrite, Category =
"QuestResult")
1249 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1250 int32 average_score;
1252 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1255 UPROPERTY(BlueprintReadWrite, Category = "QuestResult")
1259 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
1262 void PrintData() const;
1276 READING
UMETA(DisplayName =
"Reading"),
1277 LISTENING
UMETA(DisplayName =
"Listening"),
1278 WRITING
UMETA(DisplayName =
"Writing"),
1279 SPEAKING
UMETA(DisplayName =
"Speaking")
1283USTRUCT(BlueprintType)
1288 UPROPERTY(BlueprintReadWrite, Category =
"Evaluation")
1291 UPROPERTY(BlueprintReadWrite, Category = "Evaluation")
1296USTRUCT(BlueprintType)
1301 UPROPERTY(BlueprintReadWrite, Category =
"Evaluation")
1304 UPROPERTY(BlueprintReadWrite, Category = "Evaluation")
1305 FString display_name;
1307 UPROPERTY(BlueprintReadWrite, Category = "Evaluation")
1308 int32 final_score = 0;
1310 UPROPERTY(BlueprintReadWrite, Category = "Evaluation")
1313 UPROPERTY(BlueprintReadWrite, Category = "Evaluation")
1316 UPROPERTY(BlueprintReadWrite, Category = "Evaluation")
1317 FString action_item;
1321USTRUCT(BlueprintType)
1326 UPROPERTY(BlueprintReadWrite, Category =
"Evaluation")
1327 int32 final_score = 0;
1329 UPROPERTY(BlueprintReadWrite, Category = "Evaluation")
1332 UPROPERTY(BlueprintReadWrite, Category = "Evaluation")
1333 FString feedback_summary;
1339USTRUCT(BlueprintType)
1344 UPROPERTY(BlueprintReadWrite, Category =
"Evaluation")
1347 UPROPERTY(BlueprintReadWrite, Category = "Evaluation")
1351 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
1354 void PrintData() const;
1365USTRUCT(BlueprintType)
1370 UPROPERTY(BlueprintReadWrite, Category =
"Chat")
1373 UPROPERTY(BlueprintReadWrite, Category = "Chat")
1377 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
1380 void PrintData() const;
1391USTRUCT(BlueprintType)
1396 UPROPERTY(BlueprintReadWrite, Category =
"Chat")
1399 UPROPERTY(BlueprintReadWrite, Category = "Chat")
1403 void SetFromHttpResponse(const TSharedPtr<class IHttpResponse, ESPMode::ThreadSafe>& Response);
1406 void PrintData() const;
DECLARE_DELEGATE_TwoParams(FResponseWriteQuestionDelegate, FQuestWriteInfo &, bool)
Write Submit 응답 델리게이트입니다.
uint32 GetTypeHash(const FWordInfo &Info)
TSet에서 사용하기 위한 해시 함수
서버 환경별 네트워크 설정을 노출하는 DeveloperSettings를 선언합니다.
EServerMode
서버 환경(개발/스테이징/라이브)을 나타내는 열거형입니다.
static EServerMode GetCurrentServerMode()
명령줄 또는 설정으로 선택된 서버 모드를 반환합니다.
static FString GetFullUrlWithQuery(const FString &Endpoint, const TMap< FString, FString > &QueryParams)
Query 파라미터가 포함된 전체 URL을 반환합니다. 파라미터가 없으면 기본 URL만 반환합니다.
static FString GetSocketURL()
현재 서버 모드에서 사용할 WebSocket 주소를 반환합니다.
static FString GetFullUrl(const FString &Endpoint)
현재 서버 모드에 맞는 HTTP 엔드포인트 URL을 생성합니다.
static FString listen_result
static FString users_register
static FString wriite_result
static FString chats_daily
static FString speak_result
static FString listenings_audio
static FString interview_hello
static FString writes_submit
Write 답변 제출 엔드포인트입니다. POST /writes/submit
static FString chats_answers
Chat 답변 요청 엔드포인트입니다. POST /chats/answers
static FString speakings_judes
static FString read_result
static FString evaluations_rooms
Evaluation 결과 조회 엔드포인트입니다. GET /evaluations/rooms/{room_id}
static FString interview_answer
static FString Health
서버 상태 확인 엔드포인트입니다.
static FString scenario
Scenario 조회 엔드포인트입니다.
static FString users_token
Listen 퀘스트의 개별 점수 상세 정보를 담는 구조체입니다.
Read 퀘스트의 개별 점수 상세 정보를 담는 구조체입니다.
Speaking Questions 응답 구조체입니다.
Write 최종 결과 점수 정보 구조체입니다.
Result Stat 위젯 통합 데이터 구조 위젯 타입, 색상 스타일, 각 타입별 데이터를 통합 관리
FString WebSocketUrl
WebSocket 접속 URL입니다.
FString GetFullUrl(const FString &Endpoint) const
엔드포인트를 결합한 전체 URL을 반환합니다.
Speak 퀘스트의 개별 점수 상세 정보를 담는 구조체입니다.
SpeakQuest 오디오 질문 데이터 구조체입니다.
static FWordInfo GetRandomAnimal()
랜덤 동물 선택 - CSV 기반 하드코딩
bool operator!=(const FWordInfo &Other) const
bool operator==(const FWordInfo &Other) const
TSet에서 사용하기 위한 비교 연산자