// Copyright 2022 ROC. All rights reserved. // Use of this source code is governed by a MIT style // license that can be found in the LICENSE file. package core import ( "github.com/rocboss/paopao-ce/internal/core/cs" "github.com/rocboss/paopao-ce/internal/core/ms" ) // TweetService 推文检索服务 type TweetService interface { GetPostByID(id int64) (*ms.Post, error) GetPosts(conditions *ms.ConditionsT, offset, limit int) ([]*ms.Post, error) GetPostCount(conditions *ms.ConditionsT) (int64, error) GetUserPostStar(postID, userID int64) (*ms.PostStar, error) GetUserPostStars(userID int64, offset, limit int) ([]*ms.PostStar, error) GetUserPostStarCount(userID int64) (int64, error) GetUserPostCollection(postID, userID int64) (*ms.PostCollection, error) GetUserPostCollections(userID int64, offset, limit int) ([]*ms.PostCollection, error) GetUserPostCollectionCount(userID int64) (int64, error) GetPostAttatchmentBill(postID, userID int64) (*ms.PostAttachmentBill, error) GetPostContentsByIDs(ids []int64) ([]*ms.PostContent, error) GetPostContentByID(id int64) (*ms.PostContent, error) } // TweetManageService 推文管理服务,包括创建/删除/更新推文 type TweetManageService interface { CreatePost(post *ms.Post) (*ms.Post, error) DeletePost(post *ms.Post) ([]string, error) LockPost(post *ms.Post) error StickPost(post *ms.Post) error VisiblePost(post *ms.Post, visibility PostVisibleT) error UpdatePost(post *ms.Post) error CreatePostStar(postID, userID int64) (*ms.PostStar, error) DeletePostStar(p *ms.PostStar) error CreatePostCollection(postID, userID int64) (*ms.PostCollection, error) DeletePostCollection(p *ms.PostCollection) error CreatePostContent(content *ms.PostContent) (*ms.PostContent, error) CreateAttachment(obj *ms.Attachment) (int64, error) } // TweetHelpService 推文辅助服务 type TweetHelpService interface { RevampPosts(posts []*ms.PostFormated) ([]*ms.PostFormated, error) MergePosts(posts []*ms.Post) ([]*ms.PostFormated, error) } // TweetServantA 推文检索服务(版本A) type TweetServantA interface { TweetInfoById(id int64) (*cs.TweetInfo, error) TweetItemById(id int64) (*cs.TweetItem, error) UserTweets(visitorId, userId int64) (cs.TweetList, error) ReactionByTweetId(userId int64, tweetId int64) (*cs.ReactionItem, error) UserReactions(userId int64, limit int, offset int) (cs.ReactionList, error) FavoriteByTweetId(userId int64, tweetId int64) (*cs.FavoriteItem, error) UserFavorites(userId int64, limit int, offset int) (cs.FavoriteList, error) AttachmentByTweetId(userId int64, tweetId int64) (*cs.AttachmentBill, error) } // TweetManageServantA 推文管理服务,包括创建/删除/更新推文(版本A) type TweetManageServantA interface { CreateAttachment(obj *cs.Attachment) (int64, error) CreateTweet(userId int64, req *cs.NewTweetReq) (*cs.TweetItem, error) DeleteTweet(userId int64, tweetId int64) ([]string, error) LockTweet(userId int64, tweetId int64) error StickTweet(userId int64, tweetId int64) error VisibleTweet(userId int64, visibility cs.TweetVisibleType) error CreateReaction(userId int64, tweetId int64) error DeleteReaction(userId int64, reactionId int64) error CreateFavorite(userId int64, tweetId int64) error DeleteFavorite(userId int64, favoriteId int64) error } // TweetHelpServantA 推文辅助服务(版本A) type TweetHelpServantA interface { RevampTweets(tweets cs.TweetList) (cs.TweetList, error) MergeTweets(tweets cs.TweetInfo) (cs.TweetList, error) }