syntax = "proto3"; package user; import "google/protobuf/empty.proto"; import "google/protobuf/wrappers.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "google/api/annotations.proto"; option csharp_namespace = "FrontOffice.BFF.User.Protobuf.Protos.User"; service UserContract { rpc CreateNewUser(CreateNewUserRequest) returns (CreateNewUserResponse){ option (google.api.http) = { post: "/CreateNewUser" body: "*" }; }; rpc UpdateUser(UpdateUserRequest) returns (google.protobuf.Empty){ option (google.api.http) = { put: "/UpdateUser" body: "*" }; }; rpc DeleteUser(DeleteUserRequest) returns (google.protobuf.Empty){ option (google.api.http) = { delete: "/DeleteUser" body: "*" }; }; rpc GetUser(GetUserRequest) returns (GetUserResponse){ option (google.api.http) = { get: "/GetUser" }; }; rpc GetAllUserByFilter(GetAllUserByFilterRequest) returns (GetAllUserByFilterResponse){ option (google.api.http) = { get: "/GetAllUserByFilter" }; }; } message CreateNewUserRequest { google.protobuf.StringValue first_name = 1; google.protobuf.StringValue last_name = 2; string mobile = 3; google.protobuf.StringValue national_code = 4; google.protobuf.StringValue avatar_path = 5; google.protobuf.Int64Value parent_id = 6; } message CreateNewUserResponse { int64 id = 1; } message UpdateUserRequest { int64 id = 1; google.protobuf.StringValue first_name = 2; google.protobuf.StringValue last_name = 3; string mobile = 4; google.protobuf.StringValue national_code = 5; google.protobuf.StringValue avatar_path = 6; google.protobuf.Int64Value parent_id = 7; } message DeleteUserRequest { int64 id = 1; } message GetUserRequest { int64 id = 1; } message GetUserResponse { int64 id = 1; google.protobuf.StringValue first_name = 2; google.protobuf.StringValue last_name = 3; string mobile = 4; google.protobuf.StringValue national_code = 5; google.protobuf.StringValue avatar_path = 6; google.protobuf.Int64Value parent_id = 7; } message GetAllUserByFilterRequest { PaginationState pagination_state = 1; google.protobuf.StringValue sort_by = 2; GetAllUserByFilterFilter filter = 3; } message GetAllUserByFilterFilter { google.protobuf.Int64Value id = 1; google.protobuf.StringValue first_name = 2; google.protobuf.StringValue last_name = 3; google.protobuf.StringValue mobile = 4; google.protobuf.StringValue national_code = 5; google.protobuf.StringValue avatar_path = 6; google.protobuf.Int64Value parent_id = 7; } message GetAllUserByFilterResponse { MetaData meta_data = 1; repeated GetAllUserByFilterResponseModel models = 2; } message GetAllUserByFilterResponseModel { int64 id = 1; google.protobuf.StringValue first_name = 2; google.protobuf.StringValue last_name = 3; string mobile = 4; google.protobuf.StringValue national_code = 5; google.protobuf.StringValue avatar_path = 6; google.protobuf.Int64Value parent_id = 7; } message PaginationState { int32 page_number = 1; int32 page_size = 2; } message MetaData { int64 current_page = 1; int64 total_page = 2; int64 page_size = 3; int64 total_count = 4; bool has_previous = 5; bool has_next = 6; } message DecimalValue { int64 units = 1; sfixed32 nanos = 2; }