package types

import (
	"github.com/pingcap/schrodinger/util"
)

// GithubTriggerInfo is git trigger info
type GithubTriggerInfo struct {
	JobID int64  `json:"job_id"`
	Repo  string `json:"repo"`
	Hash  string `json:"hash"`
}

// Clone clones GithubTriggerInfo
func (g *GithubTriggerInfo) Clone() *GithubTriggerInfo {
	gClone := &GithubTriggerInfo{}
	if err := util.Clone(gClone, g); err != nil {
		return nil
	}
	return gClone
}

// ImmediateTriggerInfo is immediate trigger info
type ImmediateTriggerInfo struct {
	JobID    int64 `json:"job_id"`
	Triggerd bool  `json:"triggerd"`
}

// Clone clones immediate trigger info
func (i *ImmediateTriggerInfo) Clone() *ImmediateTriggerInfo {
	iClone := &ImmediateTriggerInfo{}
	if err := util.Clone(iClone, i); err != nil {
		return nil
	}
	return iClone
}
