145 lines
3.1 KiB
Swift
145 lines
3.1 KiB
Swift
import Foundation
|
|
|
|
struct HermesSessionStartRequest: Codable {
|
|
var externalRef: String?
|
|
var localeCode: String?
|
|
var devicePlatform: String?
|
|
var deviceModel: String?
|
|
var osVersion: String?
|
|
var appVersion: String?
|
|
var experimentVariant: String?
|
|
}
|
|
|
|
struct HermesSessionResponse: Codable {
|
|
var sessionId: UUID
|
|
var userId: UUID
|
|
var startedAt: Date
|
|
var endedAt: Date?
|
|
var experimentVariant: String
|
|
var appVersion: String
|
|
var deviceModel: String?
|
|
var osVersion: String?
|
|
var localeCode: String
|
|
var devicePlatform: String
|
|
}
|
|
|
|
struct HermesEvent: Codable {
|
|
var id: UUID
|
|
var sportType: String
|
|
var sourceRef: String
|
|
var titleEn: String
|
|
var titleSv: String
|
|
var status: String
|
|
var previewStartMs: Int
|
|
var previewEndMs: Int
|
|
var revealStartMs: Int
|
|
var revealEndMs: Int
|
|
var lockAt: Date
|
|
var settleAt: Date
|
|
}
|
|
|
|
struct HermesEventMedia: Codable {
|
|
var id: UUID
|
|
var eventId: UUID
|
|
var mediaType: String
|
|
var hlsMasterUrl: URL
|
|
var posterUrl: URL?
|
|
var durationMs: Int
|
|
var previewStartMs: Int
|
|
var previewEndMs: Int
|
|
var revealStartMs: Int
|
|
var revealEndMs: Int
|
|
}
|
|
|
|
struct HermesOutcome: Codable {
|
|
var id: UUID
|
|
var marketId: UUID
|
|
var outcomeCode: String
|
|
var labelKey: String
|
|
var sortOrder: Int
|
|
}
|
|
|
|
struct HermesMarket: Codable {
|
|
var id: UUID
|
|
var eventId: UUID
|
|
var questionKey: String
|
|
var marketType: String
|
|
var status: String
|
|
var lockAt: Date
|
|
var settlementRuleKey: String
|
|
var outcomes: [HermesOutcome]
|
|
}
|
|
|
|
struct HermesOutcomeOdds: Codable {
|
|
var id: UUID
|
|
var oddsVersionId: UUID
|
|
var outcomeId: UUID
|
|
var decimalOdds: Double
|
|
var fractionalNum: Int
|
|
var fractionalDen: Int
|
|
}
|
|
|
|
struct HermesOddsVersion: Codable {
|
|
var id: UUID
|
|
var marketId: UUID
|
|
var versionNo: Int
|
|
var createdAt: Date
|
|
var isCurrent: Bool
|
|
var odds: [HermesOutcomeOdds]
|
|
}
|
|
|
|
struct HermesEventManifest: Codable {
|
|
var event: HermesEvent
|
|
var media: [HermesEventMedia]
|
|
var markets: [HermesMarket]
|
|
}
|
|
|
|
struct HermesBetIntentRequest: Codable {
|
|
var sessionId: UUID
|
|
var eventId: UUID
|
|
var marketId: UUID
|
|
var outcomeId: UUID
|
|
var idempotencyKey: String
|
|
var clientSentAt: Date
|
|
}
|
|
|
|
struct HermesBetIntentResponse: Codable {
|
|
var id: UUID
|
|
var accepted: Bool
|
|
var acceptanceCode: String
|
|
var acceptedOddsVersionId: UUID?
|
|
var serverReceivedAt: Date
|
|
}
|
|
|
|
struct HermesSettlement: Codable {
|
|
var id: UUID
|
|
var marketId: UUID
|
|
var settledAt: Date
|
|
var winningOutcomeId: UUID
|
|
}
|
|
|
|
struct HermesAnalyticsAttributeInput: Codable {
|
|
var key: String
|
|
var value: String
|
|
}
|
|
|
|
struct HermesAnalyticsEventInput: Codable {
|
|
var eventName: String
|
|
var occurredAt: Date
|
|
var attributes: [HermesAnalyticsAttributeInput]?
|
|
}
|
|
|
|
struct HermesAnalyticsBatchRequest: Codable {
|
|
var events: [HermesAnalyticsEventInput]
|
|
}
|
|
|
|
struct HermesExperimentConfig: Codable {
|
|
var variant: String
|
|
var featureFlags: [String: Bool]
|
|
}
|
|
|
|
struct HermesLocalizationBundle: Codable {
|
|
var localeCode: String
|
|
var values: [String: String]
|
|
}
|