syntax = "proto3";
package hcip.tests;

option go_package = "pb/tests;tests";

import "tests/generic_message.proto";
import "tests/alat_test_message.proto";
import "tests/sub_test_message.proto";

message CleanQuestion {
  string id = 1;
  uint32 urutan = 2;  
  string file_url = 3;
  string pilihan = 4;
  string jawaban_user = 5;
  repeated CleanQuestionDetail question_detail = 6;
}

message CleanQuestionDetail {
  string id = 1;
  string answer = 2;
  string description = 3; 
  string input_text = 4;
}

message Questions {
  string test_header_id = 1;
  string alat_test_id = 2;
  string alat_test_name = 3;
  string test_id = 4;
  uint32 time = 5;
  string start_at = 6;
  uint32 jawaban_terakhir = 7;
  repeated CleanQuestion question = 8;
}

message Question {
  string id = 1;
  string soal_no = 2;
  AlatTest alat_test = 3;
  SubTest sub_test = 4;
  string format = 5;
  uint32 urutan = 6;  
  string file_soal = 7;
  string file_url = 8;
  string pilihan = 9;
  string created_at = 10;
  string created_by = 11;
  string updated_at = 12;
  string updated_by = 13;
  repeated QuestionDetail question_detail = 14;
}

message QuestionDetail {
  string id = 1;
  string answer = 2;
  string description = 3; 
  string input_text = 4;
  uint32 bobot = 5;
}

message ListQuestionInput {
  Pagination pagination = 1;
  string jabatan_id = 2;
  string alat_test_id = 3;
  string sub_test_id = 4;
  string format = 5;
}

message QuestionCreateInput {
  string alat_test_id = 1;
  string sub_test_id = 2;
  string format = 3;
  uint32 urutan = 4;  
  string file_soal = 5;
  string pilihan = 6;
  repeated QuestionDetailCreateInput question_detail = 7; 
}

message QuestionDetailCreateInput {
  string answer = 1;
  string description = 2; 
  string input_text = 3;
  uint32 bobot = 4;
}

message QuestionUpdateInput {
  string id = 1;
  string alat_test_id = 2;
  string sub_test_id = 3;
  string format = 4;
  uint32 urutan = 5;  
  string file_soal = 6;
  string pilihan = 7;
  repeated QuestionDetailUpdateInput question_detail = 8;
}

message QuestionDetailUpdateInput {
  string id = 1;
  string answer = 2;
  string description = 3; 
  string input_text = 4;
  uint32 bobot = 5;
}

message QuestionPaginationResponse {
  Pagination pagination = 1;
  string jabatan_id = 2;
  string alat_test_id = 3;
  string sub_test_id = 4;
  string format = 5;
  uint32 count = 6;
}

message ListQuestionResponse {
  QuestionPaginationResponse pagination = 1;
  repeated Question question = 2; 
}