//
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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("FolderId")
.HasColumnType("uuid")
.HasColumnName("folder_id");
b.Property("IsBinned")
.HasColumnType("boolean")
.HasColumnName("is_binned");
b.Property("IsEncrypted")
.HasColumnType("boolean")
.HasColumnName("is_encrypted");
b.Property("LastDeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_deleted_at");
b.Property("LastDeletedBy")
.HasColumnType("uuid")
.HasColumnName("last_deleted_by");
b.Property("LastModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_modified_at");
b.Property("LastModifiedBy")
.HasColumnType("uuid")
.HasColumnName("last_modified_by");
b.Property("MimeType")
.HasColumnType("text")
.HasColumnName("mime_type");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("OwningUserId")
.HasColumnType("uuid")
.HasColumnName("owning_user_id");
b.Property("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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("IsBinned")
.HasColumnType("boolean")
.HasColumnName("is_binned");
b.Property("IsEncrypted")
.HasColumnType("boolean")
.HasColumnName("is_encrypted");
b.Property("LastDeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_deleted_at");
b.Property("LastDeletedBy")
.HasColumnType("uuid")
.HasColumnName("last_deleted_by");
b.Property("LastModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_modified_at");
b.Property("LastModifiedBy")
.HasColumnType("uuid")
.HasColumnName("last_modified_by");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("OwningUserId")
.HasColumnType("uuid")
.HasColumnName("owning_user_id");
b.Property("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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CanRead")
.HasColumnType("boolean")
.HasColumnName("can_read");
b.Property("CanWrite")
.HasColumnType("boolean")
.HasColumnName("can_write");
b.Property("ContentId")
.HasColumnType("uuid")
.HasColumnName("content_id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("FileId")
.HasColumnType("uuid")
.HasColumnName("file_id");
b.Property("FolderId")
.HasColumnType("uuid")
.HasColumnName("folder_id");
b.Property("GroupId")
.HasColumnType("uuid")
.HasColumnName("group_id");
b.Property("IsFile")
.HasColumnType("boolean")
.HasColumnName("is_file");
b.Property("LastDeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_deleted_at");
b.Property("LastDeletedBy")
.HasColumnType("uuid")
.HasColumnName("last_deleted_by");
b.Property("LastModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_modified_at");
b.Property("LastModifiedBy")
.HasColumnType("uuid")
.HasColumnName("last_modified_by");
b.Property("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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("Description")
.HasColumnType("text")
.HasColumnName("description");
b.Property("LastDeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_deleted_at");
b.Property("LastDeletedBy")
.HasColumnType("uuid")
.HasColumnName("last_deleted_by");
b.Property("LastModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_modified_at");
b.Property("LastModifiedBy")
.HasColumnType("uuid")
.HasColumnName("last_modified_by");
b.Property("Name")
.HasColumnType("text")
.HasColumnName("name");
b.Property("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("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid")
.HasColumnName("id");
b.Property("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property("CreatedBy")
.HasColumnType("uuid")
.HasColumnName("created_by");
b.Property("FirstName")
.HasColumnType("text")
.HasColumnName("first_name");
b.Property("LastDeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_deleted_at");
b.Property("LastDeletedBy")
.HasColumnType("uuid")
.HasColumnName("last_deleted_by");
b.Property("LastLoggedOn")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_logged_on");
b.Property("LastModifiedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_modified_at");
b.Property("LastModifiedBy")
.HasColumnType("uuid")
.HasColumnName("last_modified_by");
b.Property("LastName")
.HasColumnType("text")
.HasColumnName("last_name");
b.Property("OwningUserId")
.HasColumnType("uuid")
.HasColumnName("owning_user_id");
b.Property("Password")
.HasColumnType("text")
.HasColumnName("password");
b.Property("PermissionGroupId")
.HasColumnType("uuid")
.HasColumnName("permission_group_id");
b.Property("Role")
.HasColumnType("integer")
.HasColumnName("role");
b.Property("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
}
}
}