package dto

// GetPollingConcurrencyReq 获取指定任务类型的并发配置请求
type GetPollingConcurrencyReq struct {
	TaskType string `path:"task_type" description:"任务类型" required:"true"`
}

// UpdatePollingConcurrencyReq 更新轮询并发配置请求
type UpdatePollingConcurrencyReq struct {
	TaskType       string `path:"task_type" description:"任务类型" required:"true"`
	MaxConcurrency int    `json:"max_concurrency" validate:"required,min=1,max=1000" description:"最大并发数（1-1000）"`
}

// PollingConcurrencyResp 轮询并发配置响应
type PollingConcurrencyResp struct {
	TaskType       string  `json:"task_type" description:"任务类型"`
	TaskTypeName   string  `json:"task_type_name" description:"任务类型名称"`
	MaxConcurrency int     `json:"max_concurrency" description:"最大并发数"`
	Current        int64   `json:"current" description:"当前并发数"`
	Available      int64   `json:"available" description:"可用并发数"`
	Utilization    float64 `json:"utilization" description:"使用率（百分比）"`
}

// PollingConcurrencyListResp 轮询并发配置列表响应
type PollingConcurrencyListResp struct {
	Items []*PollingConcurrencyResp `json:"items" description:"并发配置列表"`
}

// ResetPollingConcurrencyReq 重置轮询并发计数请求
type ResetPollingConcurrencyReq struct {
	TaskType string `json:"task_type" validate:"required" description:"任务类型"`
}
