50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
using NodaTime;
|
|
|
|
namespace DysonNetwork.Shared.Models;
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
public enum LotteryDrawStatus
|
|
{
|
|
Pending = 0,
|
|
Drawn = 1
|
|
}
|
|
|
|
public class SnLotteryRecord : ModelBase
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
|
|
public Instant DrawDate { get; set; } // Date of the draw
|
|
|
|
[Column(TypeName = "jsonb")]
|
|
public List<int> WinningRegionOneNumbers { get; set; } = new(); // 5 winning numbers
|
|
|
|
[Range(0, 99)]
|
|
public int WinningRegionTwoNumber { get; set; } // 1 winning number
|
|
|
|
public int TotalTickets { get; set; } // Total tickets processed for this draw
|
|
public int TotalPrizesAwarded { get; set; } // Total prizes awarded
|
|
public long TotalPrizeAmount { get; set; } // Total ISP prize amount awarded
|
|
}
|
|
|
|
public class SnLottery : ModelBase
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
|
|
public SnAccount Account { get; set; } = null!;
|
|
public Guid AccountId { get; set; }
|
|
|
|
[Column(TypeName = "jsonb")]
|
|
public List<int> RegionOneNumbers { get; set; } = new(); // 5 numbers, 0-99, unique
|
|
|
|
[Range(0, 99)]
|
|
public int RegionTwoNumber { get; set; } // 1 number, 0-99, can repeat
|
|
|
|
public int Multiplier { get; set; } = 1; // Default 1x
|
|
|
|
public LotteryDrawStatus DrawStatus { get; set; } = LotteryDrawStatus.Pending; // Status to track draw processing
|
|
|
|
public Instant? DrawDate { get; set; } // Date when this ticket was drawn
|
|
}
|