package phase

import (
	"fmt"

	"github.com/tidbcloud/devops/entity"
	rmapi "github.com/tidbcloud/devops/pkg/service/remediationticket/api"
)

type PhaseSucceed struct {
	*basePhase
}

func (p *PhaseSucceed) PhaseName() string {
	return p.basePhase.phaseName
}

func (p *PhaseSucceed) PhaseNo() uint {
	return p.basePhase.phaseNum
}

func (*PhaseSucceed) Successors() []*Phase {
	return nil
}

func (*PhaseSucceed) Predecessors() []*Phase {
	return nil
}

func (p *PhaseSucceed) IsFinalized() bool {
	return p.basePhase.isFinalized
}

func (p *PhaseSucceed) Validate(context Context) error {
	return nil
}

func (p *PhaseSucceed) ValidateAndUpdateTicket(origin *entity.RemediationTicket, patch rmapi.TransferTicketParam) error {
	return nil
}

func (p *PhaseSucceed) Next(context Context) (Phase, error) {
	return nil, fmt.Errorf("cannot call Next() on a finalized phase")
}
