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) }