package com.rinha.backend.service; import com.rinha.backend.model.PaymentModel; import com.rinha.backend.model.SummaryModel; import com.rinha.backend.repository.PaymentRepository; import org.springframework.stereotype.Service; import java.time.OffsetDateTime; import java.util.List; @Service public class SummaryService { private final PaymentRepository paymentRepository; public SummaryService(PaymentRepository paymentRepository) { this.paymentRepository = paymentRepository; } public SummaryModel getSummary(OffsetDateTime from, OffsetDateTime to) { SummaryModel summary = new SummaryModel(); if (from == null) from = OffsetDateTime.MIN; if (to == null) to = OffsetDateTime.MAX; List payments = paymentRepository.findAll(); for (PaymentModel p : payments) { if(p.getData().isBefore(from) || p.getData().isAfter(to)) continue; if (p.getProcessor() == 1) { summary.getProcessorDefault().addTotalRequests(1); summary.getProcessorDefault().addTotalAmount(p.getAmount()); } else if (p.getProcessor() == 2) { summary.getProcessorFallback().addTotalRequests(1); summary.getProcessorFallback().addTotalAmount(p.getAmount()); } } return summary; } }