package enum

// NotifyKind identifies the business notification template and routing.
type NotifyKind string

const (
	NotifyVerifyEmail             NotifyKind = "verify_email"
	NotifyVerifyPhone             NotifyKind = "verify_phone"
	NotifyVerifyRegistrationEmail NotifyKind = "verify_registration_email"
	NotifyStepUpEmail             NotifyKind = "step_up_email"
	NotifyStepUpPhone             NotifyKind = "step_up_phone"
	NotifyAccountSuspended        NotifyKind = "account_suspended"
	NotifyTenantWelcome           NotifyKind = "tenant_welcome"
)

func (k NotifyKind) String() string {
	return string(k)
}

// IsValid reports whether the kind has a registered template (ops_alert and others are added when templates exist).
func (k NotifyKind) IsValid() bool {
	switch k {
	case NotifyVerifyEmail,
		NotifyVerifyPhone,
		NotifyVerifyRegistrationEmail,
		NotifyStepUpEmail,
		NotifyStepUpPhone,
		NotifyAccountSuspended,
		NotifyTenantWelcome:
		return true
	default:
		return false
	}
}
