package instance

import opent "github.com/tidbcloud/devops/entity/operation"

type actorWhenCreated struct {
	*baseActor
}

func (a *actorWhenCreated) SendApproval() error {
	ctx := a.Context

	// send a approval
	apprID, err := a.sendApproval()
	if err != nil {
		return err
	}

	// transition status to 'Approving'
	err = a.PatchInstance(ctx,
		func(current *opent.Instance) error {
			current.ApprovalID = apprID
			current.Phase = opent.InstancePhaseApproving
			return nil
		},
	)
	if err != nil {
		return err
	}

	return nil
}

func (a *actorWhenCreated) Cancel() error {
	return a.cancel()
}
