From 245c6da6c6003b720162a2ab024989ee27dc0837 Mon Sep 17 00:00:00 2001 From: "t.ruspekhofer" Date: Tue, 15 Feb 2022 19:44:45 +0100 Subject: [PATCH] Added Models --- Lieb/Lieb.csproj | 2 +- Lieb/Models/Equipped.cs | 11 +++++ Lieb/Models/GuildWars2Account.cs | 11 +++++ Lieb/Models/Raid/PlannedRaid.cs | 8 +++ Lieb/Models/Raid/PlannedRaidRole.cs | 10 ++++ Lieb/Models/Raid/Raid.cs | 36 ++++++++++++++ Lieb/Models/Raid/RaidReminder.cs | 31 ++++++++++++ Lieb/Models/Raid/RaidSignUp.cs | 28 +++++++++++ Lieb/Models/Raid/RandomRaid.cs | 7 +++ Lieb/Models/Raid/SignUpHistory.cs | 15 ++++++ Lieb/Models/RaidRole.cs | 77 +++++++++++++++++++++++++++++ Lieb/Models/User.cs | 11 +++++ 12 files changed, 246 insertions(+), 1 deletion(-) create mode 100644 Lieb/Models/Equipped.cs create mode 100644 Lieb/Models/GuildWars2Account.cs create mode 100644 Lieb/Models/Raid/PlannedRaid.cs create mode 100644 Lieb/Models/Raid/PlannedRaidRole.cs create mode 100644 Lieb/Models/Raid/Raid.cs create mode 100644 Lieb/Models/Raid/RaidReminder.cs create mode 100644 Lieb/Models/Raid/RaidSignUp.cs create mode 100644 Lieb/Models/Raid/RandomRaid.cs create mode 100644 Lieb/Models/Raid/SignUpHistory.cs create mode 100644 Lieb/Models/RaidRole.cs create mode 100644 Lieb/Models/User.cs diff --git a/Lieb/Lieb.csproj b/Lieb/Lieb.csproj index 5e963bc..c78c9c7 100644 --- a/Lieb/Lieb.csproj +++ b/Lieb/Lieb.csproj @@ -1,4 +1,4 @@ - + net6.0 diff --git a/Lieb/Models/Equipped.cs b/Lieb/Models/Equipped.cs new file mode 100644 index 0000000..ecbf0a9 --- /dev/null +++ b/Lieb/Models/Equipped.cs @@ -0,0 +1,11 @@ +namespace Lieb.Models +{ + public class Equipped + { + public int EquippedId { get; set; } + public int GuildWars2AccountId { get; set; } + public int RaidRoleId { get; set; } + public GuildWars2Account GuildWars2Account { get; set; } = new GuildWars2Account(); + public RaidRole RaidRole { get; set; } = new RaidRole(); + } +} diff --git a/Lieb/Models/GuildWars2Account.cs b/Lieb/Models/GuildWars2Account.cs new file mode 100644 index 0000000..f6ae943 --- /dev/null +++ b/Lieb/Models/GuildWars2Account.cs @@ -0,0 +1,11 @@ +namespace Lieb.Models +{ + public class GuildWars2Account + { + public int GuildWars2AccountId { get; set; } + public string ApiKey { get; set; } = string.Empty; + public string AccountName { get; set; } = string.Empty; + public ICollection EquippedRoles { get; set; } = new List(); + + } +} diff --git a/Lieb/Models/Raid/PlannedRaid.cs b/Lieb/Models/Raid/PlannedRaid.cs new file mode 100644 index 0000000..3614bdf --- /dev/null +++ b/Lieb/Models/Raid/PlannedRaid.cs @@ -0,0 +1,8 @@ +namespace Lieb.Models.Raid +{ + public class PlannedRaid : Raid + { + //role name, number of spots + public ICollection Roles { get; set; } = new HashSet(); + } +} diff --git a/Lieb/Models/Raid/PlannedRaidRole.cs b/Lieb/Models/Raid/PlannedRaidRole.cs new file mode 100644 index 0000000..0608e9c --- /dev/null +++ b/Lieb/Models/Raid/PlannedRaidRole.cs @@ -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; + } +} diff --git a/Lieb/Models/Raid/Raid.cs b/Lieb/Models/Raid/Raid.cs new file mode 100644 index 0000000..8709d5b --- /dev/null +++ b/Lieb/Models/Raid/Raid.cs @@ -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 Reminders { get; set; } = new List(); + + public ICollection SignUps { get; set; } = new HashSet(); + + public ICollection SignUpHistory { get; set; } = new HashSet(); + + //used to edit the Discord message + public ulong DiscordMessageId { get; set; } + + public ulong DiscordChannelId { get; set; } + + public ulong DiscordGuildId { get; set; } + } +} diff --git a/Lieb/Models/Raid/RaidReminder.cs b/Lieb/Models/Raid/RaidReminder.cs new file mode 100644 index 0000000..38bf88f --- /dev/null +++ b/Lieb/Models/Raid/RaidReminder.cs @@ -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; + } +} diff --git a/Lieb/Models/Raid/RaidSignUp.cs b/Lieb/Models/Raid/RaidSignUp.cs new file mode 100644 index 0000000..b7fcab8 --- /dev/null +++ b/Lieb/Models/Raid/RaidSignUp.cs @@ -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(); + } +} diff --git a/Lieb/Models/Raid/RandomRaid.cs b/Lieb/Models/Raid/RandomRaid.cs new file mode 100644 index 0000000..df0f78c --- /dev/null +++ b/Lieb/Models/Raid/RandomRaid.cs @@ -0,0 +1,7 @@ +namespace Lieb.Models.Raid +{ + public class RandomRaid : Raid + { + public ICollection WantedRoles { get; set; } = new HashSet(); + } +} diff --git a/Lieb/Models/Raid/SignUpHistory.cs b/Lieb/Models/Raid/SignUpHistory.cs new file mode 100644 index 0000000..125471a --- /dev/null +++ b/Lieb/Models/Raid/SignUpHistory.cs @@ -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; } + } +} diff --git a/Lieb/Models/RaidRole.cs b/Lieb/Models/RaidRole.cs new file mode 100644 index 0000000..64fc4d6 --- /dev/null +++ b/Lieb/Models/RaidRole.cs @@ -0,0 +1,77 @@ +namespace Lieb.Models +{ + public enum Role + { + Might = 0, + Quickness = 1, + Alacrity = 2, + Heal = 3, + Tank = 4, + pDps = 5, + cDps = 6, + } + + public enum GuildWars2Class + { + Elementalist = 1, + Engineer = 2, + Thief = 3, + Ranger = 4, + Necromancer = 5, + Masmer = 6, + Revenant = 7, + Guard = 8, + Warrior = 9, + } + + public enum EliteSpecialization + { + Elemantalist = 1, + Tempest = 2, + Weaver = 3, + Catalyst = 4, + Engineer = 5, + Scrapper = 6, + Holosmith = 7, + Mechanist = 8, + Thief = 9, + DareDevil = 10, + Deadeye = 11, + Spectre = 12, + Ranger = 13, + Druid = 14, + Soulbeast = 15, + Untamed = 16, + Necromancer = 17, + Reaper = 18, + Scourge = 19, + Harbinger = 20, + Mesmer = 21, + Chronomancer = 22, + Mirage = 23, + Virtuoso = 24, + Revenant = 25, + Herald = 26, + Renegade = 27, + Vindicator = 28, + Guard = 29, + Dragonhunter = 30, + Firebrand = 31, + Willbender = 32, + Warrior = 33, + Berserker = 34, + Spellbreaker = 35, + Bladesworn = 36, + } + + public class RaidRole + { + public int RaidRoleId { get; set; } + public string RoleName { get; set; } = String.Empty; + public ICollection Boons { get; set; } = new List(); + public GuildWars2Class Class { get; set; } + public EliteSpecialization EliteSpecialization { get; set; } + public ICollection EquippedRoles { get; set; } = new List(); + + } +} diff --git a/Lieb/Models/User.cs b/Lieb/Models/User.cs new file mode 100644 index 0000000..12c4063 --- /dev/null +++ b/Lieb/Models/User.cs @@ -0,0 +1,11 @@ +namespace Lieb.Models +{ + public class User + { + public int UserId { get; set; } + public ulong DiscordUserId { get; set; } + public string Name { get; set; } = string.Empty; + public DateTime Birthday { get; set; } + public ICollection GuildWars2Accounts { get; set; } = new List(); + } +}