aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/Migrations
diff options
context:
space:
mode:
Diffstat (limited to 'code/api/Migrations')
-rw-r--r--code/api/Migrations/20221221214429_InitialYay.Designer.cs418
-rw-r--r--code/api/Migrations/20221221214429_InitialYay.cs201
-rw-r--r--code/api/Migrations/AppDatabaseModelSnapshot.cs415
3 files changed, 1034 insertions, 0 deletions
diff --git a/code/api/Migrations/20221221214429_InitialYay.Designer.cs b/code/api/Migrations/20221221214429_InitialYay.Designer.cs
new file mode 100644
index 0000000..e368363
--- /dev/null
+++ b/code/api/Migrations/20221221214429_InitialYay.Designer.cs
@@ -0,0 +1,418 @@
+// <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("20221221214429_InitialYay")]
+ partial class InitialYay
+ {
+ /// <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")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("mime_type");
+
+ b.Property<string>("Name")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("name");
+
+ b.Property<Guid?>("OwningUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("owning_user_id");
+
+ b.HasKey("Id")
+ .HasName("pk_folders");
+
+ 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")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("last_name");
+
+ b.Property<Guid?>("OwningUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("owning_user_id");
+
+ b.Property<string>("Password")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .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.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/20221221214429_InitialYay.cs b/code/api/Migrations/20221221214429_InitialYay.cs
new file mode 100644
index 0000000..122e3d9
--- /dev/null
+++ b/code/api/Migrations/20221221214429_InitialYay.cs
@@ -0,0 +1,201 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace I2R.Storage.Api.Migrations
+{
+ /// <inheritdoc />
+ public partial class InitialYay : Migration
+ {
+ /// <inheritdoc />
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "folders",
+ columns: table => new
+ {
+ id = table.Column<Guid>(type: "uuid", nullable: false),
+ name = table.Column<string>(type: "text", nullable: false),
+ isencrypted = table.Column<bool>(name: "is_encrypted", type: "boolean", nullable: false),
+ isbinned = table.Column<bool>(name: "is_binned", type: "boolean", nullable: false),
+ createdat = table.Column<DateTime>(name: "created_at", type: "timestamp with time zone", nullable: false),
+ lastmodifiedat = table.Column<DateTime>(name: "last_modified_at", type: "timestamp with time zone", nullable: true),
+ lastdeletedat = table.Column<DateTime>(name: "last_deleted_at", type: "timestamp with time zone", nullable: true),
+ owninguserid = table.Column<Guid>(name: "owning_user_id", type: "uuid", nullable: true),
+ lastmodifiedby = table.Column<Guid>(name: "last_modified_by", type: "uuid", nullable: true),
+ lastdeletedby = table.Column<Guid>(name: "last_deleted_by", type: "uuid", nullable: true),
+ createdby = table.Column<Guid>(name: "created_by", type: "uuid", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_folders", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "permission_groups",
+ columns: table => new
+ {
+ id = table.Column<Guid>(type: "uuid", nullable: false),
+ name = table.Column<string>(type: "text", nullable: false),
+ description = table.Column<string>(type: "text", nullable: false),
+ createdat = table.Column<DateTime>(name: "created_at", type: "timestamp with time zone", nullable: false),
+ lastmodifiedat = table.Column<DateTime>(name: "last_modified_at", type: "timestamp with time zone", nullable: true),
+ lastdeletedat = table.Column<DateTime>(name: "last_deleted_at", type: "timestamp with time zone", nullable: true),
+ owninguserid = table.Column<Guid>(name: "owning_user_id", type: "uuid", nullable: true),
+ lastmodifiedby = table.Column<Guid>(name: "last_modified_by", type: "uuid", nullable: true),
+ lastdeletedby = table.Column<Guid>(name: "last_deleted_by", type: "uuid", nullable: true),
+ createdby = table.Column<Guid>(name: "created_by", type: "uuid", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_permission_groups", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "files",
+ columns: table => new
+ {
+ id = table.Column<Guid>(type: "uuid", nullable: false),
+ name = table.Column<string>(type: "text", nullable: false),
+ mimetype = table.Column<string>(name: "mime_type", type: "text", nullable: false),
+ sizeinbytes = table.Column<long>(name: "size_in_bytes", type: "bigint", nullable: false),
+ folderid = table.Column<Guid>(name: "folder_id", type: "uuid", nullable: false),
+ isencrypted = table.Column<bool>(name: "is_encrypted", type: "boolean", nullable: false),
+ isbinned = table.Column<bool>(name: "is_binned", type: "boolean", nullable: false),
+ createdat = table.Column<DateTime>(name: "created_at", type: "timestamp with time zone", nullable: false),
+ lastmodifiedat = table.Column<DateTime>(name: "last_modified_at", type: "timestamp with time zone", nullable: true),
+ lastdeletedat = table.Column<DateTime>(name: "last_deleted_at", type: "timestamp with time zone", nullable: true),
+ owninguserid = table.Column<Guid>(name: "owning_user_id", type: "uuid", nullable: true),
+ lastmodifiedby = table.Column<Guid>(name: "last_modified_by", type: "uuid", nullable: true),
+ lastdeletedby = table.Column<Guid>(name: "last_deleted_by", type: "uuid", nullable: true),
+ createdby = table.Column<Guid>(name: "created_by", type: "uuid", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_files", x => x.id);
+ table.ForeignKey(
+ name: "fk_files_folders_folder_id",
+ column: x => x.folderid,
+ principalTable: "folders",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "users",
+ columns: table => new
+ {
+ id = table.Column<Guid>(type: "uuid", nullable: false),
+ username = table.Column<string>(type: "text", nullable: false),
+ password = table.Column<string>(type: "text", nullable: false),
+ role = table.Column<int>(type: "integer", nullable: false),
+ firstname = table.Column<string>(name: "first_name", type: "text", nullable: false),
+ lastname = table.Column<string>(name: "last_name", type: "text", nullable: false),
+ lastloggedon = table.Column<DateTime>(name: "last_logged_on", type: "timestamp with time zone", nullable: true),
+ permissiongroupid = table.Column<Guid>(name: "permission_group_id", type: "uuid", nullable: true),
+ createdat = table.Column<DateTime>(name: "created_at", type: "timestamp with time zone", nullable: false),
+ lastmodifiedat = table.Column<DateTime>(name: "last_modified_at", type: "timestamp with time zone", nullable: true),
+ lastdeletedat = table.Column<DateTime>(name: "last_deleted_at", type: "timestamp with time zone", nullable: true),
+ owninguserid = table.Column<Guid>(name: "owning_user_id", type: "uuid", nullable: true),
+ lastmodifiedby = table.Column<Guid>(name: "last_modified_by", type: "uuid", nullable: true),
+ lastdeletedby = table.Column<Guid>(name: "last_deleted_by", type: "uuid", nullable: true),
+ createdby = table.Column<Guid>(name: "created_by", type: "uuid", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_users", x => x.id);
+ table.ForeignKey(
+ name: "fk_users_permission_groups_permission_group_id",
+ column: x => x.permissiongroupid,
+ principalTable: "permission_groups",
+ principalColumn: "id");
+ });
+
+ migrationBuilder.CreateTable(
+ name: "permissions",
+ columns: table => new
+ {
+ id = table.Column<Guid>(type: "uuid", nullable: false),
+ contentid = table.Column<Guid>(name: "content_id", type: "uuid", nullable: false),
+ isfile = table.Column<bool>(name: "is_file", type: "boolean", nullable: false),
+ canread = table.Column<bool>(name: "can_read", type: "boolean", nullable: false),
+ canwrite = table.Column<bool>(name: "can_write", type: "boolean", nullable: false),
+ groupid = table.Column<Guid>(name: "group_id", type: "uuid", nullable: false),
+ fileid = table.Column<Guid>(name: "file_id", type: "uuid", nullable: true),
+ folderid = table.Column<Guid>(name: "folder_id", type: "uuid", nullable: true),
+ createdat = table.Column<DateTime>(name: "created_at", type: "timestamp with time zone", nullable: false),
+ lastmodifiedat = table.Column<DateTime>(name: "last_modified_at", type: "timestamp with time zone", nullable: true),
+ lastdeletedat = table.Column<DateTime>(name: "last_deleted_at", type: "timestamp with time zone", nullable: true),
+ owninguserid = table.Column<Guid>(name: "owning_user_id", type: "uuid", nullable: true),
+ lastmodifiedby = table.Column<Guid>(name: "last_modified_by", type: "uuid", nullable: true),
+ lastdeletedby = table.Column<Guid>(name: "last_deleted_by", type: "uuid", nullable: true),
+ createdby = table.Column<Guid>(name: "created_by", type: "uuid", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_permissions", x => x.id);
+ table.ForeignKey(
+ name: "fk_permissions_files_file_id",
+ column: x => x.fileid,
+ principalTable: "files",
+ principalColumn: "id");
+ table.ForeignKey(
+ name: "fk_permissions_folders_folder_id",
+ column: x => x.folderid,
+ principalTable: "folders",
+ principalColumn: "id");
+ table.ForeignKey(
+ name: "fk_permissions_permission_groups_group_id",
+ column: x => x.groupid,
+ principalTable: "permission_groups",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "ix_files_folder_id",
+ table: "files",
+ column: "folder_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_permissions_file_id",
+ table: "permissions",
+ column: "file_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_permissions_folder_id",
+ table: "permissions",
+ column: "folder_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_permissions_group_id",
+ table: "permissions",
+ column: "group_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_users_permission_group_id",
+ table: "users",
+ column: "permission_group_id");
+ }
+
+ /// <inheritdoc />
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "permissions");
+
+ migrationBuilder.DropTable(
+ name: "users");
+
+ migrationBuilder.DropTable(
+ name: "files");
+
+ migrationBuilder.DropTable(
+ name: "permission_groups");
+
+ migrationBuilder.DropTable(
+ name: "folders");
+ }
+ }
+}
diff --git a/code/api/Migrations/AppDatabaseModelSnapshot.cs b/code/api/Migrations/AppDatabaseModelSnapshot.cs
new file mode 100644
index 0000000..9f0ab71
--- /dev/null
+++ b/code/api/Migrations/AppDatabaseModelSnapshot.cs
@@ -0,0 +1,415 @@
+// <auto-generated />
+using System;
+using I2R.Storage.Api.Database;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace I2R.Storage.Api.Migrations
+{
+ [DbContext(typeof(AppDatabase))]
+ partial class AppDatabaseModelSnapshot : ModelSnapshot
+ {
+ protected override void BuildModel(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")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("mime_type");
+
+ b.Property<string>("Name")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("name");
+
+ b.Property<Guid?>("OwningUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("owning_user_id");
+
+ b.HasKey("Id")
+ .HasName("pk_folders");
+
+ 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")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .HasColumnType("text")
+ .HasColumnName("last_name");
+
+ b.Property<Guid?>("OwningUserId")
+ .HasColumnType("uuid")
+ .HasColumnName("owning_user_id");
+
+ b.Property<string>("Password")
+ .IsRequired()
+ .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")
+ .IsRequired()
+ .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.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
+ }
+ }
+}