package usecase import ( "context" ) type CommentUseCase interface { // CreateCommentItem 建立 Comment CreateCommentItem(ctx context.Context, info CreateCommentDocs) error // GetCommentItem 取得CommentItem GetCommentItem(ctx context.Context, id string) (*CommentDocs, error) // ListComment 取得 CommentItem 列表 ListComment(ctx context.Context, req ListCommentRequest) ([]*CommentDocs, int64, error) // RemoveCommentItem 移除 CommentItem 列表 RemoveCommentItem(ctx context.Context, id string) error // UpdateCommentMessage 更新 UpdateCommentMessage(ctx context.Context, id string, message string) error } type CreateCommentDocs struct { UID string `bson:"uid"` // 留言的使用者的 ID ReferenceID string `bson:"reference_id"` // 參考的 id ex product_id or product_item_id 之類的 ParentCommentID string `bson:"parent_comment_id"` // 父留言 id 沒有就空白 Message string `bson:"message"` // 留言內容 } type CommentDocs struct { ID string `json:"id"` UID string `json:"uid"` // 留言的使用者的 ID ReferenceID string `json:"reference_id"` // 參考的 id ex product_id or product_item_id 之類的 ParentCommentID string `json:"parent_comment_id"` // 父留言 id 沒有就空白 Message string `json:"message"` // 留言內容 Replies []*CommentDocs `json:"replies"` // 子留言 UpdatedAt int64 `json:"updated_at"` // 更新時間 CreatedAt int64 `json:"created_at"` // 建立時間 } type ListCommentRequest struct { PageSize int64 PageIndex int64 ReferenceID *string ParentID *string IsSub bool }