2024-10-13 13:31:58 +04:00

27 lines
785 B
Go

package port
import (
"context"
"github.com/aykhans/oh-my-chat/internal/core/domain"
"github.com/google/uuid"
)
type MessageProducer interface {
ProduceMessage(ctx context.Context, message *domain.Message) error
}
type MessageConsumer interface {
ConsumeMessage(ctx context.Context, uid string, getChats func() []string, message chan<- *domain.StreamMessage) error
}
type MessageRepository interface {
CreateMessage(ctx context.Context, message *domain.Message) (*domain.Message, error)
}
type MessageService interface {
SendMessage(ctx context.Context, message *domain.Message) error
ReceiveMessage(ctx context.Context, userID uuid.UUID, message chan<- *domain.StreamMessage) error
CreateMessage(ctx context.Context, message *domain.Message) (*domain.Message, error)
}