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) }