package notify

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

type K8sUpgradeTaskApprovedParam struct {
	Deadline      string
	CloudProvider string
	Version       string
	NumOfClusters string
	Detail        string
}

func (m K8sUpgradeTaskApprovedParam) Message(cards MessageCardSet) (larkutil.IMMessage, error) {
	return larkutil.IMMessageCardTemplate{
		MType: "template",
		Data: larkutil.IMMessageCardTemplateData{
			ID: cards.K8sUpgradeTaskApproved,
			Vars: map[string]string{
				"deadline":        m.Deadline,
				"cloud_provider":  m.CloudProvider,
				"version":         m.Version,
				"num_of_clusters": m.NumOfClusters,
				"detail":          m.Detail,
			},
		},
	}, nil
}

type CancelUpgradeK8sClusterParam struct {
	K8sName string
	Reason  string
	Detail  string
}

func (m CancelUpgradeK8sClusterParam) Message(cards MessageCardSet) (larkutil.IMMessage, error) {
	return larkutil.IMMessageCardTemplate{
		MType: "template",
		Data: larkutil.IMMessageCardTemplateData{
			ID: cards.K8sUpgradeCancelled,
			Vars: map[string]string{
				"cluster": m.K8sName,
				"reason":  m.Reason,
				"detail":  m.Detail,
			},
		},
	}, nil
}
