package morph

import (
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/ape"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/balance"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/config"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/container"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/contract"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/frostfsid"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/generate"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/initialize"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/netmap"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/nns"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/node"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/notary"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/policy"
	"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/proxy"
	"github.com/spf13/cobra"
)

// RootCmd is a root command of config section.
var RootCmd = &cobra.Command{
	Use:   "morph",
	Short: "Section for morph network configuration commands",
}

func init() {
	RootCmd.AddCommand(generate.RefillGasCmd)
	RootCmd.AddCommand(initialize.Cmd)
	RootCmd.AddCommand(contract.DeployCmd)
	RootCmd.AddCommand(generate.GenerateStorageCmd)
	RootCmd.AddCommand(netmap.ForceNewEpoch)
	RootCmd.AddCommand(node.RemoveCmd)
	RootCmd.AddCommand(policy.Set)
	RootCmd.AddCommand(policy.Dump)
	RootCmd.AddCommand(contract.DumpHashesCmd)
	RootCmd.AddCommand(config.SetCmd)
	RootCmd.AddCommand(config.DumpCmd)
	RootCmd.AddCommand(balance.DumpCmd)
	RootCmd.AddCommand(contract.UpdateCmd)
	RootCmd.AddCommand(container.ListCmd)
	RootCmd.AddCommand(container.RestoreCmd)
	RootCmd.AddCommand(container.DumpCmd)
	RootCmd.AddCommand(generate.GenerateAlphabetCmd)
	RootCmd.AddCommand(notary.DepositCmd)
	RootCmd.AddCommand(netmap.CandidatesCmd)

	RootCmd.AddCommand(ape.Cmd)
	RootCmd.AddCommand(proxy.AddAccountCmd)
	RootCmd.AddCommand(proxy.RemoveAccountCmd)

	RootCmd.AddCommand(frostfsid.Cmd)
	RootCmd.AddCommand(nns.Cmd)
}