/*

 Copyright (c) [2023] [pcm]
 [pcm-coordinator] is licensed under Mulan PSL v2.
 You can use this software according to the terms and conditions of the Mulan PSL v2.
 You may obtain a copy of Mulan PSL v2 at:
          http://license.coscl.org.cn/MulanPSL2
 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 EITHER EXPaRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 See the Mulan PSL v2 for more details.

*/

package response

import "fmt"

type TaskInfo struct {
	TaskId        int64             `json:"taskId,optional"`
	NsID          string            `json:"nsID"` //云际平台传入namespace
	TaskType      string            `json:"taskType,optional"`
	MatchLabels   map[string]string `json:"matchLabels"`
	ParticipantId int64             `json:"participantId,optional"` //湘江预留字段
	Clusters      []string          `json:"clusters,optional"`      //云际平台传入集群名称列表
	TenantId      int64             `json:"tenantId"`
	Replicas      int64             `json:"replicas"`
	Metadata      []string          `json:"metadata"`
}

func (t *TaskInfo) Validate() error {
	if t.TenantId == 0 {
		return fmt.Errorf("tenantId is nil")
	}
	return nil
}
