27 lines
785 B
Go
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)
|
|
}
|