package service

import (
	"amocrm/internal/models"
	"context"
	"database/sql"
	"go.uber.org/zap"
	"gitea.pena/SQuiz/common/model"
	"gitea.pena/SQuiz/common/pj_errors"
)

func (s *Service) GetStepsWithPagination(ctx context.Context, req *model.PaginationReq, accountID string, pipelineID int) (*model.UserListStepsResp, error) {
	response, err := s.repository.AmoRepo.GetStepsWithPagination(ctx, req, accountID, int32(pipelineID))
	if err != nil {
		if err == sql.ErrNoRows {
			return nil, pj_errors.ErrNotFound
		}
		s.logger.Error("error getting steps with pagination", zap.Error(err))
		return nil, err
	}
	return response, nil
}

func (s *Service) UpdateListSteps(ctx context.Context, accountID string) error {
	message := models.KafkaMessage{
		AccountID: accountID,
		Type:      models.PipelinesUpdate,
	}

	err := s.producer.ToKafkaUpdate(ctx, message)
	if err != nil {
		s.logger.Error("failed to send message to kafka on service update steps", zap.Error(err))
		return err
	}

	return nil
}
