package repository import "context" type SocialNetworkRepository interface { CreateUserNode(ctx context.Context, uid string) error MarkFollowerRelation(ctx context.Context, fromUID, toUID string) error RemoveFollowerRelation(ctx context.Context, fromUID, toUID string) error GetFollower(ctx context.Context, req FollowReq) (FollowResp, error) GetFollowee(ctx context.Context, req FollowReq) (FollowResp, error) GetFollowerCount(ctx context.Context, uid string) (int64, error) GetFolloweeCount(ctx context.Context, uid string) (int64, error) GetDegreeBetweenUsers(ctx context.Context, uid1, uid2 string) (int64, error) GetUIDsWithinNDegrees(ctx context.Context, uid string, degrees, pageSize, pageIndex int64) ([]string, int64, error) } type FollowReq struct { UID string PageSize int64 PageIndex int64 } type FollowResp struct { UIDs []string Total int64 }