/*
 * Created by jonathan.jesperson@pluto.tv on 08/04/2022.
 * Copyright (c) PlutoTV Inc 2022.
 */

syntax = "proto3";

package languagepackage;

option go_package = "github.com/Pluto-tv/service-dal/golang_client";
option java_package = "tv.pluto.ip.dal.language";

service LanguageManager {
  // GetLanguages (Unary)
  //
  rpc GetLanguages(GetLanguagesRequest) returns (GetLanguagesResponse) {}

  // GetLanguageByAttribute (Unary)
  //
  rpc GetLanguageByAttribute(GetLanguageByAttributeRequest) returns (GetLanguageByAttributeResponse) {}
}

message GetLanguagesRequest {}

message GetLanguagesResponse {
  repeated LanguageCode languages = 1;
}

message GetLanguageByAttributeRequest {
  // attribute options name, nativeName, ISO639_1, ISO639_2T, ISO639_2B
  string attribute = 1;
  string value = 2;
}

message GetLanguageByAttributeResponse {
  LanguageCode language = 1;
}

message LanguageCode {
  string name = 1;
  string native_name = 2;
  string iso639_1 = 3 [json_name = "iso639_1"];
  string iso639_2_t = 4 [json_name = "iso639_2T"];
  string iso639_2_b = 5 [json_name = "iso639_2B"];
}
