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