package k8scalendar

import (
	"github.com/tidbcloud/devops/api"
	calent "github.com/tidbcloud/devops/entity/k8scalendar"
)

type ListLifecyclesReq struct {
	CloudProvider string `form:"cloud_provider" json:"cloud_provider"`
}

type ListLifecyclesResp struct {
	api.BaseResp `json:",inline"`
	Items        []*calent.VersionLifecycle `json:"items"`
}

type SyncNowReq struct {
	// FailOnProviderError when true, syncNow returns error if any provider (EKS/GKE) fetch fails.
	FailOnProviderError *bool `json:"fail_on_provider_error" form:"fail_on_provider_error"`
}

// Notification flag names for ResetNotificationFlagsReq.Flags.
const (
	NotificationFlagVersionAdded   = "notified_version_added_at"
	NotificationFlagEOSChanged     = "notified_eos_changed_fingerprint"
	NotificationFlagEOSApproaching = "eos_approaching_notified_for"
)

type ResetNotificationFlagsReq struct {
	Cloud   string   `json:"cloud" binding:"required"`
	Version string   `json:"version" binding:"required"`
	Flags   []string `json:"flags" binding:"required,min=1"`
}
