summaryrefslogtreecommitdiffstats
path: root/lib/sellershut-core/proto/profile/profile.proto
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sellershut-core/proto/profile/profile.proto')
-rw-r--r--lib/sellershut-core/proto/profile/profile.proto59
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);
+}