// Copyright 2022 schukai GmbH
// SPDX-License-Identifier: AGPL-3.0

package configuration

type ConfigStruct1 struct {
	CA struct {
		CAA int `yaml:"CAA" json:"CAA"`
	} `yaml:"CA" json:"CA"`
	CB int `yaml:"CB" json:"CB"`
}

type ConfigStruct3 interface{}

type ConfigStruct5 struct {
	HA int    `yaml:"HA" json:"HA" default:"1"`
	HB string `yaml:"HB" json:"HB" default:"yes"`
	HC bool   `yaml:"HC" json:"HC" default:"true"`
	HD bool   `yaml:"HD" json:"HD" default:"false"`
}

type ConfigStruct6 struct {
	IA int    `yaml:"IA" json:"IA" default:"1" flag:"value-ia" env:"VALUE_IB"`
	IB string `yaml:"IB" json:"IB" default:"yes" flag:"value-ib" env:"VALUE_IB"`
	IC bool   `yaml:"IC" json:"IC" default:"true" flag:"value-ic" env:"VALUE_IC"`
	ID bool   `yaml:"ID" json:"ID" default:"false" flag:"value-id" env:"VALUE_ID"`
}

type ConfigStruct2 struct {
	A string          `yaml:"A" json:"A" toml:"A"`
	B bool            `yaml:"B" json:"B"`
	C []ConfigStruct1 `yaml:"C" json:"C"`
	D ConfigStruct3   `yaml:"D" json:"D"`
	F int             `yaml:"F" json:"F"`
	G string          `yaml:"G" json:"G"`
	H ConfigStruct5   `yaml:"H" json:"H"`
	I ConfigStruct6   `yaml:"I" json:"I"`
}

type ConfigStruct4 struct {
	A string `yaml:"A" json:"A" toml:"A" properties:"A"`
}

type ConfigStruct7 struct {
	A string `yaml:"A" json:"A" toml:"A" properties:"A"`
	B bool   `yaml:"B" json:"B" properties:"B"`
	C struct {
		CA string `yaml:"CA" json:"CA" toml:"CA" properties:"C.CA"`
		CB bool   `yaml:"CB" json:"CB" toml:"CB" properties:"C.CB"`
		CD struct {
			CDA string `yaml:"CDA" json:"CDA" toml:"CDA" properties:"C.CB.CDA"`
		}
	} `yaml:"C" json:"C" toml:"C" properties:"C"`
}