diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-12-22 16:31:58 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-12-22 16:32:07 +0100 |
| commit | 7b715eb1883c9caf7d4b5143b8f7720dd663acd8 (patch) | |
| tree | e593ddcd76c769f5cf430c9e76e7c55804bd90d3 /code/api/Migrations | |
| parent | 58ef5833b3f77f321c587dd86448c888029016ce (diff) | |
| download | storage-7b715eb1883c9caf7d4b5143b8f7720dd663acd8.tar.xz storage-7b715eb1883c9caf7d4b5143b8f7720dd663acd8.zip | |
feat: Add folder parent
Diffstat (limited to 'code/api/Migrations')
| -rw-r--r-- | code/api/Migrations/20221222153132_FolderParent.Designer.cs | 426 | ||||
| -rw-r--r-- | code/api/Migrations/20221222153132_FolderParent.cs | 211 | ||||
| -rw-r--r-- | code/api/Migrations/AppDatabaseModelSnapshot.cs | 26 |
3 files changed, 654 insertions, 9 deletions
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) |
