diff options
Diffstat (limited to 'lib/sellershut-core/proto/profile/profile.proto')
-rw-r--r-- | lib/sellershut-core/proto/profile/profile.proto | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/sellershut-core/proto/profile/profile.proto b/lib/sellershut-core/proto/profile/profile.proto new file mode 100644 index 0000000..742dc7b --- /dev/null +++ b/lib/sellershut-core/proto/profile/profile.proto @@ -0,0 +1,59 @@ +syntax = "proto3"; + +package profile; + +import "google/protobuf/timestamp.proto"; + +// A message representing a user profile +message User { + // Unique identifier for the user + string id = 1; + // Email address of the user + string email = 2; + // Unique username chosen by the user + string username = 3; + // URL to the user's avatar image + optional string avatar = 4; + // Timestamp when the user was created + google.protobuf.Timestamp created_at = 5; + // Timestamp when the user was last updated + google.protobuf.Timestamp updated_at = 6; + // User-provided description or bio + optional string description = 7; +} + +// Request message for creating a new user profile +message CreateUserRequest { + // Email address of the new user + string email = 1; + // Avatar for the new user + optional string avatar = 2; +} + +// Response message for CreateUser RPC +message CreateUserResponse { + // Temporary assigned id + string temp_id = 1; + // Timestamp when the user was created + google.protobuf.Timestamp created_at = 2; +} + +// Message to finalise profile creation +message CompleteUserRequest { + // ID of the user to finalise + string id = 1; + // Required: username to finalise the profile + string username = 2; + // Optional: user-provided description + optional string description = 3; + // Optional: update avatar + optional string avatar = 4; +} + +// Profile gRPC service +service Profile { + // Create a new user profile + rpc CreateUser (CreateUserRequest) returns (CreateUserResponse); + // Complete Profile + rpc CompleteProfile (CompleteUserRequest) returns (User); +} |