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