syntax = "proto3"; package user; option go_package = "go-microservices/proto/user;userpb"; import "google/protobuf/empty.proto"; service UserService { rpc CreateUser (CreateUserRequest) returns (CreateUserResponse); rpc GetUser (GetUserRequest) returns (GetUserResponse); rpc UpdateUser (UpdateUserRequest) returns (UpdateUserResponse); rpc DeleteUser (DeleteUserRequest) returns (google.protobuf.Empty); rpc ListUsers (ListUsersRequest) returns (ListUsersResponse); } message User { string id = 1; string username = 2; string email = 3; string bio = 4; string avatar_url = 5; int64 created_at = 6; int64 updated_at = 7; } message CreateUserRequest { string username = 1; string email = 2; string bio = 3; string avatar_url = 4; } message CreateUserResponse { User user = 1; } message GetUserRequest { string id = 1; } message GetUserResponse { User user = 1; } message UpdateUserRequest { string id = 1; string username = 2; string email = 3; string bio = 4; string avatar_url = 5; } message UpdateUserResponse { User user = 1; } message DeleteUserRequest { string id = 1; } message ListUsersRequest { int32 page = 1; int32 page_size = 2; } message ListUsersResponse { repeated User users = 1; }