|
|
|
package core
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/rocboss/paopao-ce/internal/model"
|
|
|
|
"github.com/rocboss/paopao-ce/internal/model/rest"
|
|
|
|
)
|
|
|
|
|
|
|
|
// TweetService 推文检索服务
|
|
|
|
type TweetService interface {
|
|
|
|
GetPostByID(id int64) (*model.Post, error)
|
|
|
|
GetPosts(conditions *model.ConditionsT, offset, limit int) ([]*model.Post, error)
|
|
|
|
GetPostCount(conditions *model.ConditionsT) (int64, error)
|
|
|
|
GetUserPostStar(postID, userID int64) (*model.PostStar, error)
|
|
|
|
GetUserPostStars(userID int64, offset, limit int) ([]*model.PostStar, error)
|
|
|
|
GetUserPostStarCount(userID int64) (int64, error)
|
|
|
|
GetUserPostCollection(postID, userID int64) (*model.PostCollection, error)
|
|
|
|
GetUserPostCollections(userID int64, offset, limit int) ([]*model.PostCollection, error)
|
|
|
|
GetUserPostCollectionCount(userID int64) (int64, error)
|
|
|
|
GetPostAttatchmentBill(postID, userID int64) (*model.PostAttachmentBill, error)
|
|
|
|
GetPostContentsByIDs(ids []int64) ([]*model.PostContent, error)
|
|
|
|
GetPostContentByID(id int64) (*model.PostContent, error)
|
|
|
|
}
|
|
|
|
|
|
|
|
// TweetManageService 推文管理服务,包括创建/删除/更新推文
|
|
|
|
type TweetManageService interface {
|
|
|
|
CreateAttachment(attachment *model.Attachment) (*model.Attachment, error)
|
|
|
|
CreatePost(post *model.Post) (*model.Post, error)
|
|
|
|
DeletePost(post *model.Post) error
|
|
|
|
LockPost(post *model.Post) error
|
|
|
|
StickPost(post *model.Post) error
|
|
|
|
VisiblePost(post *model.Post, visibility model.PostVisibleT) error
|
|
|
|
UpdatePost(post *model.Post) error
|
|
|
|
CreatePostStar(postID, userID int64) (*model.PostStar, error)
|
|
|
|
DeletePostStar(p *model.PostStar) error
|
|
|
|
CreatePostCollection(postID, userID int64) (*model.PostCollection, error)
|
|
|
|
DeletePostCollection(p *model.PostCollection) error
|
|
|
|
CreatePostContent(content *model.PostContent) (*model.PostContent, error)
|
|
|
|
}
|
|
|
|
|
|
|
|
// TweetHelpService 推文辅助服务
|
|
|
|
type TweetHelpService interface {
|
|
|
|
RevampPosts(posts []*model.PostFormated) ([]*model.PostFormated, error)
|
|
|
|
MergePosts(posts []*model.Post) ([]*model.PostFormated, error)
|
|
|
|
}
|
|
|
|
|
|
|
|
// IndexPostsService 广场首页推文列表服务
|
|
|
|
type IndexPostsService interface {
|
|
|
|
IndexPosts(user *model.User, offset int, limit int) (*rest.IndexTweetsResp, error)
|
|
|
|
}
|