package settings

import "github.com/go-acme/lego/v4/lego"

type Cert struct {
	Email                string   `json:"email" protected:"true"`
	CADir                string   `json:"ca_dir" binding:"omitempty,url"`
	RenewalInterval      int      `json:"renewal_interval" binding:"min=7,max=21"`
	RecursiveNameservers []string `json:"recursive_nameservers" binding:"omitempty,dive,hostname_port"`
	HTTPChallengePort    string   `json:"http_challenge_port"`
}

var CertSettings = &Cert{
	Email:                "",
	CADir:                "",
	RenewalInterval:      7,
	RecursiveNameservers: []string{},
	HTTPChallengePort:    "9180",
}

func (s *Cert) GetCADir() string {
	if s.CADir != "" {
		return s.CADir
	}
	return lego.LEDirectoryProduction
}

func (s *Cert) GetCertRenewalInterval() int {
	if s.RenewalInterval < 7 {
		return 7
	}
	if s.RenewalInterval > 21 {
		return 21
	}
	return s.RenewalInterval
}
