package template_data

type Server struct {
	Address    string   `json:"address"`
	ListenPort int      `json:"listenPort"`
	PrivateKey string   `json:"privateKey"`
	MTU        int      `json:"mtu"`
	PostUp     string   `json:"postUp"`
	PreDown    string   `json:"preDown"`
	PostDown   string   `json:"postDown"`
	Table      string   `json:"table"`
	Clients    []Client `json:"clients"`
}

type Client struct {
	ID                  string `json:"id"`
	Name                string `json:"name"`
	Email               string `json:"email"`
	PublicKey           string `json:"publicKey"`
	PresharedKey        string `json:"presharedKey"`
	AllowedIPS          string `json:"allowedIps"`
	PersistentKeepalive string `json:"persistentKeepalive"`
	Endpoint            string `json:"endpoint"`
	CreateUser          string `json:"createUser"`
	Enabled             bool   `json:"enabled"`
	CreatedAt           string `json:"createdAt"`
	UpdatedAt           string `json:"updatedAt"`
}

type Keys struct {
	PrivateKey   string `json:"privateKey"`
	PublicKey    string `json:"publicKey"`
	PresharedKey string `json:"presharedKey"`
}

type ClientConfig struct {
	PrivateKey          string `json:"privateKey"`
	IpAllocation        string `json:"ipAllocation"`
	MTU                 int    `json:"MTU"`
	DNS                 string `json:"DNS"`
	PublicKey           string `json:"publicKey"`
	PresharedKey        string `json:"presharedKey"`
	AllowedIPS          string `json:"allowedIPS"`
	Endpoint            string `json:"endpoint"`
	ListenPort          int    `json:"listenPort"`
	PersistentKeepalive int    `json:"persistentKeepalive"`
}