Added Models

This commit is contained in:
t.ruspekhofer 2022-02-15 19:44:45 +01:00
parent dbf1be4c5d
commit 245c6da6c6
12 changed files with 246 additions and 1 deletions

View file

@ -0,0 +1,8 @@
namespace Lieb.Models.Raid
{
public class PlannedRaid : Raid
{
//role name, number of spots
public ICollection<PlannedRaidRole> Roles { get; set; } = new HashSet<PlannedRaidRole>();
}
}

View file

@ -0,0 +1,10 @@
namespace Lieb.Models.Raid
{
public class PlannedRaidRole
{
public int PlannedRaidRoleId { get; set; }
public string Name { get; set; } = String.Empty;
public int Spots { get; }
public string Description { get; set; } = String.Empty;
}
}

36
Lieb/Models/Raid/Raid.cs Normal file
View file

@ -0,0 +1,36 @@
namespace Lieb.Models.Raid
{
public abstract class Raid
{
public int RaidId { get; private set; }
public string Title { get; set; } = String.Empty;
public string Description { get; set; } = String.Empty;
public DateTimeOffset StartTime { get; set; }
public double RaidDuration { get; set; }
public string Organisator { get; set; } = String.Empty;
public string Guild { get; set; } = String.Empty;
public string VoiceChat { get; set; } = String.Empty;
public int Frequency { get; set; }
public ICollection<RaidReminder> Reminders { get; set; } = new List<RaidReminder>();
public ICollection<RaidSignUp> SignUps { get; set; } = new HashSet<RaidSignUp>();
public ICollection<SignUpHistory> SignUpHistory { get; set; } = new HashSet<SignUpHistory>();
//used to edit the Discord message
public ulong DiscordMessageId { get; set; }
public ulong DiscordChannelId { get; set; }
public ulong DiscordGuildId { get; set; }
}
}

View file

@ -0,0 +1,31 @@
namespace Lieb.Models.Raid
{
public class RaidReminder
{
public enum ReminderType
{
User = 0,
Channel = 1
}
public RaidReminder(ReminderType type, string message, double hoursBeforeRaid, ulong channelId = 0)
{
Type = type;
Message = message;
HoursBeforeRaid = hoursBeforeRaid;
ChannelId = channelId;
}
public int RaidReminderId { get; set; }
public ReminderType Type { get; set; }
public string Message { get; set; }
public double HoursBeforeRaid { get; set; }
public ulong ChannelId { get; set; }
public bool Sent { get; set; } = false;
}
}

View file

@ -0,0 +1,28 @@
namespace Lieb.Models.Raid
{
public enum SignUpType
{
SignedUp = 0,
Maybe = 1,
Backup = 2,
Flex = 3,
SignedOff = 4
}
public class RaidSignUp
{
public int RaidSignUpId { get; set; }
public int RaidId { get; set; }
public int UserId { get; set; }
public int GuildWars2AccountId { get; set; }
public int PlannedRaidRoleId { get; set; }
public SignUpType SignUpType { get; set; }
public Raid Raid { get; set; }
public User User { get; set; } = new User();
public GuildWars2Account GuildWars2Account { get; set; } = new GuildWars2Account();
public PlannedRaidRole PlannedRaidRole { get; set; } = new PlannedRaidRole();
}
}

View file

@ -0,0 +1,7 @@
namespace Lieb.Models.Raid
{
public class RandomRaid : Raid
{
public ICollection<Role> WantedRoles { get; set; } = new HashSet<Role>();
}
}

View file

@ -0,0 +1,15 @@
namespace Lieb.Models.Raid
{
public class SignUpHistory
{
public int SignUpHistoryId { get; set; }
public string UserName { get; set; } = string.Empty;
public DateTimeOffset Time { get; set; } = DateTimeOffset.Now;
public SignUpType SignUpType { get; set; }
public Raid Raid { get; set; }
}
}