Yimaru-BackEnd/internal/services/report/interface.go

29 lines
1.7 KiB
Go

package report
import (
"context"
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
)
type ReportService interface {
registerGenerators()
GetDashboardSummary(ctx context.Context, filter domain.ReportFilter) (domain.DashboardSummary, error)
GetBetAnalysis(ctx context.Context, filter domain.ReportFilter) ([]domain.BetAnalysis, error)
GetCustomerActivity(ctx context.Context, filter domain.ReportFilter) ([]domain.CustomerActivity, error)
GetBranchPerformance(ctx context.Context, filter domain.ReportFilter) ([]domain.BranchPerformance, error)
GetSportPerformance(ctx context.Context, filter domain.ReportFilter) ([]domain.SportPerformance, error)
// GenerateReport(ctx context.Context, from, to time.Time) error
// fetchReportData(ctx context.Context, from, to time.Time)
CreateReportRequest(ctx context.Context, report domain.CreateReportRequest) (domain.ReportRequest, error)
GetAllReportRequests(ctx context.Context, filter domain.ReportRequestFilter) ([]domain.ReportRequestDetail, int64, error)
GetReportRequestByRequestedByID(ctx context.Context, requestedBy int64, filter domain.ReportRequestFilter) ([]domain.ReportRequestDetail, error)
GetReportRequestByID(ctx context.Context, ID int64) (domain.ReportRequestDetail, error)
UpdateReportRequest(ctx context.Context, report domain.UpdateRequestRequest) error
WriteCSV(rows [][]string, filePrefix string) (string, error)
CheckAndFetchReportFile(ctx context.Context, ID int64) (string, error)
ProcessReportRequests(ctx context.Context) error
processSingleReportRequest(ctx context.Context, req domain.ReportRequestDetail) error
GenerateEventIntervalReport(ctx context.Context, request domain.ReportRequestDetail) (string, error)
}