···
// Build community profile record
profile := map[string]interface{}{
"$type": "social.coves.community.profile",
134
-
"handle": pdsAccount.Handle, // atProto handle (e.g., gaming.community.coves.social)
135
-
"name": req.Name, // Short name for !mentions (e.g., "gaming")
134
+
"name": req.Name, // Short name for !mentions (e.g., "gaming")
"visibility": req.Visibility,
"hostedBy": s.instanceDID, // V2: Instance hosts, community owns
"createdBy": req.CreatedByDID,
···
profile["language"] = req.Language
162
-
// Initialize counts
163
-
profile["memberCount"] = 0
164
-
profile["subscriberCount"] = 0
// TODO: Handle avatar and banner blobs
// For now, we'll skip blob uploads. This would require:
···
// Build updated profile record (start with existing)
profile := map[string]interface{}{
"$type": "social.coves.community.profile",
293
-
"handle": existing.Handle,
"owner": existing.OwnerDID,
"createdBy": existing.CreatedByDID,
···
} else if len(existing.ContentWarnings) > 0 {
profile["contentWarnings"] = existing.ContentWarnings
345
-
profile["memberCount"] = existing.MemberCount
346
-
profile["subscriberCount"] = existing.SubscriberCount
// V2: Community profiles always use "self" as rkey
// (No need to extract from URI - it's always "self" for V2 communities)