diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4e2bff5..ddbf7b2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -43,7 +43,7 @@ jobs:
docker push registry.digitalocean.com/kemkas/kemkas-be:${{ env.GITHUB_SHA_SHORT }}
- uses: actions/checkout@v4
with:
- repository: morbalint/kemkas-deployment
+ repository: ${{ github.repository_owner }}/kemkas-deployment
ref: refs/heads/main
path: ./deployment-repo
clean: false
diff --git a/Kemkas.Web/Db/Migrations/20240521001219_FelszerelesUpgradeViseltCipeltAprosagokIn2E.Designer.cs b/Kemkas.Web/Db/Migrations/20240521001219_FelszerelesUpgradeViseltCipeltAprosagokIn2E.Designer.cs
new file mode 100644
index 0000000..13e5d74
--- /dev/null
+++ b/Kemkas.Web/Db/Migrations/20240521001219_FelszerelesUpgradeViseltCipeltAprosagokIn2E.Designer.cs
@@ -0,0 +1,702 @@
+//
+using System;
+using Kemkas.Web.Db;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace Kemkas.Web.Db.Migrations
+{
+ [DbContext(typeof(ApplicationDbContext))]
+ [Migration("20240521001219_FelszerelesUpgradeViseltCipeltAprosagokIn2E")]
+ partial class FelszerelesUpgradeViseltCipeltAprosagokIn2E
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.0")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.ApplicationRole", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("text");
+
+ b.Property("Name")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("NormalizedName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedName")
+ .IsUnique()
+ .HasDatabaseName("RoleNameIndex");
+
+ b.ToTable("AspNetRoles", (string)null);
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.ApplicationUser", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("AccessFailedCount")
+ .HasColumnType("integer");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("text");
+
+ b.Property("Email")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("EmailConfirmed")
+ .HasColumnType("boolean");
+
+ b.Property("LockoutEnabled")
+ .HasColumnType("boolean");
+
+ b.Property("LockoutEnd")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("NormalizedEmail")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("NormalizedUserName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.Property("PasswordHash")
+ .HasColumnType("text");
+
+ b.Property("PhoneNumber")
+ .HasColumnType("text");
+
+ b.Property("PhoneNumberConfirmed")
+ .HasColumnType("boolean");
+
+ b.Property("SecurityStamp")
+ .HasColumnType("text");
+
+ b.Property("TwoFactorEnabled")
+ .HasColumnType("boolean");
+
+ b.Property("UserName")
+ .HasMaxLength(256)
+ .HasColumnType("character varying(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedEmail")
+ .HasDatabaseName("EmailIndex");
+
+ b.HasIndex("NormalizedUserName")
+ .IsUnique()
+ .HasDatabaseName("UserNameIndex");
+
+ b.ToTable("AspNetUsers", (string)null);
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V1Felszereles", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("IsFegyver")
+ .HasColumnType("boolean");
+
+ b.Property("KarakterId")
+ .HasColumnType("uuid");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("KarakterId");
+
+ b.ToTable("Felszerelesek");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V1Karakter", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Bolcsesseg")
+ .HasColumnType("smallint");
+
+ b.Property("Egeszseg")
+ .HasColumnType("smallint");
+
+ b.Property("Ero")
+ .HasColumnType("smallint");
+
+ b.Property("Faj")
+ .HasColumnType("integer");
+
+ b.Property("Intelligencia")
+ .HasColumnType("smallint");
+
+ b.Property("IsPublic")
+ .HasColumnType("boolean");
+
+ b.Property("Isten")
+ .HasColumnType("text");
+
+ b.Property("Jellem")
+ .HasColumnType("smallint");
+
+ b.Property("Karizma")
+ .HasColumnType("smallint");
+
+ b.Property("Kor")
+ .HasColumnType("double precision");
+
+ b.Property("Nem")
+ .HasColumnType("text");
+
+ b.Property("Nev")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Osztaly")
+ .HasColumnType("integer");
+
+ b.Property("OwnerUserId")
+ .HasColumnType("integer");
+
+ b.Property("Pajzs")
+ .HasColumnType("text");
+
+ b.Property("Pancel")
+ .HasColumnType("text");
+
+ b.Property("Szint")
+ .HasColumnType("smallint");
+
+ b.Property("Ugyesseg")
+ .HasColumnType("smallint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("OwnerUserId");
+
+ b.ToTable("Karakterek");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V1KarakterKepzettseg", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("IsTolvajKepzettseg")
+ .HasColumnType("boolean");
+
+ b.Property("KarakterId")
+ .HasColumnType("uuid");
+
+ b.Property("Kepzettseg")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("KarakterId");
+
+ b.ToTable("KarakterKepzettsegek");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V1Szintlepes", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("FegyverSpecializacio")
+ .HasColumnType("text");
+
+ b.Property("HpRoll")
+ .HasColumnType("smallint");
+
+ b.Property("KarakterId")
+ .HasColumnType("uuid");
+
+ b.Property("KarakterSzint")
+ .HasColumnType("smallint");
+
+ b.Property("TulajdonsagNoveles")
+ .HasColumnType("smallint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("KarakterId");
+
+ b.ToTable("Szintlepesek");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V2Felszereles", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Count")
+ .HasColumnType("integer");
+
+ b.Property("IsAprosag")
+ .HasColumnType("boolean");
+
+ b.Property("IsCipelt")
+ .HasColumnType("boolean");
+
+ b.Property("IsFegyver")
+ .HasColumnType("boolean");
+
+ b.Property("IsViselt")
+ .HasColumnType("boolean");
+
+ b.Property("KarakterId")
+ .HasColumnType("uuid");
+
+ b.Property("TargyId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("KarakterId");
+
+ b.ToTable("Felszerelesek2E");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V2Karakter", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("Bolcsesseg")
+ .HasColumnType("smallint");
+
+ b.Property("Egeszseg")
+ .HasColumnType("smallint");
+
+ b.Property("Ero")
+ .HasColumnType("smallint");
+
+ b.Property("Faj")
+ .HasColumnType("integer");
+
+ b.Property("Intelligencia")
+ .HasColumnType("smallint");
+
+ b.Property("IsPublic")
+ .HasColumnType("boolean");
+
+ b.Property("Isten")
+ .HasColumnType("text");
+
+ b.Property("Jellem")
+ .HasColumnType("smallint");
+
+ b.Property("Karizma")
+ .HasColumnType("smallint");
+
+ b.Property("Kor")
+ .HasColumnType("double precision");
+
+ b.Property("Nem")
+ .HasColumnType("text");
+
+ b.Property("Nev")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("OwnerUserId")
+ .HasColumnType("integer");
+
+ b.Property("Pajzs")
+ .HasColumnType("text");
+
+ b.Property("Pancel")
+ .HasColumnType("text");
+
+ b.Property("Szint")
+ .HasColumnType("smallint");
+
+ b.Property("Ugyesseg")
+ .HasColumnType("smallint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("OwnerUserId");
+
+ b.ToTable("Karakterek2E");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V2KarakterKepzettseg", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("IsTolvajKepzettseg")
+ .HasColumnType("boolean");
+
+ b.Property("KarakterId")
+ .HasColumnType("uuid");
+
+ b.Property("Kepzettseg")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("KarakterId");
+
+ b.ToTable("KarakterKepzettsegek2E");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V2Szintlepes", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid");
+
+ b.Property("FegyverSpecializacio")
+ .HasColumnType("text");
+
+ b.Property("HpRoll")
+ .HasColumnType("smallint");
+
+ b.Property("KarakterId")
+ .HasColumnType("uuid");
+
+ b.Property("KarakterSzint")
+ .HasColumnType("smallint");
+
+ b.Property("Osztaly")
+ .HasColumnType("integer");
+
+ b.Property("TolvajExtraKepzettseg")
+ .HasColumnType("integer");
+
+ b.Property("TulajdonsagNoveles")
+ .HasColumnType("smallint");
+
+ b.HasKey("Id");
+
+ b.HasIndex("KarakterId");
+
+ b.ToTable("Szintlepesek2E");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.DataProtectionKey", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("FriendlyName")
+ .HasColumnType("text");
+
+ b.Property("Xml")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("DataProtectionKeys");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ClaimType")
+ .HasColumnType("text");
+
+ b.Property("ClaimValue")
+ .HasColumnType("text");
+
+ b.Property("RoleId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("AspNetRoleClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ClaimType")
+ .HasColumnType("text");
+
+ b.Property("ClaimValue")
+ .HasColumnType("text");
+
+ b.Property("UserId")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AspNetUserClaims", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b =>
+ {
+ b.Property("LoginProvider")
+ .HasMaxLength(128)
+ .HasColumnType("character varying(128)");
+
+ b.Property("ProviderKey")
+ .HasMaxLength(128)
+ .HasColumnType("character varying(128)");
+
+ b.Property("ProviderDisplayName")
+ .HasColumnType("text");
+
+ b.Property("UserId")
+ .HasColumnType("integer");
+
+ b.HasKey("LoginProvider", "ProviderKey");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AspNetUserLogins", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b =>
+ {
+ b.Property("UserId")
+ .HasColumnType("integer");
+
+ b.Property("RoleId")
+ .HasColumnType("integer");
+
+ b.HasKey("UserId", "RoleId");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("AspNetUserRoles", (string)null);
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b =>
+ {
+ b.Property("UserId")
+ .HasColumnType("integer");
+
+ b.Property("LoginProvider")
+ .HasMaxLength(128)
+ .HasColumnType("character varying(128)");
+
+ b.Property("Name")
+ .HasMaxLength(128)
+ .HasColumnType("character varying(128)");
+
+ b.Property("Value")
+ .HasColumnType("text");
+
+ b.HasKey("UserId", "LoginProvider", "Name");
+
+ b.ToTable("AspNetUserTokens", (string)null);
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V1Felszereles", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.V1Karakter", "Karakter")
+ .WithMany("Felszereles")
+ .HasForeignKey("KarakterId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Karakter");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V1Karakter", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.ApplicationUser", "OwnerUser")
+ .WithMany()
+ .HasForeignKey("OwnerUserId");
+
+ b.Navigation("OwnerUser");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V1KarakterKepzettseg", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.V1Karakter", "Karakter")
+ .WithMany("KarakterKepzettsegek")
+ .HasForeignKey("KarakterId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Karakter");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V1Szintlepes", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.V1Karakter", "Karakter")
+ .WithMany("Szintlepesek")
+ .HasForeignKey("KarakterId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Karakter");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V2Felszereles", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.V2Karakter", "Karakter")
+ .WithMany("Felszereles")
+ .HasForeignKey("KarakterId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Karakter");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V2Karakter", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.ApplicationUser", "OwnerUser")
+ .WithMany()
+ .HasForeignKey("OwnerUserId");
+
+ b.Navigation("OwnerUser");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V2KarakterKepzettseg", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.V2Karakter", "Karakter")
+ .WithMany("KarakterKepzettsegek")
+ .HasForeignKey("KarakterId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Karakter");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V2Szintlepes", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.V2Karakter", "Karakter")
+ .WithMany("Szintlepesek")
+ .HasForeignKey("KarakterId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Karakter");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.ApplicationRole", null)
+ .WithMany()
+ .HasForeignKey("RoleId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.ApplicationUser", null)
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.ApplicationUser", null)
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.ApplicationRole", null)
+ .WithMany()
+ .HasForeignKey("RoleId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Kemkas.Web.Db.Models.ApplicationUser", null)
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b =>
+ {
+ b.HasOne("Kemkas.Web.Db.Models.ApplicationUser", null)
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V1Karakter", b =>
+ {
+ b.Navigation("Felszereles");
+
+ b.Navigation("KarakterKepzettsegek");
+
+ b.Navigation("Szintlepesek");
+ });
+
+ modelBuilder.Entity("Kemkas.Web.Db.Models.V2Karakter", b =>
+ {
+ b.Navigation("Felszereles");
+
+ b.Navigation("KarakterKepzettsegek");
+
+ b.Navigation("Szintlepesek");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Kemkas.Web/Db/Migrations/20240521001219_FelszerelesUpgradeViseltCipeltAprosagokIn2E.cs b/Kemkas.Web/Db/Migrations/20240521001219_FelszerelesUpgradeViseltCipeltAprosagokIn2E.cs
new file mode 100644
index 0000000..cfea975
--- /dev/null
+++ b/Kemkas.Web/Db/Migrations/20240521001219_FelszerelesUpgradeViseltCipeltAprosagokIn2E.cs
@@ -0,0 +1,62 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace Kemkas.Web.Db.Migrations
+{
+ ///
+ public partial class FelszerelesUpgradeViseltCipeltAprosagokIn2E : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "Count",
+ table: "Felszerelesek2E",
+ type: "integer",
+ nullable: false,
+ defaultValue: 1);
+
+ migrationBuilder.AddColumn(
+ name: "IsAprosag",
+ table: "Felszerelesek2E",
+ type: "boolean",
+ nullable: false,
+ defaultValue: false);
+
+ migrationBuilder.AddColumn(
+ name: "IsCipelt",
+ table: "Felszerelesek2E",
+ type: "boolean",
+ nullable: false,
+ defaultValue: false);
+
+ migrationBuilder.AddColumn(
+ name: "IsViselt",
+ table: "Felszerelesek2E",
+ type: "boolean",
+ nullable: false,
+ defaultValue: false);
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "Count",
+ table: "Felszerelesek2E");
+
+ migrationBuilder.DropColumn(
+ name: "IsAprosag",
+ table: "Felszerelesek2E");
+
+ migrationBuilder.DropColumn(
+ name: "IsCipelt",
+ table: "Felszerelesek2E");
+
+ migrationBuilder.DropColumn(
+ name: "IsViselt",
+ table: "Felszerelesek2E");
+ }
+ }
+}
diff --git a/Kemkas.Web/Db/Migrations/ApplicationDbContextModelSnapshot.cs b/Kemkas.Web/Db/Migrations/ApplicationDbContextModelSnapshot.cs
index 2b5073c..53c90d1 100644
--- a/Kemkas.Web/Db/Migrations/ApplicationDbContextModelSnapshot.cs
+++ b/Kemkas.Web/Db/Migrations/ApplicationDbContextModelSnapshot.cs
@@ -265,9 +265,21 @@ namespace Kemkas.Web.Db.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
+ b.Property("Count")
+ .HasColumnType("integer");
+
+ b.Property("IsAprosag")
+ .HasColumnType("boolean");
+
+ b.Property("IsCipelt")
+ .HasColumnType("boolean");
+
b.Property("IsFegyver")
.HasColumnType("boolean");
+ b.Property("IsViselt")
+ .HasColumnType("boolean");
+
b.Property("KarakterId")
.HasColumnType("uuid");
diff --git a/Kemkas.Web/Db/Models/V2Felszereles.cs b/Kemkas.Web/Db/Models/V2Felszereles.cs
index 3e05a8a..74b8b81 100644
--- a/Kemkas.Web/Db/Models/V2Felszereles.cs
+++ b/Kemkas.Web/Db/Models/V2Felszereles.cs
@@ -1,3 +1,4 @@
+using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
@@ -10,8 +11,18 @@ public class V2Felszereles
public Guid KarakterId { get; set; }
public string TargyId { get; set; }
- public bool IsFegyver { get; set; } = true;
-
+
+ [DefaultValue(1)]
+ public int Count { get; set; } = 1;
+
+ public bool IsFegyver { get; set; } = false;
+
+ public bool IsViselt { get; set; } = false;
+
+ public bool IsCipelt { get; set; } = false;
+
+ public bool IsAprosag { get; set; } = false;
+
[ForeignKey(nameof(KarakterId))]
public virtual V2Karakter Karakter { get; set; }
}
\ No newline at end of file
diff --git a/Kemkas.Web/Program.cs b/Kemkas.Web/Program.cs
index 034dd63..e5711e6 100644
--- a/Kemkas.Web/Program.cs
+++ b/Kemkas.Web/Program.cs
@@ -55,20 +55,21 @@ builder.Services.AddHealthChecks();
builder.Services.AddCharacter1EServices();
builder.Services.AddCharacter2EServices();
+// Configure the HTTP request pipeline.
var app = builder.Build();
app.UsePathBase("/api");
-// Configure the HTTP request pipeline.
+app.UseForwardedHeaders(new ForwardedHeadersOptions
+{
+ ForwardedForHeaderName = "X-Forwarded-For",
+ ForwardedHostHeaderName = "X-Forwarded-Host",
+ ForwardedProtoHeaderName = "X-Forwarded-Proto",
+ ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedHost | ForwardedHeaders.XForwardedProto,
+ KnownNetworks = { new IPNetwork(new IPAddress([0,0,0,0]), 0) }
+});
+
if (app.Environment.IsDevelopment())
{
- app.UseForwardedHeaders(new ForwardedHeadersOptions
- {
- ForwardedForHeaderName = "X-Forwarded-For",
- ForwardedHostHeaderName = "X-Forwarded-Host",
- ForwardedProtoHeaderName = "X-Forwarded-Proto",
- ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedHost | ForwardedHeaders.XForwardedProto,
- KnownNetworks = { new IPNetwork(new IPAddress([0,0,0,0]), 0) }
- });
app.UseMigrationsEndPoint();
app.UseDeveloperExceptionPage();
}
diff --git a/Kemkas.Web/Services/FirstEdition/Character/Character1EDtoToDbModelService.cs b/Kemkas.Web/Services/FirstEdition/Character/Character1EDtoToDbModelService.cs
index 09dfe08..7d41cad 100644
--- a/Kemkas.Web/Services/FirstEdition/Character/Character1EDtoToDbModelService.cs
+++ b/Kemkas.Web/Services/FirstEdition/Character/Character1EDtoToDbModelService.cs
@@ -32,11 +32,11 @@ public class Character1EDtoToDbModelService : ICharacter1EDtoToDbModelService
Bolcsesseg = dto.Tulajdonsagok.Bol,
Karizma = dto.Tulajdonsagok.Kar,
Szint = dto.Szint,
- Pajzs = dto.Felszereles.PajzsId,
- Pancel = dto.Felszereles.PancelId
+ Pajzs = dto.Felszereles1E.PajzsId,
+ Pancel = dto.Felszereles1E.PancelId
};
karakter.KarakterKepzettsegek = ConvertKepzettsegek(dto, karakter);
- karakter.Felszereles = dto.Felszereles.FegyverIds.Select(x => new V1Felszereles
+ karakter.Felszereles = dto.Felszereles1E.FegyverIds.Select(x => new V1Felszereles
{
Karakter = karakter,
IsFegyver = true,
@@ -63,10 +63,10 @@ public class Character1EDtoToDbModelService : ICharacter1EDtoToDbModelService
original.Bolcsesseg = dto.Tulajdonsagok.Bol;
original.Karizma = dto.Tulajdonsagok.Kar;
original.Szint = dto.Szint;
- original.Pajzs = dto.Felszereles.PajzsId;
- original.Pancel = dto.Felszereles.PancelId;
+ original.Pajzs = dto.Felszereles1E.PajzsId;
+ original.Pancel = dto.Felszereles1E.PancelId;
original.KarakterKepzettsegek = ConvertKepzettsegek(dto, original);
- original.Felszereles = dto.Felszereles.FegyverIds.Select(x => new V1Felszereles
+ original.Felszereles = dto.Felszereles1E.FegyverIds.Select(x => new V1Felszereles
{
Karakter = original,
IsFegyver = true,
diff --git a/Kemkas.Web/Services/FirstEdition/Character/CharacterDbModelToDtoService.cs b/Kemkas.Web/Services/FirstEdition/Character/CharacterDbModelToDtoService.cs
index e65fa5c..80652d8 100644
--- a/Kemkas.Web/Services/FirstEdition/Character/CharacterDbModelToDtoService.cs
+++ b/Kemkas.Web/Services/FirstEdition/Character/CharacterDbModelToDtoService.cs
@@ -38,7 +38,7 @@ public class CharacterDbModelToDto1EService : ICharacterDbModelToDto1EService
TulajdonsagNovelesek = entity.Szintlepesek.OrderBy(x => x.KarakterSzint).Select(x => x.TulajdonsagNoveles).Where(x => x is not null).Cast().Select(x => x.Convert()).ToList(),
HarcosSpecializaciok = entity.Osztaly == Osztaly1E.Harcos ? entity.Szintlepesek.OrderBy(x => x.KarakterSzint).Select(x => x.FegyverSpecializacio).Where(x => x != null).Cast().ToList() : [],
KalozKritikus = entity.Osztaly == Osztaly1E.Kaloz ? entity.Szintlepesek.OrderBy(x => x.KarakterSzint).Select(x => x.FegyverSpecializacio).Where(x => x != null).Cast().ToList() : [],
- Felszereles = new KarakterFelszerelesDto
+ Felszereles1E = new KarakterFelszereles1eDto
{
PajzsId = entity.Pajzs,
PancelId = entity.Pancel,
diff --git a/Kemkas.Web/Services/SecondEdition/Character/Character2EDtoToDbModelService.cs b/Kemkas.Web/Services/SecondEdition/Character/Character2EDtoToDbModelService.cs
index 5ad0c92..e786a4f 100644
--- a/Kemkas.Web/Services/SecondEdition/Character/Character2EDtoToDbModelService.cs
+++ b/Kemkas.Web/Services/SecondEdition/Character/Character2EDtoToDbModelService.cs
@@ -35,12 +35,36 @@ public class Character2EDtoToDbModelService : ICharacter2EDtoToDbModelService
};
karakter.KarakterKepzettsegek = ConvertKarakterKepzettsegek(dto, karakter);
- karakter.Felszereles = dto.Felszereles.FegyverIds.Select(x => new V2Felszereles
+ var felszereles = dto.Felszereles.Fegyverek.Select(x => new V2Felszereles
{
Karakter = karakter,
IsFegyver = true,
- TargyId = x,
+ TargyId = x.Id,
+ Count = x.Count,
}).ToList();
+ felszereles.AddRange(dto.Felszereles.Viselt.Select(x => new V2Felszereles
+ {
+ Karakter = karakter,
+ IsViselt = true,
+ TargyId = x.Id,
+ Count = x.Count,
+ }));
+ felszereles.AddRange(dto.Felszereles.Cipelt.Select(x => new V2Felszereles
+ {
+ Karakter = karakter,
+ IsCipelt = true,
+ TargyId = x.Id,
+ Count = x.Count,
+ }));
+ felszereles.AddRange(dto.Felszereles.Aprosagok.Select(x => new V2Felszereles
+ {
+ Karakter = karakter,
+ IsAprosag = true,
+ TargyId = x.Id,
+ Count = x.Count,
+ }));
+ karakter.Felszereles = felszereles;
+
karakter.Szintlepesek = dto.Szintlepesek.Select((x, i) => new V2Szintlepes
{
Karakter = karakter,
@@ -73,12 +97,35 @@ public class Character2EDtoToDbModelService : ICharacter2EDtoToDbModelService
original.Pajzs = dto.Felszereles.PajzsId;
original.Pancel = dto.Felszereles.PancelId;
original.KarakterKepzettsegek = ConvertKarakterKepzettsegek(dto, original);
- original.Felszereles = dto.Felszereles.FegyverIds.Select(x => new V2Felszereles
+ var felszereles = dto.Felszereles.Fegyverek.Select(x => new V2Felszereles
{
Karakter = original,
IsFegyver = true,
- TargyId = x,
+ TargyId = x.Id,
+ Count = x.Count,
}).ToList();
+ felszereles.AddRange(dto.Felszereles.Viselt.Select(x => new V2Felszereles
+ {
+ Karakter = original,
+ IsViselt = true,
+ TargyId = x.Id,
+ Count = x.Count,
+ }));
+ felszereles.AddRange(dto.Felszereles.Cipelt.Select(x => new V2Felszereles
+ {
+ Karakter = original,
+ IsCipelt = true,
+ TargyId = x.Id,
+ Count = x.Count,
+ }));
+ felszereles.AddRange(dto.Felszereles.Aprosagok.Select(x => new V2Felszereles
+ {
+ Karakter = original,
+ IsAprosag = true,
+ TargyId = x.Id,
+ Count = x.Count,
+ }));
+ original.Felszereles = felszereles;
original.Szintlepesek = dto.Szintlepesek.Select((x, i) => new V2Szintlepes
{
Karakter = original,
diff --git a/Kemkas.Web/Services/SecondEdition/Character/CharacterDbModelToDto2EService.cs b/Kemkas.Web/Services/SecondEdition/Character/CharacterDbModelToDto2EService.cs
index bb1d8f1..f8ef74b 100644
--- a/Kemkas.Web/Services/SecondEdition/Character/CharacterDbModelToDto2EService.cs
+++ b/Kemkas.Web/Services/SecondEdition/Character/CharacterDbModelToDto2EService.cs
@@ -33,11 +33,14 @@ public class CharacterDbModelToDto2EService : ICharacterDbModelToDto2EService
Kepzettsegek = entity.KarakterKepzettsegek.Where(x => !x.IsTolvajKepzettseg).Select(x => x.Kepzettseg.Convert()).ToList(),
Tolvajkepzettsegek = entity.KarakterKepzettsegek.Where(x => x.IsTolvajKepzettseg).Select(x => x.Kepzettseg.Convert()).ToList(),
Szint = entity.Szint,
- Felszereles = new KarakterFelszerelesDto
+ Felszereles = new KarakterFelszereles2eDto
{
PajzsId = entity.Pajzs,
PancelId = entity.Pancel,
- FegyverIds = entity.Felszereles.Where(x => x.IsFegyver).Select(x => x.TargyId).ToList(),
+ Fegyverek = entity.Felszereles.Where(x => x.IsFegyver).Select(x => new FelszerelesIdAndCount { Id = x.TargyId, Count = x.Count}).ToList(),
+ Viselt = entity.Felszereles.Where(x => x.IsViselt).Select(x => new FelszerelesIdAndCount { Id = x.TargyId, Count = x.Count}).ToList(),
+ Cipelt = entity.Felszereles.Where(x => x.IsCipelt).Select(x => new FelszerelesIdAndCount { Id = x.TargyId, Count = x.Count}).ToList(),
+ Aprosagok = entity.Felszereles.Where(x => x.IsAprosag).Select(x => new FelszerelesIdAndCount { Id = x.TargyId, Count = x.Count}).ToList(),
},
IsPublic = entity.IsPublic,
Szintlepesek = entity.Szintlepesek.OrderBy(x => x.KarakterSzint).Select(sz => new Szintlepes
diff --git a/Kemkas.Web/ViewModels/Character1eDto.cs b/Kemkas.Web/ViewModels/Character1eDto.cs
index 6e2ef60..9ac5a09 100644
--- a/Kemkas.Web/ViewModels/Character1eDto.cs
+++ b/Kemkas.Web/ViewModels/Character1eDto.cs
@@ -3,7 +3,7 @@ using System.Text.Json.Serialization;
namespace Kemkas.Web.ViewModels;
-public struct Character1eDto
+public class Character1eDto
{
[Required]
[JsonPropertyName("name")]
@@ -52,7 +52,7 @@ public struct Character1eDto
public IList KalozKritikus { get; set; }
[JsonPropertyName("felszereles")]
- public KarakterFelszerelesDto Felszereles { get; set; }
+ public KarakterFelszereles1eDto Felszereles1E { get; set; }
public bool? IsPublic { get; set; }
}
\ No newline at end of file
diff --git a/Kemkas.Web/ViewModels/Character2eDto.cs b/Kemkas.Web/ViewModels/Character2eDto.cs
index 60cd3f9..64218db 100644
--- a/Kemkas.Web/ViewModels/Character2eDto.cs
+++ b/Kemkas.Web/ViewModels/Character2eDto.cs
@@ -3,7 +3,7 @@ using System.Text.Json.Serialization;
namespace Kemkas.Web.ViewModels;
-public struct Character2eDto
+public class Character2eDto
{
[Required]
[JsonPropertyName("nev")]
@@ -40,7 +40,7 @@ public struct Character2eDto
public IList Szintlepesek { get; set; }
[JsonPropertyName("felszereles")]
- public KarakterFelszerelesDto Felszereles { get; set; }
+ public KarakterFelszereles2eDto Felszereles { get; set; }
public bool? IsPublic { get; set; }
}
\ No newline at end of file
diff --git a/Kemkas.Web/ViewModels/CharacterListItemDto.cs b/Kemkas.Web/ViewModels/CharacterListItemDto.cs
index c8dddab..a0745b4 100644
--- a/Kemkas.Web/ViewModels/CharacterListItemDto.cs
+++ b/Kemkas.Web/ViewModels/CharacterListItemDto.cs
@@ -2,7 +2,7 @@ using System.Text.Json.Serialization;
namespace Kemkas.Web.ViewModels;
-public struct CharacterListItemDto()
+public class CharacterListItemDto()
{
[JsonPropertyName("id")]
public required Guid Id { get; set; }
diff --git a/Kemkas.Web/ViewModels/FelszerelesIdAndCount.cs b/Kemkas.Web/ViewModels/FelszerelesIdAndCount.cs
new file mode 100644
index 0000000..7de9fa7
--- /dev/null
+++ b/Kemkas.Web/ViewModels/FelszerelesIdAndCount.cs
@@ -0,0 +1,12 @@
+using System.Text.Json.Serialization;
+
+namespace Kemkas.Web.ViewModels;
+
+public class FelszerelesIdAndCount
+{
+ [JsonPropertyName("id")]
+ public string Id { get; set; }
+
+ [JsonPropertyName("count")]
+ public int Count { get; set; }
+}
\ No newline at end of file
diff --git a/Kemkas.Web/ViewModels/KarakterFelszerelesDto.cs b/Kemkas.Web/ViewModels/KarakterFelszereles1eDto.cs
similarity index 70%
rename from Kemkas.Web/ViewModels/KarakterFelszerelesDto.cs
rename to Kemkas.Web/ViewModels/KarakterFelszereles1eDto.cs
index 702534e..0857e33 100644
--- a/Kemkas.Web/ViewModels/KarakterFelszerelesDto.cs
+++ b/Kemkas.Web/ViewModels/KarakterFelszereles1eDto.cs
@@ -2,10 +2,7 @@ using System.Text.Json.Serialization;
namespace Kemkas.Web.ViewModels;
-///
-/// currently the same for 1st edition and 2nd edition, be cautious!
-///
-public struct KarakterFelszerelesDto
+public class KarakterFelszereles1eDto
{
[JsonPropertyName("pancelID")]
public string? PancelId { get; set; }
diff --git a/Kemkas.Web/ViewModels/KarakterFelszereles2eDto.cs b/Kemkas.Web/ViewModels/KarakterFelszereles2eDto.cs
new file mode 100644
index 0000000..506ebb6
--- /dev/null
+++ b/Kemkas.Web/ViewModels/KarakterFelszereles2eDto.cs
@@ -0,0 +1,24 @@
+using System.Text.Json.Serialization;
+
+namespace Kemkas.Web.ViewModels;
+
+public class KarakterFelszereles2eDto
+{
+ [JsonPropertyName("pancelID")]
+ public string? PancelId { get; set; }
+
+ [JsonPropertyName("pajzsID")]
+ public string? PajzsId { get; set; }
+
+ [JsonPropertyName("fegyverek")]
+ public IList Fegyverek { get; set; }
+
+ [JsonPropertyName("viselt")]
+ public IList Viselt { get; set; }
+
+ [JsonPropertyName("cipelt")]
+ public IList Cipelt { get; set; }
+
+ [JsonPropertyName("aprosagok")]
+ public IList Aprosagok { get; set; }
+}
\ No newline at end of file
diff --git a/Kemkas.Web/ViewModels/KarakterTulajdonsagokDto.cs b/Kemkas.Web/ViewModels/KarakterTulajdonsagokDto.cs
index d8c8503..e2fb5cf 100644
--- a/Kemkas.Web/ViewModels/KarakterTulajdonsagokDto.cs
+++ b/Kemkas.Web/ViewModels/KarakterTulajdonsagokDto.cs
@@ -5,7 +5,7 @@ namespace Kemkas.Web.ViewModels;
///
/// currently the same for 1st edition and 2nd edition, be cautious!
///
-public struct KarakterTulajdonsagokDto
+public class KarakterTulajdonsagokDto
{
[JsonPropertyName("t_ero")]
public byte Ero { get; set; }
diff --git a/Kemkas.Web/ViewModels/Szintlepes.cs b/Kemkas.Web/ViewModels/Szintlepes.cs
index 2f2e451..c6e9b57 100644
--- a/Kemkas.Web/ViewModels/Szintlepes.cs
+++ b/Kemkas.Web/ViewModels/Szintlepes.cs
@@ -2,7 +2,7 @@ using System.Text.Json.Serialization;
namespace Kemkas.Web.ViewModels;
-public struct Szintlepes
+public class Szintlepes
{
[JsonPropertyName("osztaly")]
public string Osztaly { get; set; }