package virtualgameservice

import (
	"context"

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

type VirtualGameService interface {
	GenerateGameLaunchURL(ctx context.Context, userID int64, gameID, currency, mode string) (string, error)
	HandleCallback(ctx context.Context, callback *domain.PopOKCallback) error
	ProcessBet(ctx context.Context, req *domain.PopOKBetRequest) (*domain.PopOKBetResponse, error)
	GetPlayerInfo(ctx context.Context, req *domain.PopOKPlayerInfoRequest) (*domain.PopOKPlayerInfoResponse, error)
	ProcessWin(ctx context.Context, req *domain.PopOKWinRequest) (*domain.PopOKWinResponse, error)
	ProcessCancel(ctx context.Context, req *domain.PopOKCancelRequest) (*domain.PopOKCancelResponse, error)

	GetGameCounts(ctx context.Context, filter domain.ReportFilter) (total, active, inactive int64, err error)
}
