syntax = "proto3";

package user.v1;

import "google/api/annotations.proto";
import "google/api/field_behavior.proto";
import "google/protobuf/struct.proto";

option go_package = "user/v1";
option csharp_namespace = "User.V1";

message UserModel {
    string username = 1; 
    string email = 2;
    uint32 age = 3;
    float weight = 4;
    google.protobuf.Struct metadata = 5;
}

message CreateRequest {
    string username = 1;
    string email = 2;
    uint32 age = 3;
    float weight = 4;
    google.protobuf.Struct metadata = 5;
}

message CreateResponse {
    UserModel user = 1;
}

service User {
  rpc Create(CreateRequest) returns (CreateResponse) {
    option (google.api.http) = {
      post: "/users"
      body: "*"
    };
  }
}