package notify

import (
	"context"

	larkutil "github.com/tidbcloud/devops/pkg/infra/clients/larkcli/util"
)

type NotifyLongTailTicketsUnifyParam struct {
	TicketBody string
	O11YBody   string
}

func (m NotifyLongTailTicketsUnifyParam) Message(cards MessageCardSet) (larkutil.IMMessage, error) {
	if m.O11YBody == "" {
		m.O11YBody = "No Related O11Y Tickets"
	}
	if m.TicketBody == "" {
		m.TicketBody = "No Related ONCALL Tickets"
	}
	return larkutil.IMMessageCardTemplate{
		MType: "template",
		Data: larkutil.IMMessageCardTemplateData{
			ID: cards.LongTailNotificationUnify,
			Vars: map[string]string{
				"ticket": m.TicketBody,
				"o11y":   m.O11YBody,
			},
		},
	}, nil
}

func (c *client) NotifyLongTailTicketsUnify(ctx context.Context, userID string, param NotifyLongTailTicketsUnifyParam) (*string /*message id*/, error) {
	return c.SendMessage(ctx, ReceiveTypeUser, userID, param)
}
