namespace KfChatDotNetBot.Models;
// Stash all the models used for perk or game metadata here
public class KasinoWagerBaseEventMetaModel
{
///
/// Event type for this meta model for the purposes of figuring out which model to use when deserializing
///
public required KasinoEventType EventType { get; set; }
///
/// Unique reference tracking the shared event ID stored in the settings
///
public required string SharedEventId { get; set; }
///
/// How long it took the user to make a selection. This is based on the event announcement msg recv - sent timestamp
/// that SneedChat provided so the bot won't unfairly penalize users who were delayed by chat lag
///
public required TimeSpan SelectionDelay { get; set; }
}
///
/// Metadata model tracking a gambler's wager information related to win/lose games specifically
///
public class KasinoWagerWinLoseEventMetaModel : KasinoWagerBaseEventMetaModel
{
///
/// Unique reference tracking the option the gambler selected. Tracked as a GUID in case the option text changes
///
public required string OptionId { get; set; }
}
///
/// Metadata model tracking a gambler's wager information related to win/lose games specifically
///
public class KasinoWagerPredictionEventMetaModel : KasinoWagerBaseEventMetaModel
{
///
/// The absolute time when the user predicted the thing was going to happen
///
public required DateTimeOffset PredictedTime { get; set; }
}