A community based topic aggregation platform built on atproto

feat(comments): add deletion fields to CommentView

Add IsDeleted, DeletionReason, and DeletedAt fields to CommentView
for rendering deleted comment placeholders in thread views.
Frontend can display "[deleted]" or "[removed by moderator]" based
on the deletion_reason field.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

+17 -13
+17 -13
internal/core/comments/view_models.go
··· 7 7 // CommentView represents the full view of a comment with all metadata 8 8 // Matches social.coves.community.comment.getComments#commentView lexicon 9 9 // Used in thread views and get endpoints 10 + // For deleted comments, IsDeleted=true and content-related fields are empty/nil 10 11 type CommentView struct { 11 - Embed interface{} `json:"embed,omitempty"` 12 - Record interface{} `json:"record"` 13 - Viewer *CommentViewerState `json:"viewer,omitempty"` 14 - Author *posts.AuthorView `json:"author"` 15 - Post *CommentRef `json:"post"` 16 - Parent *CommentRef `json:"parent,omitempty"` 17 - Stats *CommentStats `json:"stats"` 18 - Content string `json:"content"` 19 - CreatedAt string `json:"createdAt"` 20 - IndexedAt string `json:"indexedAt"` 21 - URI string `json:"uri"` 22 - CID string `json:"cid"` 23 - ContentFacets []interface{} `json:"contentFacets,omitempty"` 12 + Embed interface{} `json:"embed,omitempty"` 13 + Record interface{} `json:"record"` 14 + Viewer *CommentViewerState `json:"viewer,omitempty"` 15 + Author *posts.AuthorView `json:"author"` 16 + Post *CommentRef `json:"post"` 17 + Parent *CommentRef `json:"parent,omitempty"` 18 + Stats *CommentStats `json:"stats"` 19 + Content string `json:"content"` 20 + CreatedAt string `json:"createdAt"` 21 + IndexedAt string `json:"indexedAt"` 22 + URI string `json:"uri"` 23 + CID string `json:"cid"` 24 + ContentFacets []interface{} `json:"contentFacets,omitempty"` 25 + IsDeleted bool `json:"isDeleted,omitempty"` 26 + DeletionReason *string `json:"deletionReason,omitempty"` 27 + DeletedAt *string `json:"deletedAt,omitempty"` 24 28 } 25 29 26 30 // ThreadViewComment represents a comment with its nested replies