diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-12-21 23:37:23 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-12-21 23:37:23 +0100 |
| commit | 82ade3c31fb17b662feec59e9e654ceb66edbb7a (patch) | |
| tree | 26443c41c55d2cd2ae46fdd0d663aca84b779ffe /code/api/Migrations | |
| parent | e60703aadca7d423c0fbfb189d5ef439fc1df072 (diff) | |
| download | storage-82ade3c31fb17b662feec59e9e654ceb66edbb7a.tar.xz storage-82ade3c31fb17b662feec59e9e654ceb66edbb7a.zip | |
feat: Add initial schema and start login
Diffstat (limited to 'code/api/Migrations')
| -rw-r--r-- | code/api/Migrations/20221221214429_InitialYay.Designer.cs | 418 | ||||
| -rw-r--r-- | code/api/Migrations/20221221214429_InitialYay.cs | 201 | ||||
| -rw-r--r-- | code/api/Migrations/AppDatabaseModelSnapshot.cs | 415 |
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 + } + } +} |
