public class RaffleModel
(string title, string description, DateTime drawDate, bool isBundle, string raffleHolderId)
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int RaffleId { get; set; } // auto-generated
[Required]
[StringLength(30)]
public string Title { get; set; } = title;
[Required]
[StringLength(500)]
public string Description { get; set; } = description;
[Required]
public DateTime DrawDate { get; set; } = drawDate;
// Set to true when the raffle is published (after prizes are added)
[Required]
public bool IsActive { get; set; } = false;
[Required]
public bool IsBundle { get; set; } = isBundle;
[ForeignKey("AspNetUsers")]
public string RaffleHolderId { get; set; } = raffleHolderId;
// Identity user reference
public virtual ApplicationUser? RaffleHolder { get; set; }
// Navigation property (initialised to prevent null references)
public virtual ICollection<PrizeModel> Prizes { get; set; } = new HashSet<PrizeModel>();
}
public class RaffleModel
(string title, string description, DateTime drawDate, bool isBundle, string raffleHolderId)
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int RaffleId { get; set; } // auto-generated
[Required]
[StringLength(30)]
public string Title { get; set; } = title;
[Required]
[StringLength(500)]
public string Description { get; set; } = description;
[Required]
public DateTime DrawDate { get; set; } = drawDate;
// Set to true when the raffle is published (after prizes are added)
[Required]
public bool IsActive { get; set; } = false;
[Required]
public bool IsBundle { get; set; } = isBundle;
[ForeignKey("AspNetUsers")]
public string RaffleHolderId { get; set; } = raffleHolderId;
// Identity user reference
public virtual ApplicationUser? RaffleHolder { get; set; }
// Navigation property (initialised to prevent null references)
public virtual ICollection<PrizeModel> Prizes { get; set; } = new HashSet<PrizeModel>();
}