owpengram-server/internal/rpc/messages_contracts.go

80 lines
3.8 KiB
Go

package rpc
import (
"context"
"github.com/iamxvbaba/td/tg"
"telesrv/internal/domain"
)
type accountDefaultReactionService interface {
SetDefaultReaction(ctx context.Context, userID int64, reaction domain.MessageReaction) (domain.AccountReactionSettings, error)
}
type accountReactionSettingsReader interface {
GetReactionSettings(ctx context.Context, userID int64) (domain.AccountReactionSettings, error)
}
type accountPaidReactionPrivacyService interface {
accountReactionSettingsReader
SetPaidReactionPrivacy(ctx context.Context, userID int64, privacy domain.PaidReactionPrivacy) (domain.AccountReactionSettings, error)
}
type messageReactionUpdateRecorder interface {
RecordMessageReactions(ctx context.Context, authKeyID [8]byte, userID int64, msg domain.Message) (domain.UpdateEvent, domain.UpdateState, error)
}
type messagePollUpdateRecorder interface {
RecordMessagePoll(ctx context.Context, authKeyID [8]byte, userID int64, msg domain.Message) (domain.UpdateEvent, domain.UpdateState, error)
}
type messageReactionUsageRecorder interface {
RecordMessageReactionUse(ctx context.Context, userID int64, reactions []domain.MessageReaction, addToRecent bool, date int) error
}
type channelParticipantReactionModerator interface {
DeleteParticipantReaction(ctx context.Context, userID int64, req domain.DeleteChannelParticipantReactionRequest) (domain.ChannelMessageReactionsResult, error)
DeleteParticipantReactions(ctx context.Context, userID int64, req domain.DeleteChannelParticipantReactionsRequest) (domain.DeleteChannelParticipantReactionsResult, error)
}
type scheduledMessagesService interface {
ScheduleMessage(ctx context.Context, userID int64, req domain.ScheduleMessageRequest) (domain.ScheduledMessage, error)
EditScheduledMessage(ctx context.Context, userID int64, req domain.EditScheduledMessageRequest) (domain.ScheduledMessage, error)
ListScheduledMessages(ctx context.Context, userID int64, filter domain.ScheduledMessageFilter) (domain.ScheduledMessageList, error)
GetScheduledMessages(ctx context.Context, userID int64, filter domain.ScheduledMessageFilter) (domain.ScheduledMessageList, error)
DeleteScheduledMessages(ctx context.Context, userID int64, filter domain.ScheduledMessageFilter, date int) ([]domain.ScheduledMessage, error)
ClaimScheduledMessages(ctx context.Context, userID int64, claim domain.ScheduledMessageClaim) ([]domain.ScheduledMessage, error)
ClaimDueScheduledMessages(ctx context.Context, now, limit, leaseSeconds int) ([]domain.ScheduledMessage, error)
MarkScheduledMessageSent(ctx context.Context, ownerUserID int64, id, sentMessageID, date int) error
ReleaseScheduledMessage(ctx context.Context, ownerUserID int64, id int, errText string) error
HasScheduledMessages(ctx context.Context, userID int64, peer domain.Peer) (bool, error)
}
type historyTTLMessagesService interface {
GetPrivateHistoryTTL(ctx context.Context, userID int64, peer domain.Peer) (int, error)
SetPrivateHistoryTTL(ctx context.Context, userID int64, peer domain.Peer, period int) error
DefaultHistoryTTL(ctx context.Context, userID int64) (int, error)
SetDefaultHistoryTTL(ctx context.Context, userID int64, period int) error
ClaimExpiredPrivateMessages(ctx context.Context, now, limit int) ([]domain.DeleteMessagesRequest, error)
}
type channelHistoryTTLService interface {
SetHistoryTTL(ctx context.Context, userID, channelID int64, period int, date int) (domain.Channel, []int64, error)
ClaimExpiredMessages(ctx context.Context, now, limit int) ([]domain.DeleteChannelMessagesRequest, error)
}
type globalSearchHit struct {
date int
peerRank int64
messageID int
message tg.MessageClass
}
type forwardSource struct {
body string
entities []domain.MessageEntity
media *domain.MessageMedia
forward *domain.MessageForward
from domain.Peer
date int
noForward bool
}