package transaction

import (
	"context"

	"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
)

type TransactionStore interface {
	CreateTransaction(ctx context.Context, transaction domain.CreateTransaction) (domain.Transaction, error)
	GetTransactionByID(ctx context.Context, id int64) (domain.Transaction, error)
	GetAllTransactions(ctx context.Context, filter domain.TransactionFilter) ([]domain.Transaction, error)
	GetTransactionByBranch(ctx context.Context, id int64) ([]domain.Transaction, error)
	UpdateTransactionVerified(ctx context.Context, id int64, verified bool, approvedBy int64, approverName string) error

	GetTransactionTotals(ctx context.Context, filter domain.ReportFilter) (deposits, withdrawals domain.Currency, err error)
	GetBranchTransactionTotals(ctx context.Context, filter domain.ReportFilter) (map[int64]domain.BranchTransactions, error)
}
