package release

import (
	"context"

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

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

	apprID := ev.ID
	changes, err := s.repo.ListChanges(context.TODO(), false,
		repo.ChangeOpts.SelectIDOnly(),
		repo.ChangeOpts.ApprovalIs(apprID))
	if err != nil {
		return err
	}
	if len(changes) == 0 {
		return nil
	}

	for _, chg := range changes {
		s.syncChangeCh <- chg.ID
	}
	return nil
}
