- Introduced BetStatStore, BranchStatStore, and WalletStatStore interfaces for handling statistics. - Implemented repository methods for fetching and updating bet, branch, and wallet statistics. - Created reporting services for generating interval reports for bets, branches, companies, and wallets. - Enhanced CSV writing functionality to support dynamic struct to CSV conversion. - Added cron jobs for periodic updates of branch and wallet statistics. - Updated wallet handler to include transaction statistics in the response.
41 lines
2.2 KiB
Go
41 lines
2.2 KiB
Go
package ports
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
|
|
)
|
|
|
|
type BranchStore interface {
|
|
CreateBranch(ctx context.Context, branch domain.CreateBranch) (domain.Branch, error)
|
|
GetBranchByID(ctx context.Context, id int64) (domain.BranchDetail, error)
|
|
GetBranchByManagerID(ctx context.Context, branchManagerID int64) ([]domain.BranchDetail, error)
|
|
GetBranchByCompanyID(ctx context.Context, companyID int64) ([]domain.BranchDetail, error)
|
|
GetAllBranches(ctx context.Context, filter domain.BranchFilter) ([]domain.BranchDetail, error)
|
|
SearchBranchByName(ctx context.Context, name string, companyID domain.ValidInt64) ([]domain.BranchDetail, error)
|
|
UpdateBranch(ctx context.Context, branch domain.UpdateBranch) (domain.Branch, error)
|
|
DeleteBranch(ctx context.Context, id int64) error
|
|
CreateBranchOperation(ctx context.Context, branchOperation domain.CreateBranchOperation) error
|
|
CreateSupportedOperation(ctx context.Context, supportedOperation domain.CreateSupportedOperation) (domain.SupportedOperation, error)
|
|
GetAllSupportedOperations(ctx context.Context) ([]domain.SupportedOperation, error)
|
|
GetBranchOperations(ctx context.Context, branchID int64) ([]domain.BranchOperation, error)
|
|
DeleteBranchOperation(ctx context.Context, branchID int64, operationID int64) error
|
|
CreateBranchCashier(ctx context.Context, branchID int64, userID int64) error
|
|
GetBranchByCashier(ctx context.Context, userID int64) (domain.Branch, error)
|
|
DeleteBranchCashier(ctx context.Context, userID int64) error
|
|
|
|
GetBranchCounts(ctx context.Context, filter domain.ReportFilter) (total, active, inactive int64, err error)
|
|
GetBranchDetails(ctx context.Context, filter domain.ReportFilter) (map[int64]domain.BranchDetail, error)
|
|
|
|
GetAllCompaniesBranch(ctx context.Context) ([]domain.Company, error)
|
|
GetBranchesByCompany(ctx context.Context, companyID int64) ([]domain.Branch, error)
|
|
|
|
GetAllBranchLocations(ctx context.Context, query domain.ValidString) ([]domain.BranchLocation, error)
|
|
}
|
|
|
|
type BranchStatStore interface {
|
|
UpdateBranchStats(ctx context.Context) error
|
|
GetBranchStatByID(ctx context.Context, branchID int64) ([]domain.BranchStat, error)
|
|
GetBranchStatsByInterval(ctx context.Context, filter domain.BranchStatFilter) ([]domain.BranchStat, error)
|
|
}
|