syntax = "proto3";

package tici_shard.metadata;

// Internal persisted metadata payloads for tici_shard.
//
// Keep metadata/cache payload schemas here so future persisted metadata can
// reuse the same package instead of scattering standalone proto files.

message SegmentAliveBitSetBytes {
  string segment_id = 1;
  uint32 max_doc = 2;
  bytes alive_bitset_bytes = 3;
}

message FragAliveBitSetBytes {
  repeated SegmentAliveBitSetBytes segments = 1;
}

message PersistedFragDedupBitset {
  string frag_path = 1;
  FragAliveBitSetBytes bitset = 2;
}

message PersistedShardDedupBitsets {
  uint32 keyspace_id = 1;
  int64 table_id = 2;
  int64 index_id = 3;
  uint64 shard_id = 4;
  bytes shard_start_key = 5;
  bytes shard_end_key = 6;
  repeated PersistedFragDedupBitset frags = 7;
}
