package message

import (
	"context"

	larkutil "github.com/tidbcloud/escalation-base/feishu_messager_v2/pkg/infra/clients/larkcli/util"
)

type Param interface {
	Message() (larkutil.IMMessage, error)
}

type TextMessageParam string

func (r TextMessageParam) Message() (larkutil.IMMessage, error) {
	return larkutil.IMMessageText{
		Text: string(r),
	}, nil
}

type Message interface {
	SendMessageViaWebhook(ctx context.Context, webhookURL string, param Param) error
	SendMessage(ctx context.Context, receiveType, receiveID string, param Param) (*string /*message id*/, error)
	ReadUsers(ctx context.Context, messageId string) ([]string, error)
	MakeUrgent(ctx context.Context, messageId string, receiverId string, urgentTyep string) error
}
