package main

type commandLineOptions struct {
	Config       string `short:"c" long:"config" description:"file with configuration values"`
	Path         string `short:"p" long:"path" description:"define the path where the specifications are located" default:"."`
	DateFormat   string `long:"date-format" description:"date format" default:"2006-01-02"`
	Requirements struct {
		Print struct {
			Columns []string `short:"c" long:"column" description:"defines the columns used"`
		} `command:"print"`
		Add struct {
			ID string `long:"id" required:"true" description:"new requirement id"`
		} `command:"add"`
		Report struct {
			GroupedBy string `long:"grouped-by" required:"false" description:"grouped by"`
			Remote    bool   `long:"remote" description:"get data from remote"`
		} `command:"report"`
	} `command:"requirements"`
	Tasks struct {
		Print struct {
		} `command:"print"`
		//Sync struct {
		//	//ProjectID string `long:"project-id" required:"false" description:"gitlab project id"`
		//	//Token     string `long:"token" required:"false" description:"gitlab token"`
		//} `command:"sync"`
	} `command:"tasks"`
	Issues struct {
		Print struct {
			GitlabToken string `long:"gitlab-token" required:"false" description:"gitlab token"`
			Remote      bool   `long:"remote" required:"false" description:"get data from remote"`
		} `command:"print"`
	} `command:"issues"`
	Items struct {
		Print struct {
		} `command:"print"`
	} `command:"items"`
	Changelog struct {
		Print struct {
		} `command:"print"`
	} `command:"changelog"`
	Privacy struct {
		Print struct {
		} `command:"print"`
	} `command:"privacy"`
	Overview struct {
		Print struct {
			Columns           []string `short:"c" long:"column" description:"defines the columns used"`
			TemplatePath      string   `short:"t" long:"template" description:"file name of the template of the overview page"`
			Output            string   `short:"o" long:"output" description:"redirect output to a file"`
			Format            string   `short:"f" long:"format" description:"the desired output format" choice:"pdf" choice:"md"`
			LatexTemplatePath string   `short:"l" long:"latex-template-path" description:"latex template"`
		} `command:"print"`
	} `command:"overview"`
	Version struct {
	} `command:"version"`
	Gitlab struct {
		Sync struct {
		} `command:"sync"`
		//			ProjectID string `long:"project-id" required:"false" description:"gitlab project id"`
		GitlabToken string `long:"gitlab-token" required:"false" description:"gitlab token"`
	} `command:"gitlab"`
}