package com.aircraft.modules.order.service;


import com.aircraft.modules.order.domain.OrderMain;
import com.aircraft.modules.order.domain.dto.*;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.util.List;

@Service
public interface OrderAnalysisService {
    OrderAnalysisResult<List<DailyStat>> analyzeByDayRange(LocalDate start, LocalDate end);

    OrderAnalysisResult<List<MonthlyStat>> analyzeByMonthRange(LocalDate start, LocalDate end);

    OrderAnalysisResult<List<QuarterlyStat>> analyzeByQuarterRange(LocalDate start, LocalDate end);

    OrderAnalysisResult<List<YearlyStat>> analyzeByYearRange(LocalDate start, LocalDate end);

    <T> OrderAnalysisResult<T> analyzeAllOrders(List<OrderMain> allOrders);
}
