app-cloudep-comment-server/pkg/domain/usecase/comment.go

45 lines
1.8 KiB
Go

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
}