blob: eb543a530a7b441f46c1440b1aa01ff61a4be52f [file] [log] [blame]
iomodo3e1576e2021-02-23 01:27:56 +04001syntax = "proto3";
2
3option go_package = ".;proto";
4
5package proto;
6
7import "google/protobuf/timestamp.proto";
8
9// UserService handles commands dispatch and user view actions
10service UserService {
11 rpc GetUser (GetUserRequest) returns (User);
12 rpc ListUsers (ListUserRequest) returns (ListUserResponse);
13 rpc CreateUser (CreateUserRequest) returns (User);
14}
15
16// DispatchUserCommandRequest is passed when dispatching
17message DispatchUserCommandRequest {
18 string name = 1;
19 bytes payload = 2;
20}
21
22// User object
23message User {
24 optional string id = 1;
25 optional google.protobuf.Timestamp create_at = 2;
26 optional google.protobuf.Timestamp update_at = 3;
27 optional google.protobuf.Timestamp delete_at = 4;
28 string username = 5;
29 string password = 6;
30 optional google.protobuf.Timestamp last_password_update = 7;
31}
32
33// GetUserRequest is a request data to read user
34message GetUserRequest {
35 string id = 1;
36}
37
38// ListUserRequest is a request data to read all user for a given page
39message ListUserRequest {
40 int64 page = 1;
41 int64 limit = 2;
42}
43
44// ListUserResponse list of all users
45message ListUserResponse {
46 repeated User users = 1;
47 int64 page = 2;
48 int64 limit = 3;
49 int64 total = 4;
50}
51
52// CreateUserRequest is a request data to create a user
53message CreateUserRequest {
54 User user = 1;
55}