package org.octopus.internal.services

import org.octopus.internal.common.models.DetailedReport
import org.octopus.internal.common.models.Report
import org.octopus.internal.web.dtos.ReportDto
import java.util.Date

interface ReportService {
    fun createReport(reportDto: ReportDto): Report
    fun generateProjections(endDate: Date): Boolean
    fun getAllReports(endDate: Date?): List<Report>
    fun getAllReportsWithAvgCorrection(endDate: Date?): List<Report>
    fun getDetailedReport(id: Long): DetailedReport
    fun getAllReportsWithDetails(endDate: Date?): List<DetailedReport>
    fun updateReport(id: Long, reportDto: ReportDto): Report
}