diff --git a/ApiEfCoreLibrary/Migrations/20251014092526_EditingLoginEntityForRole.Designer.cs b/ApiEfCoreLibrary/Migrations/20251014092526_EditingLoginEntityForRole.Designer.cs
new file mode 100644
index 0000000..3287c33
--- /dev/null
+++ b/ApiEfCoreLibrary/Migrations/20251014092526_EditingLoginEntityForRole.Designer.cs
@@ -0,0 +1,223 @@
+//
+using System;
+using ApiEfCoreLibrary;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace ApiEfCoreLibrary.Migrations
+{
+ [DbContext(typeof(LibraryDbContext))]
+ [Migration("20251014092526_EditingLoginEntityForRole")]
+ partial class EditingLoginEntityForRole
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.20")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("ApiEfCoreLibrary.Models.Author", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Authors");
+ });
+
+ modelBuilder.Entity("ApiEfCoreLibrary.Models.Book", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("AuthorId")
+ .HasColumnType("int");
+
+ b.Property("Isbn")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("ReleaseYear")
+ .HasColumnType("int");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AuthorId");
+
+ b.ToTable("Books");
+ });
+
+ modelBuilder.Entity("ApiEfCoreLibrary.Models.Loan", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("BookId")
+ .HasColumnType("int");
+
+ b.Property("Date")
+ .HasColumnType("date");
+
+ b.Property("EffectiveReturningDate")
+ .HasColumnType("date");
+
+ b.Property("PlannedReturningDate")
+ .HasColumnType("date");
+
+ b.Property("UserId")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("BookId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("Loans");
+ });
+
+ modelBuilder.Entity("ApiEfCoreLibrary.Models.Login", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("FullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Role")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("Salt")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Username")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Logins");
+ });
+
+ modelBuilder.Entity("ApiEfCoreLibrary.Models.User", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("BirthDate")
+ .HasColumnType("date");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Users");
+ });
+
+ modelBuilder.Entity("ApiEfCoreLibrary.Models.Book", b =>
+ {
+ b.HasOne("ApiEfCoreLibrary.Models.Author", "Author")
+ .WithMany("Books")
+ .HasForeignKey("AuthorId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Author");
+ });
+
+ modelBuilder.Entity("ApiEfCoreLibrary.Models.Loan", b =>
+ {
+ b.HasOne("ApiEfCoreLibrary.Models.Book", "Book")
+ .WithMany()
+ .HasForeignKey("BookId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ApiEfCoreLibrary.Models.User", "User")
+ .WithMany("Loans")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Book");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("ApiEfCoreLibrary.Models.Author", b =>
+ {
+ b.Navigation("Books");
+ });
+
+ modelBuilder.Entity("ApiEfCoreLibrary.Models.User", b =>
+ {
+ b.Navigation("Loans");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/ApiEfCoreLibrary/Migrations/20251014092526_EditingLoginEntityForRole.cs b/ApiEfCoreLibrary/Migrations/20251014092526_EditingLoginEntityForRole.cs
new file mode 100644
index 0000000..b0391c9
--- /dev/null
+++ b/ApiEfCoreLibrary/Migrations/20251014092526_EditingLoginEntityForRole.cs
@@ -0,0 +1,30 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace ApiEfCoreLibrary.Migrations
+{
+ ///
+ public partial class EditingLoginEntityForRole : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "Role",
+ table: "Logins",
+ type: "nvarchar(100)",
+ maxLength: 100,
+ nullable: false,
+ defaultValue: "");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "Role",
+ table: "Logins");
+ }
+ }
+}
diff --git a/ApiEfCoreLibrary/Migrations/LibraryDbContextModelSnapshot.cs b/ApiEfCoreLibrary/Migrations/LibraryDbContextModelSnapshot.cs
index 2b11797..55ec7b6 100644
--- a/ApiEfCoreLibrary/Migrations/LibraryDbContextModelSnapshot.cs
+++ b/ApiEfCoreLibrary/Migrations/LibraryDbContextModelSnapshot.cs
@@ -125,6 +125,11 @@ namespace ApiEfCoreLibrary.Migrations
.IsRequired()
.HasColumnType("nvarchar(max)");
+ b.Property("Role")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
b.Property("Salt")
.IsRequired()
.HasColumnType("nvarchar(max)");
diff --git a/ApiEfCoreLibrary/Models/Login.cs b/ApiEfCoreLibrary/Models/Login.cs
index 6706108..76b7c19 100644
--- a/ApiEfCoreLibrary/Models/Login.cs
+++ b/ApiEfCoreLibrary/Models/Login.cs
@@ -8,4 +8,5 @@ public class Login
[Required, MaxLength(200)] public string? FullName { get; set; }
[Required, Length(60, 60)] public string? Password { get; set; }
[Required, Length(24, 24)] public string? Salt { get; set; }
+ [Required, MaxLength(100)] public string? Role { get; set; }
}
\ No newline at end of file