package service

import (
	"amocrm/internal/models"
	"context"
	"database/sql"
	"go.uber.org/zap"
	"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/model"
	"penahub.gitlab.yandexcloud.net/backend/quiz/common.git/pj_errors"
)

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

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

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

	return nil
}
