diff --git a/ReallifeGamemode.Server/Entities/Ban.cs b/ReallifeGamemode.Server/Entities/Ban.cs index 3ae95e87..04508df9 100644 --- a/ReallifeGamemode.Server/Entities/Ban.cs +++ b/ReallifeGamemode.Server/Entities/Ban.cs @@ -21,7 +21,7 @@ namespace ReallifeGamemode.Server.Entities [ForeignKey("User")] public int UserId { get; set; } - public User User { get; set; } + public virtual User User { get; set; } public string Reason { get; set; } public string BannedBy { get; set; } diff --git a/ReallifeGamemode.Server/Entities/Character.cs b/ReallifeGamemode.Server/Entities/Character.cs index e3166f5b..b3431697 100644 --- a/ReallifeGamemode.Server/Entities/Character.cs +++ b/ReallifeGamemode.Server/Entities/Character.cs @@ -17,7 +17,7 @@ namespace ReallifeGamemode.Server.Entities [ForeignKey("User")] public int UserId { get; set; } - public User User { get; set; } + public virtual User User { get; set; } public bool Gender { get; set; } public byte Father { get; set; } diff --git a/ReallifeGamemode.Server/Entities/CharacterCloth.cs b/ReallifeGamemode.Server/Entities/CharacterCloth.cs index 58cb9926..0d91b67a 100644 --- a/ReallifeGamemode.Server/Entities/CharacterCloth.cs +++ b/ReallifeGamemode.Server/Entities/CharacterCloth.cs @@ -17,7 +17,7 @@ namespace ReallifeGamemode.Server.Entities [ForeignKey("User")] public int UserId { get; set; } - public User User { get; set; } + public virtual User User { get; set; } public bool Duty { get; set; } diff --git a/ReallifeGamemode.Server/Entities/Door.cs b/ReallifeGamemode.Server/Entities/Door.cs index ff50a249..de4718c1 100644 --- a/ReallifeGamemode.Server/Entities/Door.cs +++ b/ReallifeGamemode.Server/Entities/Door.cs @@ -31,6 +31,6 @@ namespace ReallifeGamemode.Server.Entities [ForeignKey("FactionId")] public int? FactionId { get; set; } - public Faction Faction { get; set; } + public virtual Faction Faction { get; set; } } } diff --git a/ReallifeGamemode.Server/Entities/DutyCloth.cs b/ReallifeGamemode.Server/Entities/DutyCloth.cs index 647b3729..e1135e98 100644 --- a/ReallifeGamemode.Server/Entities/DutyCloth.cs +++ b/ReallifeGamemode.Server/Entities/DutyCloth.cs @@ -20,7 +20,7 @@ namespace ReallifeGamemode.Server.Entities [ForeignKey("Faction")] public int FactionId { get; set; } - public Faction Faction { get; set; } + public virtual Faction Faction { get; set; } public bool Gender { get; set; } diff --git a/ReallifeGamemode.Server/Entities/FactionBankAccount.cs b/ReallifeGamemode.Server/Entities/FactionBankAccount.cs index 1502f972..f827c760 100644 --- a/ReallifeGamemode.Server/Entities/FactionBankAccount.cs +++ b/ReallifeGamemode.Server/Entities/FactionBankAccount.cs @@ -20,7 +20,7 @@ namespace ReallifeGamemode.Server.Entities public int Id { get; set; } [ForeignKey("Faction")] public int FactionId { get; set; } - public Faction Faction { get; set; } + public virtual Faction Faction { get; set; } [StringLength(12)] public string Bic { get; set; } [StringLength(32)] diff --git a/ReallifeGamemode.Server/Entities/FactionRank.cs b/ReallifeGamemode.Server/Entities/FactionRank.cs index 9130f483..0bb0ad9f 100644 --- a/ReallifeGamemode.Server/Entities/FactionRank.cs +++ b/ReallifeGamemode.Server/Entities/FactionRank.cs @@ -13,7 +13,7 @@ namespace ReallifeGamemode.Server.Entities public int FactionId { get; set; } - public Faction Faction { get; set; } + public virtual Faction Faction { get; set; } public Faction GetFaction() { diff --git a/ReallifeGamemode.Server/Entities/FactionVehicles.cs b/ReallifeGamemode.Server/Entities/FactionVehicles.cs index 553958b7..e8e5e377 100644 --- a/ReallifeGamemode.Server/Entities/FactionVehicles.cs +++ b/ReallifeGamemode.Server/Entities/FactionVehicles.cs @@ -15,7 +15,7 @@ namespace ReallifeGamemode.Server.Entities { [ForeignKey("Faction")] public int? FactionId { get; set; } - public Faction Faction { get; set; } + public virtual Faction Faction { get; set; } public Faction GetFaction() { diff --git a/ReallifeGamemode.Server/Entities/GroupBankAccount.cs b/ReallifeGamemode.Server/Entities/GroupBankAccount.cs index 62d1e1ae..ae4a5a15 100644 --- a/ReallifeGamemode.Server/Entities/GroupBankAccount.cs +++ b/ReallifeGamemode.Server/Entities/GroupBankAccount.cs @@ -13,7 +13,7 @@ namespace ReallifeGamemode.Server.Entities [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } - public Group Group { get; set; } + public virtual Group Group { get; set; } public int Balance { get; set; } } diff --git a/ReallifeGamemode.Server/Entities/GroupVehicle.cs b/ReallifeGamemode.Server/Entities/GroupVehicle.cs index e89b849b..59508c2a 100644 --- a/ReallifeGamemode.Server/Entities/GroupVehicle.cs +++ b/ReallifeGamemode.Server/Entities/GroupVehicle.cs @@ -10,7 +10,7 @@ namespace ReallifeGamemode.Server.Entities { public class GroupVehicle : ServerVehicle { - public Group Group { get; set; } + public virtual Group Group { get; set; } [ForeignKey("Group")] public int? GroupId { get; set; } diff --git a/ReallifeGamemode.Server/Entities/Logs/Death.cs b/ReallifeGamemode.Server/Entities/Logs/Death.cs index 9e6a6afa..e9b6ed4b 100644 --- a/ReallifeGamemode.Server/Entities/Logs/Death.cs +++ b/ReallifeGamemode.Server/Entities/Logs/Death.cs @@ -21,11 +21,11 @@ namespace ReallifeGamemode.Server.Entities.Logs [ForeignKey("Victim")] public int VictimId { get; set; } - public User Victim { get; set; } + public virtual User Victim { get; set; } [ForeignKey("Killer")] public int? KillerId { get; set; } - public User Killer { get; set; } + public virtual User Killer { get; set; } public float VictimPositionX { get; set; } public float VictimPositionY { get; set; } diff --git a/ReallifeGamemode.Server/Entities/News.cs b/ReallifeGamemode.Server/Entities/News.cs index 0dae2e5e..88a8f3a2 100644 --- a/ReallifeGamemode.Server/Entities/News.cs +++ b/ReallifeGamemode.Server/Entities/News.cs @@ -14,7 +14,7 @@ namespace ReallifeGamemode.Server.Entities [ForeignKey("User")] public int? UserId { get; set; } - public User User { get; set; } + public virtual User User { get; set; } public string Caption { get; set; } public string Content { get; set; } diff --git a/ReallifeGamemode.Server/Entities/ShopVehicles.cs b/ReallifeGamemode.Server/Entities/ShopVehicles.cs index c8a1e039..6b636449 100644 --- a/ReallifeGamemode.Server/Entities/ShopVehicles.cs +++ b/ReallifeGamemode.Server/Entities/ShopVehicles.cs @@ -19,7 +19,6 @@ namespace ReallifeGamemode.Server.Entities public class ShopVehicle : ServerVehicle { [ForeignKey("Shop")] - public int? ShopId { get; set; } public int BusinessId { get; set; } public int Price { get; set; } diff --git a/ReallifeGamemode.Server/Entities/User.cs b/ReallifeGamemode.Server/Entities/User.cs index ccfe3256..98ecebf2 100644 --- a/ReallifeGamemode.Server/Entities/User.cs +++ b/ReallifeGamemode.Server/Entities/User.cs @@ -44,24 +44,26 @@ namespace ReallifeGamemode.Server.Entities [ForeignKey("Character")] public int? CharacterId { get; set; } - public Character Character { get; set; } + public virtual Character Character { get; set; } [ForeignKey("Ban")] public int? BanId { get; set; } - public Ban Ban { get; set; } + public virtual Ban Ban { get; set; } public int? FactionId { get; set; } - public Faction Faction { get; set; } + public virtual Faction Faction { get; set; } public bool FactionLeader { get; set; } public int? FactionRankId { get; set; } - public FactionRank FactionRank { get; set; } + public virtual FactionRank FactionRank { get; set; } - public Group Group { get; set; } + public virtual Group Group { get; set; } public GroupRank GroupRank { get; set; } + public virtual Job Job { get; set; } + public FactionRank GetFactionRank() { using (var dbContext = new DatabaseContext()) diff --git a/ReallifeGamemode.Server/Entities/UserBankAccount.cs b/ReallifeGamemode.Server/Entities/UserBankAccount.cs index 72073afa..e096d666 100644 --- a/ReallifeGamemode.Server/Entities/UserBankAccount.cs +++ b/ReallifeGamemode.Server/Entities/UserBankAccount.cs @@ -23,7 +23,7 @@ namespace ReallifeGamemode.Server.Entities public int Id { get; set; } [ForeignKey("User")] public int UserId { get; set; } - public User User { get; set; } + public virtual User User { get; set; } [StringLength(12)] public string Bic { get; set; } [StringLength(32)] diff --git a/ReallifeGamemode.Server/Entities/UserItem.cs b/ReallifeGamemode.Server/Entities/UserItem.cs index d463511d..3f975a6b 100644 --- a/ReallifeGamemode.Server/Entities/UserItem.cs +++ b/ReallifeGamemode.Server/Entities/UserItem.cs @@ -21,7 +21,7 @@ namespace ReallifeGamemode.Server.Entities [ForeignKey("User")] public int UserId { get; set; } - public User User { get; set; } + public virtual User User { get; set; } public int Amount { get; set; } public int Slot { get; set; } diff --git a/ReallifeGamemode.Server/Entities/UserVehicle.cs b/ReallifeGamemode.Server/Entities/UserVehicle.cs index a262af13..011c2a30 100644 --- a/ReallifeGamemode.Server/Entities/UserVehicle.cs +++ b/ReallifeGamemode.Server/Entities/UserVehicle.cs @@ -15,7 +15,7 @@ namespace ReallifeGamemode.Server.Entities { [ForeignKey("User")] public int UserId { get; set; } - public User User { get; set; } + public virtual User User { get; set; } public override string ToString() { diff --git a/ReallifeGamemode.Server/Entities/VehicleMod.cs b/ReallifeGamemode.Server/Entities/VehicleMod.cs index 84d485da..14d2cd86 100644 --- a/ReallifeGamemode.Server/Entities/VehicleMod.cs +++ b/ReallifeGamemode.Server/Entities/VehicleMod.cs @@ -14,7 +14,7 @@ namespace ReallifeGamemode.Server.Entities [ForeignKey("Vehicle")] public int ServerVehicleId { get; set; } - public ServerVehicle Vehicle { get; set; } + public virtual ServerVehicle Vehicle { get; set; } public int Slot { get; set; } public int ModId { get; set; } diff --git a/ReallifeGamemode.Server/Migrations/20190513104140_Jobs.Designer.cs b/ReallifeGamemode.Server/Migrations/20190513104140_Jobs.Designer.cs new file mode 100644 index 00000000..a9f53595 --- /dev/null +++ b/ReallifeGamemode.Server/Migrations/20190513104140_Jobs.Designer.cs @@ -0,0 +1,1145 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using ReallifeGamemode.Server.Models; + +namespace ReallifeGamemode.Migrations +{ + [DbContext(typeof(DatabaseContext))] + [Migration("20190513104140_Jobs")] + partial class Jobs + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.2.0-rtm-35687") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.ATM", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("Balance"); + + b.Property("Faulty"); + + b.Property("X"); + + b.Property("Y"); + + b.Property("Z"); + + b.HasKey("Id"); + + b.ToTable("ATMs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Ban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Applied"); + + b.Property("BannedBy"); + + b.Property("Reason"); + + b.Property("UntilDateTime"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Bans"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.BusinessBankAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Balance"); + + b.Property("BusinessId"); + + b.HasKey("Id"); + + b.HasIndex("BusinessId") + .IsUnique(); + + b.ToTable("BusinessBankAccounts"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Character", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Ageing"); + + b.Property("AgeingOpacity"); + + b.Property("BeardColor"); + + b.Property("Blemishes"); + + b.Property("BlemishesOpacity"); + + b.Property("Blush"); + + b.Property("BlushColor"); + + b.Property("BlushOpacity"); + + b.Property("BrowDepth"); + + b.Property("BrowHeight"); + + b.Property("CheekDepth"); + + b.Property("CheekboneHeight"); + + b.Property("CheekboneWidth"); + + b.Property("ChestHair"); + + b.Property("ChestHairColor"); + + b.Property("ChestHairOpacity"); + + b.Property("ChinDepth"); + + b.Property("ChinHeight"); + + b.Property("ChinIndent"); + + b.Property("ChinWidth"); + + b.Property("Complexion"); + + b.Property("ComplexionOpacity"); + + b.Property("EyeColor"); + + b.Property("EyeSize"); + + b.Property("EyebrowColor"); + + b.Property("Eyebrows"); + + b.Property("EyebrowsOpacity"); + + b.Property("FacialHair"); + + b.Property("FacialHairOpacity"); + + b.Property("Father"); + + b.Property("Freckles"); + + b.Property("FrecklesOpacity"); + + b.Property("Gender"); + + b.Property("Hair"); + + b.Property("HairColor"); + + b.Property("HairHighlightColor"); + + b.Property("JawShape"); + + b.Property("JawWidth"); + + b.Property("LipThickness"); + + b.Property("Lipstick"); + + b.Property("LipstickColor"); + + b.Property("LipstickOpacity"); + + b.Property("Makeup"); + + b.Property("MakeupOpacity"); + + b.Property("Mother"); + + b.Property("NeckWidth"); + + b.Property("NoseBottomHeight"); + + b.Property("NoseBridgeDepth"); + + b.Property("NoseBroken"); + + b.Property("NoseTipHeight"); + + b.Property("NoseTipLength"); + + b.Property("NoseWidth"); + + b.Property("Similarity"); + + b.Property("SkinSimilarity"); + + b.Property("SunDamage"); + + b.Property("SunDamageOpacity"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Characters"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.CharacterCloth", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClothId"); + + b.Property("Duty"); + + b.Property("SlotId"); + + b.Property("SlotType"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("CharacterClothes"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.ClothCombination", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Gender"); + + b.Property("Top"); + + b.Property("Torso"); + + b.Property("Undershirt"); + + b.HasKey("Id"); + + b.ToTable("ClothCombinations"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Door", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Category"); + + b.Property("FactionId"); + + b.Property("Locked"); + + b.Property("Model"); + + b.Property("Name"); + + b.Property("Radius"); + + b.Property("X"); + + b.Property("Y"); + + b.Property("Z"); + + b.HasKey("Id"); + + b.HasIndex("FactionId"); + + b.ToTable("Doors"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.DutyCloth", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClothId"); + + b.Property("FactionId"); + + b.Property("Gender"); + + b.Property("SlotId"); + + b.Property("SlotType"); + + b.HasKey("Id"); + + b.HasIndex("FactionId"); + + b.ToTable("DutyClothes"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Faction", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name") + .HasMaxLength(32); + + b.Property("StateOwned"); + + b.HasKey("Id"); + + b.ToTable("Factions"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.FactionBankAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("Balance"); + + b.Property("Bic") + .HasMaxLength(12); + + b.Property("FactionId"); + + b.Property("Iban") + .HasMaxLength(32); + + b.HasKey("Id"); + + b.HasIndex("FactionId"); + + b.ToTable("FactionBankAccounts"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.FactionRank", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("FactionId"); + + b.Property("Order"); + + b.Property("RankName"); + + b.HasKey("Id"); + + b.HasIndex("FactionId"); + + b.ToTable("FactionRanks"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.GotoPoint", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("Description") + .HasMaxLength(32); + + b.Property("X"); + + b.Property("Y"); + + b.Property("Z"); + + b.HasKey("Id"); + + b.ToTable("GotoPoints"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + + b.ToTable("Groups"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.GroupBankAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Balance"); + + b.Property("GroupId"); + + b.HasKey("Id"); + + b.HasIndex("GroupId"); + + b.ToTable("GroupBankAccounts"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Interior", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("EnterPositionStr") + .HasColumnName("EnterPosition"); + + b.Property("ExitPositionStr") + .HasColumnName("ExitPosition"); + + b.Property("Name"); + + b.HasKey("Id"); + + b.ToTable("Interiors"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Job", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + + b.ToTable("Jobs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Logs.BankAccountTransactionHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Fee"); + + b.Property("MoneySent"); + + b.Property("NewReceiverBalance"); + + b.Property("NewSenderBalance"); + + b.Property("Origin") + .HasMaxLength(32); + + b.Property("Receiver") + .HasMaxLength(32); + + b.Property("ReceiverBalance"); + + b.Property("Sender") + .HasMaxLength(32); + + b.Property("SenderBalance"); + + b.Property("Timestamp") + .ValueGeneratedOnAdd(); + + b.HasKey("Id"); + + b.ToTable("BankAccountTransactionLogs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Logs.Death", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("CauseOfDeath") + .HasMaxLength(64); + + b.Property("KillerHeading"); + + b.Property("KillerId"); + + b.Property("KillerPositionX"); + + b.Property("KillerPositionY"); + + b.Property("KillerPositionZ"); + + b.Property("Timestamp") + .ValueGeneratedOnAdd(); + + b.Property("VictimHeading"); + + b.Property("VictimId"); + + b.Property("VictimPositionX"); + + b.Property("VictimPositionY"); + + b.Property("VictimPositionZ"); + + b.HasKey("Id"); + + b.HasIndex("KillerId"); + + b.HasIndex("VictimId"); + + b.ToTable("DeathLogs"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.News", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("Caption"); + + b.Property("Content"); + + b.Property("Timestamp"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("News"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Saves.SavedBlip", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("Alpha"); + + b.Property("Color"); + + b.Property("Dimension"); + + b.Property("DrawDistance"); + + b.Property("Name"); + + b.Property("PositionX"); + + b.Property("PositionY"); + + b.Property("PositionZ"); + + b.Property("Rotation"); + + b.Property("Scale"); + + b.Property("ShortRange"); + + b.Property("Sprite"); + + b.HasKey("Id"); + + b.ToTable("Blips"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Saves.SavedMarker", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("ColorA"); + + b.Property("ColorB"); + + b.Property("ColorG"); + + b.Property("ColorR"); + + b.Property("Dimension"); + + b.Property("DirectionX"); + + b.Property("DirectionY"); + + b.Property("DirectionZ"); + + b.Property("PositionX"); + + b.Property("PositionY"); + + b.Property("PositionZ"); + + b.Property("RotationX"); + + b.Property("RotationY"); + + b.Property("RotationZ"); + + b.Property("Scale"); + + b.Property("Type"); + + b.Property("Visible"); + + b.HasKey("Id"); + + b.ToTable("Markers"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Saves.SavedPed", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("Dimension"); + + b.Property("HashModel"); + + b.Property("Heading"); + + b.Property("PositionX"); + + b.Property("PositionY"); + + b.Property("PositionZ"); + + b.HasKey("Id"); + + b.ToTable("Peds"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Saves.SavedPickup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("Dimension"); + + b.Property("PositionX") + .HasMaxLength(128); + + b.Property("PositionY"); + + b.Property("PositionZ"); + + b.Property("RespawnTime"); + + b.Property("RotationX"); + + b.Property("RotationY"); + + b.Property("RotationZ"); + + b.Property("Vehicle"); + + b.HasKey("Id"); + + b.ToTable("Pickups"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Saves.SavedTextLabel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("ColorA"); + + b.Property("ColorB"); + + b.Property("ColorG"); + + b.Property("ColorR"); + + b.Property("Dimension"); + + b.Property("DrawDistance"); + + b.Property("Font"); + + b.Property("LOS"); + + b.Property("PositionX"); + + b.Property("PositionY"); + + b.Property("PositionZ"); + + b.Property("Text") + .IsRequired(); + + b.HasKey("Id"); + + b.ToTable("TextLabels"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.ServerVehicle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active") + .ValueGeneratedOnAdd() + .HasDefaultValue(true); + + b.Property("Discriminator") + .IsRequired(); + + b.Property("DistanceDriven"); + + b.Property("Heading"); + + b.Property("Locked"); + + b.Property("Model"); + + b.Property("NumberPlate") + .HasMaxLength(8); + + b.Property("PositionX"); + + b.Property("PositionY"); + + b.Property("PositionZ"); + + b.Property("PrimaryColor"); + + b.Property("SecondaryColor"); + + b.Property("TankAmount"); + + b.HasKey("Id"); + + b.ToTable("ServerVehicles"); + + b.HasDiscriminator("Discriminator").HasValue("ServerVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.TuningGarage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("X"); + + b.Property("Y"); + + b.Property("Z"); + + b.HasKey("Id"); + + b.ToTable("TuningGarages"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AdminLevel"); + + b.Property("BanId"); + + b.Property("BusinessId"); + + b.Property("CharacterId"); + + b.Property("Dead"); + + b.Property("Email") + .HasMaxLength(64); + + b.Property("FactionId"); + + b.Property("FactionLeader"); + + b.Property("FactionRankId"); + + b.Property("GroupId"); + + b.Property("GroupRank"); + + b.Property("Handmoney"); + + b.Property("JobId"); + + b.Property("LogUserId"); + + b.Property("Name") + .HasMaxLength(32); + + b.Property("Password") + .HasMaxLength(64); + + b.Property("PositionX"); + + b.Property("PositionY"); + + b.Property("PositionZ"); + + b.Property("RegistrationDate") + .ValueGeneratedOnAdd(); + + b.Property("SocialClubName") + .HasMaxLength(32); + + b.HasKey("Id"); + + b.HasIndex("BanId"); + + b.HasIndex("BusinessId") + .IsUnique(); + + b.HasIndex("CharacterId"); + + b.HasIndex("FactionId"); + + b.HasIndex("FactionRankId"); + + b.HasIndex("GroupId"); + + b.HasIndex("JobId"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.UserBankAccount", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Active"); + + b.Property("Balance"); + + b.Property("Bic") + .HasMaxLength(12); + + b.Property("Iban") + .HasMaxLength(32); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("UserBankAccounts"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.UserItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Amount"); + + b.Property("ItemId"); + + b.Property("Slot"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("UserItems"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleMod", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ModId"); + + b.Property("ServerVehicleId"); + + b.Property("Slot"); + + b.HasKey("Id"); + + b.HasIndex("ServerVehicleId", "Slot") + .IsUnique(); + + b.ToTable("VehicleMods"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Whitelist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("SocialClubName"); + + b.HasKey("Id"); + + b.ToTable("WhitelistEntries"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.FactionVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Server.Entities.ServerVehicle"); + + b.Property("FactionId"); + + b.HasIndex("FactionId"); + + b.ToTable("FactionVehicles"); + + b.HasDiscriminator().HasValue("FactionVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.GroupVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Server.Entities.ServerVehicle"); + + b.Property("GroupId"); + + b.HasIndex("GroupId"); + + b.HasDiscriminator().HasValue("GroupVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.JobVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Server.Entities.ServerVehicle"); + + b.Property("JobId"); + + b.HasIndex("JobId"); + + b.HasDiscriminator().HasValue("JobVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Saves.SavedVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Server.Entities.ServerVehicle"); + + b.HasDiscriminator().HasValue("SavedVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.ShopVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Server.Entities.ServerVehicle"); + + b.Property("BusinessId"); + + b.Property("Price"); + + b.Property("ShopId"); + + b.ToTable("ShopVehicles"); + + b.HasDiscriminator().HasValue("ShopVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.UserVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Server.Entities.ServerVehicle"); + + b.Property("UserId"); + + b.HasIndex("UserId"); + + b.ToTable("UserVehicles"); + + b.HasDiscriminator().HasValue("UserVehicle"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Ban", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Character", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.CharacterCloth", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Door", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.DutyCloth", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.FactionBankAccount", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.FactionRank", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.GroupBankAccount", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Group", "Group") + .WithMany() + .HasForeignKey("GroupId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Logs.Death", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.User", "Killer") + .WithMany() + .HasForeignKey("KillerId"); + + b.HasOne("ReallifeGamemode.Server.Entities.User", "Victim") + .WithMany() + .HasForeignKey("VictimId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.News", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.User", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Ban", "Ban") + .WithMany() + .HasForeignKey("BanId"); + + b.HasOne("ReallifeGamemode.Server.Entities.Character", "Character") + .WithMany() + .HasForeignKey("CharacterId"); + + b.HasOne("ReallifeGamemode.Server.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId"); + + b.HasOne("ReallifeGamemode.Server.Entities.FactionRank", "FactionRank") + .WithMany() + .HasForeignKey("FactionRankId"); + + b.HasOne("ReallifeGamemode.Server.Entities.Group", "Group") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("ReallifeGamemode.Server.Entities.Job", "Job") + .WithMany() + .HasForeignKey("JobId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.UserBankAccount", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.UserItem", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.VehicleMod", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.ServerVehicle", "Vehicle") + .WithMany() + .HasForeignKey("ServerVehicleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.FactionVehicle", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Faction", "Faction") + .WithMany() + .HasForeignKey("FactionId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.GroupVehicle", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Group", "Group") + .WithMany() + .HasForeignKey("GroupId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.JobVehicle", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Job", "Job") + .WithMany() + .HasForeignKey("JobId"); + }); + + modelBuilder.Entity("ReallifeGamemode.Server.Entities.UserVehicle", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.User", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/ReallifeGamemode.Server/Migrations/20190513104140_Jobs.cs b/ReallifeGamemode.Server/Migrations/20190513104140_Jobs.cs new file mode 100644 index 00000000..8ad5a9bb --- /dev/null +++ b/ReallifeGamemode.Server/Migrations/20190513104140_Jobs.cs @@ -0,0 +1,90 @@ +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace ReallifeGamemode.Migrations +{ + public partial class Jobs : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "JobId", + table: "Users", + nullable: true); + + migrationBuilder.AddColumn( + name: "JobId", + table: "ServerVehicles", + nullable: true); + + migrationBuilder.CreateTable( + name: "Jobs", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + Name = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Jobs", x => x.Id); + }); + + migrationBuilder.CreateIndex( + name: "IX_Users_JobId", + table: "Users", + column: "JobId"); + + migrationBuilder.CreateIndex( + name: "IX_ServerVehicles_JobId", + table: "ServerVehicles", + column: "JobId"); + + migrationBuilder.AddForeignKey( + name: "FK_ServerVehicles_Jobs_JobId", + table: "ServerVehicles", + column: "JobId", + principalTable: "Jobs", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + name: "FK_Users_Jobs_JobId", + table: "Users", + column: "JobId", + principalTable: "Jobs", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_ServerVehicles_Jobs_JobId", + table: "ServerVehicles"); + + migrationBuilder.DropForeignKey( + name: "FK_Users_Jobs_JobId", + table: "Users"); + + migrationBuilder.DropTable( + name: "Jobs"); + + migrationBuilder.DropIndex( + name: "IX_Users_JobId", + table: "Users"); + + migrationBuilder.DropIndex( + name: "IX_ServerVehicles_JobId", + table: "ServerVehicles"); + + migrationBuilder.DropColumn( + name: "JobId", + table: "Users"); + + migrationBuilder.DropColumn( + name: "JobId", + table: "ServerVehicles"); + } + } +} diff --git a/ReallifeGamemode.Server/Migrations/DatabaseContextModelSnapshot.cs b/ReallifeGamemode.Server/Migrations/DatabaseContextModelSnapshot.cs index 89b5489d..5b97fa67 100644 --- a/ReallifeGamemode.Server/Migrations/DatabaseContextModelSnapshot.cs +++ b/ReallifeGamemode.Server/Migrations/DatabaseContextModelSnapshot.cs @@ -420,6 +420,18 @@ namespace ReallifeGamemode.Migrations b.ToTable("Interiors"); }); + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Job", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("Id"); + + b.ToTable("Jobs"); + }); + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Logs.BankAccountTransactionHistory", b => { b.Property("Id") @@ -778,6 +790,8 @@ namespace ReallifeGamemode.Migrations b.Property("Handmoney"); + b.Property("JobId"); + b.Property("LogUserId"); b.Property("Name") @@ -813,6 +827,8 @@ namespace ReallifeGamemode.Migrations b.HasIndex("GroupId"); + b.HasIndex("JobId"); + b.ToTable("Users"); }); @@ -915,6 +931,17 @@ namespace ReallifeGamemode.Migrations b.HasDiscriminator().HasValue("GroupVehicle"); }); + modelBuilder.Entity("ReallifeGamemode.Server.Entities.JobVehicle", b => + { + b.HasBaseType("ReallifeGamemode.Server.Entities.ServerVehicle"); + + b.Property("JobId"); + + b.HasIndex("JobId"); + + b.HasDiscriminator().HasValue("JobVehicle"); + }); + modelBuilder.Entity("ReallifeGamemode.Server.Entities.Saves.SavedVehicle", b => { b.HasBaseType("ReallifeGamemode.Server.Entities.ServerVehicle"); @@ -1052,6 +1079,10 @@ namespace ReallifeGamemode.Migrations b.HasOne("ReallifeGamemode.Server.Entities.Group", "Group") .WithMany() .HasForeignKey("GroupId"); + + b.HasOne("ReallifeGamemode.Server.Entities.Job", "Job") + .WithMany() + .HasForeignKey("JobId"); }); modelBuilder.Entity("ReallifeGamemode.Server.Entities.UserBankAccount", b => @@ -1092,6 +1123,13 @@ namespace ReallifeGamemode.Migrations .HasForeignKey("GroupId"); }); + modelBuilder.Entity("ReallifeGamemode.Server.Entities.JobVehicle", b => + { + b.HasOne("ReallifeGamemode.Server.Entities.Job", "Job") + .WithMany() + .HasForeignKey("JobId"); + }); + modelBuilder.Entity("ReallifeGamemode.Server.Entities.UserVehicle", b => { b.HasOne("ReallifeGamemode.Server.Entities.User", "User") diff --git a/ReallifeGamemode.Server/Models/DatabaseContext.cs b/ReallifeGamemode.Server/Models/DatabaseContext.cs index 5f89179a..f509c9ec 100644 --- a/ReallifeGamemode.Server/Models/DatabaseContext.cs +++ b/ReallifeGamemode.Server/Models/DatabaseContext.cs @@ -12,8 +12,9 @@ namespace ReallifeGamemode.Server.Models { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - base.OnConfiguring(optionsBuilder); - optionsBuilder.UseMySql("Host=localhost;Port=3306;Database=gtav-devdb;Username=gtav-dev;Password=Test123"); + optionsBuilder + .UseMySql("Host=localhost;Port=3306;Database=gtav-devdb;Username=gtav-dev;Password=Test123") + .UseLazyLoadingProxies(); } protected override void OnModelCreating(ModelBuilder modelBuilder) @@ -99,5 +100,9 @@ namespace ReallifeGamemode.Server.Models public DbSet Groups { get; set; } public DbSet GroupBankAccounts { get; set; } public DbSet GroupVehicles { get; set; } + + // Jobs + public DbSet Jobs { get; set; } + public DbSet JobVehicles { get; set; } } } diff --git a/ReallifeGamemode.Server/ReallifeGamemode.Server.csproj b/ReallifeGamemode.Server/ReallifeGamemode.Server.csproj index 8843474e..7c7750bd 100644 --- a/ReallifeGamemode.Server/ReallifeGamemode.Server.csproj +++ b/ReallifeGamemode.Server/ReallifeGamemode.Server.csproj @@ -15,12 +15,13 @@ - - + + + all runtime; build; native; contentfiles; analyzers - +