syntax = "proto3";
package sentinel.session.v3;

import "gogoproto/gogo.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "sentinel/types/v1/status.proto";

option go_package = "github.com/sentinel-official/sentinelhub/v13/x/session/types/v3";
option (gogoproto.equal_all) = false;
option (gogoproto.goproto_getters_all) = false;

message BaseSession {
  uint64 id = 1 [(gogoproto.customname) = "ID"];
  string acc_address = 2;
  string node_address = 3;
  string download_bytes = 4 [
    (gogoproto.customtype) = "cosmossdk.io/math.Int",
    (gogoproto.nullable) = false
  ];
  string upload_bytes = 5 [
    (gogoproto.customtype) = "cosmossdk.io/math.Int",
    (gogoproto.nullable) = false
  ];
  string max_bytes = 6 [
    (gogoproto.customtype) = "cosmossdk.io/math.Int",
    (gogoproto.nullable) = false
  ];
  google.protobuf.Duration duration = 7 [
    (gogoproto.nullable) = false,
    (gogoproto.stdduration) = true
  ];
  google.protobuf.Duration max_duration = 8 [
    (gogoproto.nullable) = false,
    (gogoproto.stdduration) = true
  ];
  sentinel.types.v1.Status status = 9;
  google.protobuf.Timestamp inactive_at = 10 [
    (gogoproto.nullable) = false,
    (gogoproto.stdtime) = true
  ];
  google.protobuf.Timestamp start_at = 11 [
    (gogoproto.nullable) = false,
    (gogoproto.stdtime) = true
  ];
  google.protobuf.Timestamp status_at = 12 [
    (gogoproto.nullable) = false,
    (gogoproto.stdtime) = true
  ];
}
