Six4Win.WebApi

<back to all web services

GetDrawDignostics

The following routes are available for this service:
All Verbs/qry/rounds/draw/diagnostics
const std = @import("std");

pub const Initialization = struct {
    dataLoadDuration: i64 = 0,
    betsCollectionsCreationDuration: i64 = 0,
    combinationsOccuranceLookupInitializationDuration: i64 = 0,
};

pub const SequenceGeneration = struct {
    nrOfThreads: i32 = 0,
    nrOfResultsProbed: i32 = 0,
    duration: i64 = 0,
    avgSinglePassDuration: i64 = 0,
};

pub const SortingOrder = enum(i32) {
    None = 0,
    Ascending = 1,
    Descending = 2,
};

pub const BestFitFinder = struct {
    targetAmount: f64 = 0,
    awardedAmount: f64 = 0,
    deviation: f64 = 0,
    deviationPct: f64 = 0,
    sequenceResultType: ?[]const u8 = null,
    isJackPot5Drawn: bool = false,
    filteringPeriod: i64 = 0,
    winCountOrder: ?SortingOrder = null,
    minAmount: f64 = 0,
    maxAmount: f64 = 0,
};

pub const Bet = struct {
    isFound: bool = false,
    betId: ?[]const u8 = null,
    slipId: ?[]const u8 = null,
    combStake: ?std.json.Value = null,
};

pub const QualifiedPool = struct {
    id: i32 = 0,
    name: ?[]const u8 = null,
    coefficient: f64 = 0,
    availableAmount: f64 = 0,
    awardedAmount: f64 = 0,
    targetBet: ?Bet = null,
};

pub const Purger = struct {
    prevalentStake: f64 = 0,
    poolPurger: ?[]const u8 = null,
    qualifiedPools: ?[]QualifiedPool = null,
};

pub const ResponseStatus = enum(i32) {
    Failure = 0,
    Success = 1,
};

pub const StimulationResponse = struct {
    stimulationId: ?[]const u8 = null,
    status: ?ResponseStatus = null,
    failureReason: ?[]const u8 = null,
    slipId: ?[]const u8 = null,
    betId: ?[]const u8 = null,
    amountAwarded: f64 = 0,
};

pub const CurrentRoundInfo = struct {
    roundId: ?[]const u8 = null,
    amount: f64 = 0,
    inertCode: ?[]const u8 = null,
};

pub const BettingApp = struct {
    name: ?[]const u8 = null,
    version: ?[]const u8 = null,
};

pub const Ref = struct {
    id: ?[]const u8 = null,
    val: ?[]const u8 = null,
};

pub const RefEx = struct {
    id: ?[]const u8 = null,
    val: ?[]const u8 = null,
    data: ?RecordDictionary = null,
};

pub const Origin = struct {
    application: ?BettingApp = null,
    ip: ?[]const u8 = null,
    organization: ?RefEx = null,
    region: ?Ref = null,
    locationGroup: ?Ref = null,
    location: ?RefEx = null,
    device: ?RefEx = null,
    clerk: ?Ref = null,
};

pub const WinnerByCode = struct {
    roundId: ?[]const u8 = null,
    drawnAtUtc: ?[]const u8 = null,
    slipId: ?[]const u8 = null,
    betId: ?[]const u8 = null,
    code: ?[]const u8 = null,
    amount: f64 = 0,
    origin: ?Origin = null,
    bettor: ?Ref = null,
    locationAddressOrBettorInfo: ?[]const u8 = null,
};

pub const LocalCodePotInfo = struct {
    isActive: bool = false,
    current: ?CurrentRoundInfo = null,
    winners: ?[]WinnerByCode = null,
};

pub const SuperWinInfo = struct {
    durationInMs: i64 = 0,
    reasoning: ?[]const u8 = null,
};

pub const HappyHourInfo = struct {
    isHappyHour: bool = false,
    oddsModifier: f64 = 0,
    roundPoolBonusPct: f64 = 0,
};

pub const AccumulatorConfiguration = struct {
    id: ?[]const u8 = null,
    updatedAt: ?[]const u8 = null,
};

pub const SyphonType = enum(i32) {
    Location = 0,
    Bettor = 1,
};

pub const Syphon = struct {
    id: ?[]const u8 = null,
    name: ?[]const u8 = null,
    type: ?SyphonType = null,
    nrOfCombinations: i32 = 0,
};

pub const SyphonInfo = struct {
    bettors: ?std.json.Value = null,
    locations: ?std.json.Value = null,
    hasSyphons: bool = false,
    totalSyphonsInRound: i32 = 0,
};

pub const DrawDiagnostics = struct {
    id: ?[]const u8 = null,
    initializationInfo: ?Initialization = null,
    sequenceGenerationInfo: ?SequenceGeneration = null,
    bestFitFinderInfo: ?BestFitFinder = null,
    purgerInfo: ?Purger = null,
    duration: i64 = 0,
    stimulationResponses: ?[]StimulationResponse = null,
    localCodePot: ?LocalCodePotInfo = null,
    superWin: ?SuperWinInfo = null,
    happyHour: ?HappyHourInfo = null,
    reasoning: ?[]const u8 = null,
    configuration: ?AccumulatorConfiguration = null,
    syphonInfo: ?SyphonInfo = null,
};

pub const GetDrawDignostics = struct {
    id: ?[]const u8 = null,
};

pub fn RecordDictionary(comptime TKey: type, comptime TVal: type) type {
    _ = TKey;
    _ = TVal;
    return struct {};
}

Zig GetDrawDignostics DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /qry/rounds/draw/diagnostics HTTP/1.1 
Host: s4w2.api.bettor.webhop.biz 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"id":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"id":"String","initializationInfo":{"dataLoadDuration":0,"betsCollectionsCreationDuration":0,"combinationsOccuranceLookupInitializationDuration":0},"sequenceGenerationInfo":{"nrOfThreads":0,"nrOfResultsProbed":0,"duration":0,"avgSinglePassDuration":0},"bestFitFinderInfo":{"targetAmount":0,"awardedAmount":0,"deviation":0,"deviationPct":0,"sequenceResultType":"String","isJackPot5Drawn":false,"filteringPeriod":0,"winCountOrder":0,"minAmount":0,"maxAmount":0},"purgerInfo":{"prevalentStake":0,"poolPurger":"String","qualifiedPools":[{"id":0,"name":"String","coefficient":0,"availableAmount":0,"awardedAmount":0,"targetBet":{"isFound":false,"betId":"String","slipId":"String","combStake":{}}}]},"duration":0,"stimulationResponses":[{"stimulationId":"String","status":0,"failureReason":"String","slipId":"String","betId":"String","amountAwarded":0}],"localCodePot":{"durationInMs":0},"superWin":{"durationInMs":0,"reasoning":"String"},"happyHour":{"isHappyHour":false,"oddsModifier":0,"roundPoolBonusPct":0},"reasoning":"String","configuration":{"pools":[{"id":0,"name":"String","rtp":0,"reserveRTP":0,"totalRTP":0}],"prevalentStake":0,"purgeThresholdModifier":0,"locationOptimizationLevel":0,"jackPot5ThresholdInterval":{"start":0,"end":0},"deviationCategorySpanInPct":0,"deviationCategoryThresholdAmount":0,"roundPoolCircuitBreakerThreshold":0,"lowWinCountAffinityInPct":0,"winCountOrderAffinity":[{"order":0,"probability":0}],"highRollerSettings":{"pools":[{"id":0,"name":"String","isActive":false,"contributionToRoundPoolPct":0,"caps":{"plusCoef":0,"minusCoef":0,"maxAmountInPrevalentStakes":0}}],"categoryThresholds":[{"category":0,"threshold":0}]},"overflowCoefficientPoolsToRound":false,"antiSyphonProtectionOverride":false,"fraudDetectionConfig":{"antiSyphon":{"combinationCountPerRoundThresholdPct":0,"excludedLocations":[{"id":"String","val":"String"}],"blacklists":{"locations":[{"id":"String","val":"String"}],"players":[{"id":"String","val":"String"}]},"includeRoundPctAsBettorSyphonCriteria":false,"isActive":false}},"debugConfig":{"logLocationStats":false,"logBettorStats":false},"jP5WinnerCooldownPolicy":{"isActive":false,"cooldownIntervalInDays":0}},"syphonInfo":{"bettors":{"String":{"id":"String","name":"String","type":0,"nrOfCombinations":0}},"locations":{"String":{"id":"String","name":"String","type":0,"nrOfCombinations":0}},"hasSyphons":true,"totalSyphonsInRound":2}}