package cloudconfig

import ccent "github.com/tidbcloud/devops/entity/cloudconfig"

type ListDefaultConfigurationChangeItemsReq struct {
	TypeIs *ccent.DefaultConfigurationChangeItemType `form:"type_is"`
	DataIs *string                                   `form:"data_is"`
}

type ListDefaultConfigurationChangeItemsResp struct {
	Items []*ccent.DefaultConfigurationChangeItem `json:"items"`
	Total int64                                   `json:"total"`
}

type ListUnreleasedDefaultConfigurationChangeItemsReq struct {
	EnvironmentIs string                                    `form:"environment_is" binding:"required"`
	TypeIs        *ccent.DefaultConfigurationChangeItemType `form:"type_is"`
}

type ListUnreleasedDefaultConfigurationChangeItemsResp struct {
	UnreleasedItems []*ccent.DefaultConfigurationChangeItem `json:"unreleased_items"`
}

type BatchUpdateTemplateBindingsReq struct {
	Items         []*ccent.TemplateDefaultCaseBindingChange `json:"items"`
	ParamsToSet   []ccent.NamedParameter                    `json:"params_to_set"`
	ParamsToUnset []string                                  `json:"params_to_unset"`
}

type BatchUpdateComponentConfigsReq struct {
	Components []*ccent.DefaultComponentConfig `json:"components"`
}

type BatchUpdateDefaultConfigurationChangeItemsReq struct {
	BatchUpdateTemplate         *BatchUpdateTemplateBindingsReq `json:"batch_update_template"`
	BatchUpdateComponentConfigs *BatchUpdateComponentConfigsReq `json:"batch_update_component_configs"`
}

type StatDefaultConfigurationChangeItemsReq struct {
	ConfigTypesOfTemplateDefaultCaseBinding bool `form:"config_types_of_template_default_case_binding"`
}

type StatDefaultConfigurationChangeItemsResp struct {
	ConfigTypesOfTemplateDefaultCaseBinding []string `json:"config_types_of_template_default_case_binding"`
}
