Files
KfChatDotNet/KfChatDotNetBot/Models/RainbetModels.cs

143 lines
4.4 KiB
C#

using System.Text.Json.Serialization;
namespace KfChatDotNetBot.Models;
public class RainbetBetHistoryModel
{
[JsonPropertyName("id")]
public required string Id { get; set; }
[JsonPropertyName("value")]
public required float Value { get; set; }
[JsonPropertyName("payout")]
public required float? Payout { get; set; }
[JsonPropertyName("multiplier")]
public float? Multiplier { get; set; }
[JsonPropertyName("updated_at")]
public DateTimeOffset UpdatedAt { get; set; } = DateTimeOffset.UtcNow;
[JsonPropertyName("user")]
public required RainbetBetHistoryUserModel User { get; set; }
[JsonPropertyName("game")]
public required RainbetBetHistoryGameModel Game { get; set; }
}
public class RainbetBetHistoryGameModel
{
[JsonPropertyName("id")]
public required int Id { get; set; }
// It's actually a slug
[JsonPropertyName("url")]
public required string Url { get; set; }
[JsonPropertyName("name")]
public required string Name { get; set; }
}
public class RainbetBetHistoryUserRankModel
{
[JsonPropertyName("id")]
public required int Id { get; set; }
[JsonPropertyName("name")]
public required string Name { get; set; }
[JsonPropertyName("level")]
public required int Level { get; set; }
[JsonPropertyName("threshold")]
public required int Threshold { get; set; }
}
public class RainbetBetHistoryUserModel
{
// Can still uniquely identify users even if they're private. Bossman is ID 50
[JsonPropertyName("id")]
public required int Id { get; set; }
// Set to null on private-profiles
[JsonPropertyName("publicId")]
public string? PublicId { get; set; }
// Set to null on private profiles
[JsonPropertyName("username")]
public string? Username { get; set; }
[JsonPropertyName("wageredAmount")]
public float WageredAmount { get; set; } = 0;
[JsonPropertyName("public_profile")]
public int PublicProfile { get; set; } = 0;
// Null when they have no rank
[JsonPropertyName("rank")]
public RainbetBetHistoryUserRankModel? Rank { get; set; }
}
public class RainbetWsBetModel
{
[JsonPropertyName("id")]
public required string Id { get; set; }
[JsonPropertyName("currencyAmount")]
public required string CurrencyAmount { get; set; }
[JsonPropertyName("currency")]
public required string CurrencyName { get; set; }
[JsonPropertyName("value")]
public required string Value { get; set; }
[JsonPropertyName("payout")]
public required string Payout { get; set; }
[JsonPropertyName("currencyPayout")]
public required string CurrencyPayout { get; set; }
[JsonPropertyName("multiplier")]
public required string Multiplier { get; set; }
[JsonPropertyName("updatedAt")]
public required DateTimeOffset UpdatedAt { get; set; }
[JsonPropertyName("user")]
public required RainbetWsUserModel User { get; set; }
[JsonPropertyName("game")]
public required RainbetWsGameModel Game { get; set; }
}
public class RainbetWsUserModel
{
[JsonPropertyName("id")]
public required int Id { get; set; }
[JsonPropertyName("publicId")]
public required string PublicId { get; set; }
[JsonPropertyName("username")]
// null for private profiles
public string? Username { get; set; }
[JsonPropertyName("publicProfile")]
public required int PublicProfile { get; set; }
}
public class RainbetWsGameModel
{
[JsonPropertyName("id")]
public required int Id { get; set; }
[JsonPropertyName("url")]
public required string Url { get; set; }
[JsonPropertyName("name")]
public required string Name { get; set; }
}
/*
{
"id": "1a3648a7-e055-49aa-928e-7d9e0c02548a",
"currencyAmount": "4.0000",
"currency": "USD",
"value": "4.0000",
"currencyPayout": "0.0000",
"payout": "0.0000",
"multiplier": "0.0000",
"updatedAt": "2025-05-16T17:53:49.000Z",
"user": {
"id": 784907,
"publicId": "PIQ230088QABHUGXUT7UH6WUY6PDD473",
"username": "Gerr...",
"publicProfile": 1,
"__betRank__": { "name": "Silver", "level": 1 },
"rankLevel": { "name": "Silver", "level": 1 }
},
"game": {
"id": 752539,
"url": "evolution-marble-race",
"name": "Marble Race",
"icon": "https://contentdeliverynetwork.cc/i/s3/evolution/MarbleRace.png",
"iconMini": null,
"customBanner": null
},
"betParameters": null,
"idString": "1a3648a7-e055-49aa-928e-7d9e0c02548a"
}
*/