aboutsummaryrefslogtreecommitdiffstats
path: root/code/api
diff options
context:
space:
mode:
Diffstat (limited to 'code/api')
-rw-r--r--code/api/Database/AppDatabase.cs1
-rw-r--r--code/api/Database/Models/Folder.cs2
-rw-r--r--code/api/Endpoints/Storage/TreeEndpoint.cs9
-rw-r--r--code/api/Migrations/20221222153132_FolderParent.Designer.cs426
-rw-r--r--code/api/Migrations/20221222153132_FolderParent.cs211
-rw-r--r--code/api/Migrations/AppDatabaseModelSnapshot.cs26
6 files changed, 666 insertions, 9 deletions
diff --git a/code/api/Database/AppDatabase.cs b/code/api/Database/AppDatabase.cs
index 722a3e0..eac20b3 100644
--- a/code/api/Database/AppDatabase.cs
+++ b/code/api/Database/AppDatabase.cs
@@ -21,6 +21,7 @@ public class AppDatabase : DbContext
modelBuilder.Entity<Folder>(e => {
e.HasMany(c => c.Files);
e.HasMany(c => c.Permissions);
+ e.HasOne(c => c.Parent);
e.ToTable("folders");
});
modelBuilder.Entity<PermissionGroup>(e => {
diff --git a/code/api/Database/Models/Folder.cs b/code/api/Database/Models/Folder.cs
index ecfed1e..7a05f45 100644
--- a/code/api/Database/Models/Folder.cs
+++ b/code/api/Database/Models/Folder.cs
@@ -3,6 +3,8 @@ namespace I2R.Storage.Api.Database.Models;
public class Folder : Base
{
public string Name { get; set; }
+ public Folder Parent { get; set; }
+ public Guid? ParentId { get; set; }
public List<File> Files { get; set; }
public List<Permission> Permissions { get; set; }
public bool IsEncrypted { get; set; }
diff --git a/code/api/Endpoints/Storage/TreeEndpoint.cs b/code/api/Endpoints/Storage/TreeEndpoint.cs
new file mode 100644
index 0000000..857a570
--- /dev/null
+++ b/code/api/Endpoints/Storage/TreeEndpoint.cs
@@ -0,0 +1,9 @@
+namespace I2R.Storage.Api.Endpoints.Storage;
+
+public class TreeEndpoint : EndpointBase
+{
+ [HttpGet("~/storage/tree")]
+ public async Task<ActionResult> Handle(Guid parent = default) {
+ return Ok();
+ }
+} \ No newline at end of file
diff --git a/code/api/Migrations/20221222153132_FolderParent.Designer.cs b/code/api/Migrations/20221222153132_FolderParent.Designer.cs
new file mode 100644
index 0000000..ba2c456
--- /dev/null
+++ b/code/api/Migrations/20221222153132_FolderParent.Designer.cs
@@ -0,0 +1,426 @@
+// <auto-generated />
+using System;
+using I2R.Storage.Api.Database;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace I2R.Storage.Api.Migrations
+{
+ [DbContext(typeof(AppDatabase))]
+ [Migration("20221222153132_FolderParent")]
+ partial class FolderParent
+ {
+ /// <inheritdoc />
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.1")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.File", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property<DateTime>("CreatedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("created_at");
+
+ b.Property<Guid?>("CreatedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("created_by");
+
+ b.Property<Guid>("FolderId")
+ .HasColumnType("uuid")
+ .HasColumnName("folder_id");
+
+ b.Property<bool>("IsBinned")
+ .HasColumnType("boolean")
+ .HasColumnName("is_binned");
+
+ b.Property<bool>("IsEncrypted")
+ .HasColumnType("boolean")
+ .HasColumnName("is_encrypted");
+
+ b.Property<DateTime?>("LastDeletedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_deleted_at");
+
+ b.Property<Guid?>("LastDeletedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_deleted_by");
+
+ b.Property<DateTime?>("LastModifiedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_modified_at");
+
+ b.Property<Guid?>("LastModifiedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_modified_by");
+
+ b.Property<string>("MimeType")
+ .HasColumnType("text")
+ .HasColumnName("mime_type");
+
+ b.Property<string>("Name")
+ .HasColumnType("text")
+ .HasColumnName("name");
+
+ b.Property<Guid?>("OwningUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("owning_user_id");
+
+ b.Property<long>("SizeInBytes")
+ .HasColumnType("bigint")
+ .HasColumnName("size_in_bytes");
+
+ b.HasKey("Id")
+ .HasName("pk_files");
+
+ b.HasIndex("FolderId")
+ .HasDatabaseName("ix_files_folder_id");
+
+ b.ToTable("files", (string)null);
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.Folder", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property<DateTime>("CreatedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("created_at");
+
+ b.Property<Guid?>("CreatedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("created_by");
+
+ b.Property<bool>("IsBinned")
+ .HasColumnType("boolean")
+ .HasColumnName("is_binned");
+
+ b.Property<bool>("IsEncrypted")
+ .HasColumnType("boolean")
+ .HasColumnName("is_encrypted");
+
+ b.Property<DateTime?>("LastDeletedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_deleted_at");
+
+ b.Property<Guid?>("LastDeletedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_deleted_by");
+
+ b.Property<DateTime?>("LastModifiedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_modified_at");
+
+ b.Property<Guid?>("LastModifiedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_modified_by");
+
+ b.Property<string>("Name")
+ .HasColumnType("text")
+ .HasColumnName("name");
+
+ b.Property<Guid?>("OwningUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("owning_user_id");
+
+ b.Property<Guid?>("ParentId")
+ .HasColumnType("uuid")
+ .HasColumnName("parent_id");
+
+ b.HasKey("Id")
+ .HasName("pk_folders");
+
+ b.HasIndex("ParentId")
+ .HasDatabaseName("ix_folders_parent_id");
+
+ b.ToTable("folders", (string)null);
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.Permission", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property<bool>("CanRead")
+ .HasColumnType("boolean")
+ .HasColumnName("can_read");
+
+ b.Property<bool>("CanWrite")
+ .HasColumnType("boolean")
+ .HasColumnName("can_write");
+
+ b.Property<Guid>("ContentId")
+ .HasColumnType("uuid")
+ .HasColumnName("content_id");
+
+ b.Property<DateTime>("CreatedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("created_at");
+
+ b.Property<Guid?>("CreatedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("created_by");
+
+ b.Property<Guid?>("FileId")
+ .HasColumnType("uuid")
+ .HasColumnName("file_id");
+
+ b.Property<Guid?>("FolderId")
+ .HasColumnType("uuid")
+ .HasColumnName("folder_id");
+
+ b.Property<Guid>("GroupId")
+ .HasColumnType("uuid")
+ .HasColumnName("group_id");
+
+ b.Property<bool>("IsFile")
+ .HasColumnType("boolean")
+ .HasColumnName("is_file");
+
+ b.Property<DateTime?>("LastDeletedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_deleted_at");
+
+ b.Property<Guid?>("LastDeletedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_deleted_by");
+
+ b.Property<DateTime?>("LastModifiedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_modified_at");
+
+ b.Property<Guid?>("LastModifiedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_modified_by");
+
+ b.Property<Guid?>("OwningUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("owning_user_id");
+
+ b.HasKey("Id")
+ .HasName("pk_permissions");
+
+ b.HasIndex("FileId")
+ .HasDatabaseName("ix_permissions_file_id");
+
+ b.HasIndex("FolderId")
+ .HasDatabaseName("ix_permissions_folder_id");
+
+ b.HasIndex("GroupId")
+ .HasDatabaseName("ix_permissions_group_id");
+
+ b.ToTable("permissions", (string)null);
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.PermissionGroup", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property<DateTime>("CreatedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("created_at");
+
+ b.Property<Guid?>("CreatedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("created_by");
+
+ b.Property<string>("Description")
+ .HasColumnType("text")
+ .HasColumnName("description");
+
+ b.Property<DateTime?>("LastDeletedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_deleted_at");
+
+ b.Property<Guid?>("LastDeletedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_deleted_by");
+
+ b.Property<DateTime?>("LastModifiedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_modified_at");
+
+ b.Property<Guid?>("LastModifiedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_modified_by");
+
+ b.Property<string>("Name")
+ .HasColumnType("text")
+ .HasColumnName("name");
+
+ b.Property<Guid?>("OwningUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("owning_user_id");
+
+ b.HasKey("Id")
+ .HasName("pk_permission_groups");
+
+ b.ToTable("permission_groups", (string)null);
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.User", b =>
+ {
+ b.Property<Guid>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uuid")
+ .HasColumnName("id");
+
+ b.Property<DateTime>("CreatedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("created_at");
+
+ b.Property<Guid?>("CreatedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("created_by");
+
+ b.Property<string>("FirstName")
+ .HasColumnType("text")
+ .HasColumnName("first_name");
+
+ b.Property<DateTime?>("LastDeletedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_deleted_at");
+
+ b.Property<Guid?>("LastDeletedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_deleted_by");
+
+ b.Property<DateTime?>("LastLoggedOn")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_logged_on");
+
+ b.Property<DateTime?>("LastModifiedAt")
+ .HasColumnType("timestamp with time zone")
+ .HasColumnName("last_modified_at");
+
+ b.Property<Guid?>("LastModifiedBy")
+ .HasColumnType("uuid")
+ .HasColumnName("last_modified_by");
+
+ b.Property<string>("LastName")
+ .HasColumnType("text")
+ .HasColumnName("last_name");
+
+ b.Property<Guid?>("OwningUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("owning_user_id");
+
+ b.Property<string>("Password")
+ .HasColumnType("text")
+ .HasColumnName("password");
+
+ b.Property<Guid?>("PermissionGroupId")
+ .HasColumnType("uuid")
+ .HasColumnName("permission_group_id");
+
+ b.Property<int>("Role")
+ .HasColumnType("integer")
+ .HasColumnName("role");
+
+ b.Property<string>("Username")
+ .HasColumnType("text")
+ .HasColumnName("username");
+
+ b.HasKey("Id")
+ .HasName("pk_users");
+
+ b.HasIndex("PermissionGroupId")
+ .HasDatabaseName("ix_users_permission_group_id");
+
+ b.ToTable("users", (string)null);
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.File", b =>
+ {
+ b.HasOne("I2R.Storage.Api.Database.Models.Folder", "Folder")
+ .WithMany("Files")
+ .HasForeignKey("FolderId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_files_folders_folder_id");
+
+ b.Navigation("Folder");
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.Folder", b =>
+ {
+ b.HasOne("I2R.Storage.Api.Database.Models.Folder", "Parent")
+ .WithMany()
+ .HasForeignKey("ParentId")
+ .HasConstraintName("fk_folders_folders_parent_id");
+
+ b.Navigation("Parent");
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.Permission", b =>
+ {
+ b.HasOne("I2R.Storage.Api.Database.Models.File", null)
+ .WithMany("Permissions")
+ .HasForeignKey("FileId")
+ .HasConstraintName("fk_permissions_files_file_id");
+
+ b.HasOne("I2R.Storage.Api.Database.Models.Folder", null)
+ .WithMany("Permissions")
+ .HasForeignKey("FolderId")
+ .HasConstraintName("fk_permissions_folders_folder_id");
+
+ b.HasOne("I2R.Storage.Api.Database.Models.PermissionGroup", "Group")
+ .WithMany()
+ .HasForeignKey("GroupId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired()
+ .HasConstraintName("fk_permissions_permission_groups_group_id");
+
+ b.Navigation("Group");
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.User", b =>
+ {
+ b.HasOne("I2R.Storage.Api.Database.Models.PermissionGroup", null)
+ .WithMany("Users")
+ .HasForeignKey("PermissionGroupId")
+ .HasConstraintName("fk_users_permission_groups_permission_group_id");
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.File", b =>
+ {
+ b.Navigation("Permissions");
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.Folder", b =>
+ {
+ b.Navigation("Files");
+
+ b.Navigation("Permissions");
+ });
+
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.PermissionGroup", b =>
+ {
+ b.Navigation("Users");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/code/api/Migrations/20221222153132_FolderParent.cs b/code/api/Migrations/20221222153132_FolderParent.cs
new file mode 100644
index 0000000..1525d4c
--- /dev/null
+++ b/code/api/Migrations/20221222153132_FolderParent.cs
@@ -0,0 +1,211 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace I2R.Storage.Api.Migrations
+{
+ /// <inheritdoc />
+ public partial class FolderParent : Migration
+ {
+ /// <inheritdoc />
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn<string>(
+ name: "username",
+ table: "users",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "password",
+ table: "users",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "last_name",
+ table: "users",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "first_name",
+ table: "users",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "name",
+ table: "permission_groups",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "description",
+ table: "permission_groups",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "name",
+ table: "folders",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.AddColumn<Guid>(
+ name: "parent_id",
+ table: "folders",
+ type: "uuid",
+ nullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "name",
+ table: "files",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "mime_type",
+ table: "files",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_folders_parent_id",
+ table: "folders",
+ column: "parent_id");
+
+ migrationBuilder.AddForeignKey(
+ name: "fk_folders_folders_parent_id",
+ table: "folders",
+ column: "parent_id",
+ principalTable: "folders",
+ principalColumn: "id");
+ }
+
+ /// <inheritdoc />
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropForeignKey(
+ name: "fk_folders_folders_parent_id",
+ table: "folders");
+
+ migrationBuilder.DropIndex(
+ name: "ix_folders_parent_id",
+ table: "folders");
+
+ migrationBuilder.DropColumn(
+ name: "parent_id",
+ table: "folders");
+
+ migrationBuilder.AlterColumn<string>(
+ name: "username",
+ table: "users",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "password",
+ table: "users",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "last_name",
+ table: "users",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "first_name",
+ table: "users",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "name",
+ table: "permission_groups",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "description",
+ table: "permission_groups",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "name",
+ table: "folders",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "name",
+ table: "files",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn<string>(
+ name: "mime_type",
+ table: "files",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+ }
+ }
+}
diff --git a/code/api/Migrations/AppDatabaseModelSnapshot.cs b/code/api/Migrations/AppDatabaseModelSnapshot.cs
index 9f0ab71..4d471ce 100644
--- a/code/api/Migrations/AppDatabaseModelSnapshot.cs
+++ b/code/api/Migrations/AppDatabaseModelSnapshot.cs
@@ -66,12 +66,10 @@ namespace I2R.Storage.Api.Migrations
.HasColumnName("last_modified_by");
b.Property<string>("MimeType")
- .IsRequired()
.HasColumnType("text")
.HasColumnName("mime_type");
b.Property<string>("Name")
- .IsRequired()
.HasColumnType("text")
.HasColumnName("name");
@@ -132,7 +130,6 @@ namespace I2R.Storage.Api.Migrations
.HasColumnName("last_modified_by");
b.Property<string>("Name")
- .IsRequired()
.HasColumnType("text")
.HasColumnName("name");
@@ -140,9 +137,16 @@ namespace I2R.Storage.Api.Migrations
.HasColumnType("uuid")
.HasColumnName("owning_user_id");
+ b.Property<Guid?>("ParentId")
+ .HasColumnType("uuid")
+ .HasColumnName("parent_id");
+
b.HasKey("Id")
.HasName("pk_folders");
+ b.HasIndex("ParentId")
+ .HasDatabaseName("ix_folders_parent_id");
+
b.ToTable("folders", (string)null);
});
@@ -240,7 +244,6 @@ namespace I2R.Storage.Api.Migrations
.HasColumnName("created_by");
b.Property<string>("Description")
- .IsRequired()
.HasColumnType("text")
.HasColumnName("description");
@@ -261,7 +264,6 @@ namespace I2R.Storage.Api.Migrations
.HasColumnName("last_modified_by");
b.Property<string>("Name")
- .IsRequired()
.HasColumnType("text")
.HasColumnName("name");
@@ -291,7 +293,6 @@ namespace I2R.Storage.Api.Migrations
.HasColumnName("created_by");
b.Property<string>("FirstName")
- .IsRequired()
.HasColumnType("text")
.HasColumnName("first_name");
@@ -316,7 +317,6 @@ namespace I2R.Storage.Api.Migrations
.HasColumnName("last_modified_by");
b.Property<string>("LastName")
- .IsRequired()
.HasColumnType("text")
.HasColumnName("last_name");
@@ -325,7 +325,6 @@ namespace I2R.Storage.Api.Migrations
.HasColumnName("owning_user_id");
b.Property<string>("Password")
- .IsRequired()
.HasColumnType("text")
.HasColumnName("password");
@@ -338,7 +337,6 @@ namespace I2R.Storage.Api.Migrations
.HasColumnName("role");
b.Property<string>("Username")
- .IsRequired()
.HasColumnType("text")
.HasColumnName("username");
@@ -363,6 +361,16 @@ namespace I2R.Storage.Api.Migrations
b.Navigation("Folder");
});
+ modelBuilder.Entity("I2R.Storage.Api.Database.Models.Folder", b =>
+ {
+ b.HasOne("I2R.Storage.Api.Database.Models.Folder", "Parent")
+ .WithMany()
+ .HasForeignKey("ParentId")
+ .HasConstraintName("fk_folders_folders_parent_id");
+
+ b.Navigation("Parent");
+ });
+
modelBuilder.Entity("I2R.Storage.Api.Database.Models.Permission", b =>
{
b.HasOne("I2R.Storage.Api.Database.Models.File", null)