syntax = "proto3";
package nexus.meta_api.proto;

import "nexus/models/proto/typed_document.proto";

message RollRequest {
  string language = 1;
  string session_id = 2;
  int64 user_id = 3;
}

message RollResponse {
  uint64 document_id = 1;
}

message TopMissedRequest {
  uint32 page = 1;
  uint32 page_size = 2;
  string session_id = 3;
  int64 user_id = 4;
}

message TopMissedResponse {
  repeated nexus.models.proto.TypedDocument typed_documents = 1;
  bool has_next = 2;
}

message TypedDocumentRequest {
  string schema = 1;
  uint64 document_id = 2;
  uint32 position = 3;
  string session_id = 4;
  int64 user_id = 5;
}

service Documents {
  rpc get (TypedDocumentRequest) returns (nexus.models.proto.TypedDocument) {}
  rpc roll (RollRequest) returns (RollResponse) {}
  rpc top_missed (TopMissedRequest) returns (TopMissedResponse) {}
}
