github.com/resonatecoop/user-api@v1.0.0-13.0.20220915120639-05dc9c04014a/proto/user/usergroup_messages.proto (about)

     1  syntax = "proto3";
     2  
     3  import "google/api/annotations.proto";
     4  import "protoc-gen-openapiv2/options/annotations.proto";
     5  import "user/common.proto";
     6  //import "user/user.proto";
     7  //import "tag.proto";
     8  
     9  
    10  package user;
    11  option go_package = "github.com/resonatecoop/user-api/proto/user";
    12  
    13  message UserGroupRequest {
    14    string id = 1; // required
    15  }
    16  
    17  message UserGroupMembershipRequest {
    18    string group_id = 1; // required
    19    string member_id = 2; //required
    20  }
    21  
    22  message UserGroup {
    23    string ID = 1; // required
    24    string display_name = 2; // required
    25    string description = 3;
    26    string short_bio = 4;
    27    string avatar = 5; // required
    28    string banner = 6;
    29    string owner_id = 7; // required
    30    string group_type = 8; // UUID required
    31    repeated User followers = 9;
    32    repeated UserGroup members = 10;
    33    repeated UserGroup memberOfGroups = 11;
    34    repeated Link links = 12;
    35    repeated Tag tags = 13;
    36    StreetAddress address = 14;
    37    Privacy privacy = 15;
    38    repeated RelatedUserGroup recommended_artists = 16;
    39    // map<string, string> publisher = 17;
    40    // map<string, string> pro = 18;
    41    string group_email = 17;
    42  }
    43  
    44  message UserGroupCreateRequest {
    45    string id = 1; // UUID required
    46    string display_name = 2; // required
    47    string description = 3; // optional
    48    string short_bio = 4; // optional 
    49    string avatar = 5; // UUID
    50    string banner = 6; // UUID
    51    string group_type = 8; // required UUID
    52    repeated string tags = 9; // optional UUIDs
    53    string group_email = 10; // optional
    54    repeated string links = 11;
    55    // repeated User followers = 9;
    56    // repeated UserGroup members = 10;
    57    // repeated UserGroup memberOfGroups = 11;
    58    //StreetAddress address = 14;
    59    //Privacy privacy = 15;
    60    //repeated RelatedUserGroup recommended_artists = 16;
    61    //map<string, string> publisher = 17;
    62    //map<string, string> pro = 18;
    63  }
    64  
    65  message UserGroupUpdateRequest {
    66    string id = 1; // required
    67    optional string display_name = 2;
    68    optional string description = 3;
    69    optional string short_bio = 4;
    70    optional string avatar = 5; 
    71    optional string banner = 6;
    72    optional string group_type = 7;
    73    optional string group_email = 9;
    74    optional string owner_id = 10;
    75    repeated string links = 11;
    76    repeated string tags = 12;
    77    
    78    //optional StreetAddress address = 8;
    79    //optional string owner_id = 7; // required
    80  
    81    // repeated User followers = 9;
    82    // repeated UserGroup members = 10;
    83    // repeated UserGroup memberOfGroups = 11;
    84    
    85    // Privacy privacy = 15;
    86    // repeated RelatedUserGroup recommended_artists = 16;
    87    // map<string, string> publisher = 17;
    88    // map<string, string> pro = 18;
    89    
    90  }
    91  
    92  message UserGroupPrivateResponse {
    93    string id = 1;
    94    string display_name = 2; // required
    95    string description = 3;
    96    string short_bio = 4;
    97    string avatar = 5; // required
    98    string banner = 6;
    99    string owner_id = 7; // required
   100    string group_type = 8; // required
   101    // repeated string followers = 9;
   102    // repeated string members = 10;
   103    // repeated string memberOfGroups = 11;
   104    // repeated string links = 12;
   105    // repeated string tags = 13;
   106  //  StreetAddress address = 13;
   107    // Privacy privacy = 14;
   108    //repeated RelatedUserGroup recommended_artists = 15;
   109    //map<string, string> publisher = 16;
   110    //map<string, string> pro = 17;
   111    string group_email = 9;
   112    string created_at = 10;
   113    string updated_at = 11;
   114  }
   115  
   116  message UserGroupListResponse {
   117    repeated UserGroupPrivateResponse usergroup = 1;
   118  }
   119  
   120  
   121  message UserGroupPublicResponse {
   122    string display_name = 2; // required
   123    string description = 3;
   124    string short_bio = 4;
   125    string avatar = 5; // required
   126    string banner = 6;
   127    string group_type = 8; // required
   128    repeated string followers = 9;
   129    repeated string members = 10;
   130    repeated string memberOfGroups = 11;
   131    repeated Link links = 12;
   132    repeated string tags = 13;
   133    // repeated RelatedUserGroup recommended_artists = 17;
   134    // map<string, string> publisher = 21;
   135    // map<string, string> pro = 22;
   136    string group_email = 23;
   137  }
   138  
   139  
   140  message UserGroupRecommended {
   141    string user_group_id = 1;
   142    string recommended_id = 2;
   143  }
   144  
   145  message UserGroupMembers {
   146    string user_group_id = 1;
   147    repeated string members = 2;
   148  }
   149  
   150  message Group {
   151    string ID = 1;
   152    string name = 2;
   153    string description = 3;
   154  }
   155  
   156  message GroupTypes {
   157    repeated Group types = 1;
   158  }
   159  
   160  message Link {
   161    string ID = 1;
   162    string platform = 2;
   163    string group_type = 3;
   164    string uri = 4;
   165    bool personal_data = 5;
   166  }
   167  
   168  message Privacy {
   169    string ID = 1;
   170    bool private = 2;
   171    bool owned_tracks = 3;
   172    bool supported_artists = 4;
   173  }
   174  
   175  message GroupedUserGroups {
   176    repeated UserGroupPublicResponse groups = 1;
   177  }
   178  
   179