45 lines
1.8 KiB
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
|
|
}
|