@@ -3,7 +3,6 @@ syntax = "proto3";
3
3
package api.message.v1 ;
4
4
5
5
import "transport/response/response.proto" ;
6
- import "user/session/v1/session.proto" ;
7
6
import "validate/validate.proto" ;
8
7
9
8
option go_package = "github.com/go-goim/api/message/v1" ;
@@ -14,11 +13,22 @@ enum MessageContentType {
14
13
Voice = 2 ;
15
14
}
16
15
16
+ // define session type and status
17
+ enum SessionType {
18
+ SingleChat = 0 ;
19
+ GroupChat = 1 ;
20
+ // broadcast actually not a standard chat type, but we still use it here
21
+ Broadcast = 2 ;
22
+ // Channel is for user subscribed channel msgs
23
+ Channel = 3 ;
24
+ // 255 at most
25
+ }
26
+
17
27
// SendMessageReq receive data from gateway
18
28
message SendMessageReq {
19
- string from = 1 [(validate.rules ) .string .min_len = 20 ];
20
- string to = 2 [(validate.rules ) .string .min_len = 20 ];
21
- user.session.v1. SessionType session_type = 3 ;
29
+ int64 from = 1 [(validate.rules ) .int64 .gt = 0 ];
30
+ int64 to = 2 [(validate.rules ) .int64 .gt = 0 ];
31
+ SessionType session_type = 3 ;
22
32
optional string session_id = 4 ;
23
33
MessageContentType content_type = 5 [(validate.rules ) .enum.defined_only = true ];
24
34
string content = 6 [(validate.rules ).string = {
@@ -29,17 +39,17 @@ message SendMessageReq {
29
39
30
40
// SendMessageResp is response body for sendMessage
31
41
message SendMessageResp {
32
- int64 session_id = 2 ;
33
- int64 msg_id = 3 ;
42
+ string session_id = 1 ;
43
+ int64 msg_id = 2 ;
34
44
}
35
45
36
46
// Message is definition of message
37
47
message Message {
38
48
int64 msg_id = 1 ;
39
- string from = 2 ;
40
- string to = 3 ; // to user id or group id
41
- user.session.v1. SessionType session_type = 4 ;
42
- int64 session_id = 5 ;
49
+ int64 from = 2 ;
50
+ int64 to = 3 ; // user id or group id or room id etc.
51
+ SessionType session_type = 4 ;
52
+ string session_id = 5 ;
43
53
MessageContentType content_type = 6 ;
44
54
string content = 7 ;
45
55
int64 create_time = 8 ;
@@ -49,20 +59,20 @@ message Message {
49
59
message PushMessageReq {
50
60
Message message = 1 ;
51
61
// ToUsers is a list of user id who receive this message
52
- repeated string to_users = 2 ;
62
+ repeated int64 to_users = 2 ;
53
63
}
54
64
55
65
message PushMessageResp {
56
66
transport.response.BaseResponse response = 1 ;
57
- repeated string failed_users = 2 ;
67
+ repeated int64 failed_users = 2 ;
58
68
}
59
69
60
70
service PushMessageService {
61
71
rpc PushMessage (PushMessageReq ) returns (PushMessageResp );
62
72
}
63
73
64
74
message QueryOfflineMessageReq {
65
- string user_id = 1 [(validate.rules ) .string .min_len = 20 ];
75
+ int64 uid = 1 [(validate.rules ) .int64 .gt = 0 ];
66
76
int64 last_msg_id = 2 [(validate.rules ) .int64.gt = 0 ];
67
77
bool onlyCount = 3 ;
68
78
int32 page = 4 ;
0 commit comments