33#[ derive( Clone , PartialEq , :: prost:: Message ) ]
44pub struct Chat {
55 /// message type
6- #[ prost( oneof = "chat::Message" , tags = "3, 4, 5" ) ]
6+ #[ prost( oneof = "chat::Message" , tags = "3, 4, 5, 6, 7 " ) ]
77 pub message : :: core:: option:: Option < chat:: Message > ,
88}
99/// Nested message and enum types in `Chat`.
@@ -20,6 +20,12 @@ pub mod chat {
2020 /// send a new chat message
2121 #[ prost( message, tag = "5" ) ]
2222 Send ( super :: ChatMessageSend ) ,
23+ /// search chat messages
24+ #[ prost( message, tag = "6" ) ]
25+ SearchRequest ( super :: ChatSearchRequest ) ,
26+ /// search results
27+ #[ prost( message, tag = "7" ) ]
28+ SearchResult ( super :: ChatSearchResult ) ,
2329 }
2430}
2531/// request messages of a specific chat conversation
@@ -148,6 +154,42 @@ pub struct GroupEvent {
148154 #[ prost( bytes = "vec" , tag = "2" ) ]
149155 pub user_id : :: prost:: alloc:: vec:: Vec < u8 > ,
150156}
157+ /// search chat messages request
158+ #[ derive( Clone , PartialEq , Eq , Hash , :: prost:: Message ) ]
159+ pub struct ChatSearchRequest {
160+ /// search query string
161+ #[ prost( string, tag = "1" ) ]
162+ pub query : :: prost:: alloc:: string:: String ,
163+ }
164+ /// search results
165+ #[ derive( Clone , PartialEq , :: prost:: Message ) ]
166+ pub struct ChatSearchResult {
167+ /// the query that produced these results
168+ #[ prost( string, tag = "1" ) ]
169+ pub query : :: prost:: alloc:: string:: String ,
170+ /// matching messages
171+ #[ prost( message, repeated, tag = "2" ) ]
172+ pub items : :: prost:: alloc:: vec:: Vec < ChatSearchResultItem > ,
173+ }
174+ /// a single search result item
175+ #[ derive( Clone , PartialEq , Eq , Hash , :: prost:: Message ) ]
176+ pub struct ChatSearchResultItem {
177+ /// message id
178+ #[ prost( bytes = "vec" , tag = "1" ) ]
179+ pub message_id : :: prost:: alloc:: vec:: Vec < u8 > ,
180+ /// group id of the conversation
181+ #[ prost( bytes = "vec" , tag = "2" ) ]
182+ pub group_id : :: prost:: alloc:: vec:: Vec < u8 > ,
183+ /// sender id
184+ #[ prost( bytes = "vec" , tag = "3" ) ]
185+ pub sender_id : :: prost:: alloc:: vec:: Vec < u8 > ,
186+ /// message text content
187+ #[ prost( string, tag = "4" ) ]
188+ pub content : :: prost:: alloc:: string:: String ,
189+ /// time when the message was sent
190+ #[ prost( uint64, tag = "5" ) ]
191+ pub sent_at : u64 ,
192+ }
151193/// send chat message
152194#[ derive( Clone , PartialEq , Eq , Hash , :: prost:: Message ) ]
153195pub struct ChatMessageSend {
0 commit comments