syntax = "proto3"; package model; option go_package = "./model"; import "google/protobuf/timestamp.proto"; message Message { google.protobuf.Timestamp at = 1 [json_name = "at"]; string platform = 2 [json_name = "platform"]; string broadcaster = 3 [json_name = "broadcaster"]; bytes raw = 4 [json_name = "raw"]; User user = 10 [json_name = "user"]; string text = 11 [json_name = "text"]; bool sticker = 12 [json_name = "sticker"]; } message Donation { google.protobuf.Timestamp at = 1 [json_name = "at"]; string platform = 2 [json_name = "platform"]; string broadcaster = 3 [json_name = "broadcaster"]; bytes raw = 4 [json_name = "raw"]; User user = 10 [json_name = "user"]; uint64 amount = 11 [json_name = "amount"]; } message Online { google.protobuf.Timestamp at = 1 [json_name = "at"]; string platform = 2 [json_name = "platform"]; string broadcaster = 3 [json_name = "broadcaster"]; bytes raw = 4 [json_name = "raw"]; uint64 total = 12 [json_name = "total"]; uint64 device_pc = 13 [json_name = "device_pc"]; uint64 device_mobile = 14 [json_name = "device_mobile"]; uint64 device_unknown = 15 [json_name = "device_unknown"]; } message RosterChange { enum Op { OP_UNSPECIFIED = 0; OP_JOINED = 1; OP_LEFT = 2; } google.protobuf.Timestamp at = 1 [json_name = "at"]; string platform = 2 [json_name = "platform"]; string broadcaster = 3 [json_name = "broadcaster"]; bytes raw = 4 [json_name = "raw"]; User user = 10 [json_name = "user"]; Op operation = 11 [json_name = "op"]; } message User { string id = 1 [json_name = "id"]; string name = 2 [json_name = "name"]; }