package operation

import (
	"context"

	"github.com/tidbcloud/devops/entity/event"
	"github.com/tidbcloud/devops/pkg/service/operation/repo"
)

func (s *svc) HandleApprovalEvent(uuid string, ev *event.ApprovalEvent) error {
	if ev.EventType != event.ApprovalEventTypeFinish {
		return nil
	}

	apprID := ev.ID
	instances, err := s.opRepo.ListInstances(context.TODO(), repo.InstanceOpts.ApprovalIs(apprID))
	if err != nil {
		return err
	}
	if len(instances) == 0 {
		return nil
	}

	for _, ins := range instances {
		s.syncInsCh <- ins.ID
	}
	return nil
}
