package odds

import (
	"context"
	"encoding/json"

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

type Service interface {
	FetchNonLiveOdds(ctx context.Context) error
	FetchNonLiveOddsByEventID(ctx context.Context, eventIDStr string) (domain.BaseNonLiveOddResponse, error)
	ParseOddSections(ctx context.Context, res json.RawMessage, sportID int64) (domain.ParseOddSectionsRes, error)
	GetPrematchOdds(ctx context.Context, eventID string) ([]domain.Odd, error)
	GetPrematchOddsByUpcomingID(ctx context.Context, upcomingID string) ([]domain.Odd, error)
	GetPaginatedPrematchOddsByUpcomingID(ctx context.Context, upcomingID string, limit domain.ValidInt64, offset domain.ValidInt64) ([]domain.Odd, error)
	GetALLPrematchOdds(ctx context.Context) ([]domain.Odd, error)
	GetRawOddsByMarketID(ctx context.Context, marketID string, upcomingID string) (domain.RawOddsByMarketID, error)
	DeleteOddsForEvent(ctx context.Context, eventID string) error
}
