// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using MyOffice.DbContext; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace MyOffice.Migrations.Postgres.Migrations { [DbContext(typeof(AppDbContext))] [Migration("20231217185452_acc_access_unique")] partial class accaccessunique { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("Npgsql:CollationDefinition:my_ci_collation", "en-u-ks-primary,en-u-ks-primary,icu,False") .HasAnnotation("ProductVersion", "7.0.0") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("MyOffice.Data.Models.Accounts.Account", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("CurrencyGlobalId") .IsRequired() .HasColumnType("text"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("OwnerId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("CurrencyGlobalId"); b.HasIndex("OwnerId"); b.ToTable("Accounts"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.AccountAccess", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AccountId") .HasColumnType("uuid"); b.Property("IsAllowManage") .HasColumnType("boolean"); b.Property("IsAllowRead") .HasColumnType("boolean"); b.Property("IsAllowWrite") .HasColumnType("boolean"); b.Property("Name") .HasColumnType("text"); b.Property("OwnerId") .HasColumnType("uuid"); b.Property("Type") .IsRequired() .HasColumnType("text"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("OwnerId"); b.HasIndex("UserId"); b.HasIndex("AccountId", "OwnerId") .IsUnique(); b.HasIndex("AccountId", "UserId") .IsUnique(); b.ToTable("AccountAccesses"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.AccountAccessInvite", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("AcceptedOn") .HasColumnType("timestamp with time zone"); b.Property("AccountId") .HasColumnType("uuid"); b.Property("CreatedOn") .HasColumnType("timestamp with time zone"); b.Property("Email") .IsRequired() .HasColumnType("text"); b.Property("IsAllowWrite") .HasColumnType("boolean"); b.Property("RejectedOn") .HasColumnType("timestamp with time zone"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("AccountId"); b.HasIndex("UserId"); b.ToTable("AccountAccessInvites"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.AccountAccountCategory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AccountId") .HasColumnType("uuid"); b.Property("CategoryId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("CategoryId"); b.HasIndex("AccountId", "CategoryId") .IsUnique(); b.ToTable("AccountAccountCategories"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.AccountCategory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("AccountCategories"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.Motion", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("AccountId") .HasColumnType("uuid"); b.Property("AmountMinus") .HasPrecision(18, 6) .HasColumnType("numeric(18,6)"); b.Property("AmountPlus") .HasPrecision(18, 6) .HasColumnType("numeric(18,6)"); b.Property("CreatedOn") .HasColumnType("timestamp with time zone"); b.Property("DateTime") .HasColumnType("timestamp with time zone"); b.Property("DeletedOn") .HasColumnType("timestamp with time zone"); b.Property("Description") .HasColumnType("text"); b.Property("ItemId") .HasColumnType("integer"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("AccountId"); b.HasIndex("ItemId"); b.HasIndex("UserId"); b.ToTable("Motions"); }); modelBuilder.Entity("MyOffice.Data.Models.Currencies.Currency", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("CurrencyGlobalId") .IsRequired() .HasColumnType("text"); b.Property("CurrentRateId") .HasColumnType("integer"); b.Property("IsPrimary") .HasColumnType("boolean"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("ShortName") .IsRequired() .HasColumnType("text"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("CurrencyGlobalId"); b.HasIndex("CurrentRateId"); b.HasIndex("UserId"); b.ToTable("Currencies"); }); modelBuilder.Entity("MyOffice.Data.Models.Currencies.CurrencyGlobal", b => { b.Property("Id") .HasColumnType("text"); b.Property("DefaultQuantity") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("Symbol") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.ToTable("CurrencyGlobals"); }); modelBuilder.Entity("MyOffice.Data.Models.Currencies.CurrencyRate", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CurrencyId") .HasColumnType("uuid"); b.Property("DateTime") .HasColumnType("timestamp with time zone"); b.Property("Quantity") .HasColumnType("integer"); b.Property("Rate") .HasColumnType("numeric"); b.HasKey("Id"); b.HasIndex("CurrencyId"); b.ToTable("CurrencyRates"); }); modelBuilder.Entity("MyOffice.Data.Models.Items.Item", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CategoryId") .HasColumnType("uuid"); b.Property("ItemGlobalId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("CategoryId"); b.HasIndex("ItemGlobalId"); b.ToTable("Items"); }); modelBuilder.Entity("MyOffice.Data.Models.Items.ItemCategory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("IsInternal") .HasColumnType("boolean"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("ItemCategories"); }); modelBuilder.Entity("MyOffice.Data.Models.Items.ItemGlobal", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.ToTable("ItemGlobals"); }); modelBuilder.Entity("MyOffice.Data.Models.Users.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("CurrencyId") .IsRequired() .HasColumnType("text"); b.Property("Email") .IsRequired() .HasColumnType("text") .UseCollation("my_ci_collation"); b.Property("FirstName") .HasColumnType("text"); b.Property("FullName") .HasColumnType("text"); b.Property("IsEmailConfirmed") .HasColumnType("boolean"); b.Property("LastName") .HasColumnType("text"); b.Property("PasswordHash") .IsRequired() .HasColumnType("text"); b.Property("Phone") .HasColumnType("text"); b.Property("UserName") .IsRequired() .HasColumnType("text") .UseCollation("my_ci_collation"); b.HasKey("Id"); b.HasIndex("CurrencyId"); b.ToTable("Users"); }); modelBuilder.Entity("MyOffice.Data.Models.Users.UserExternal", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedOn") .HasColumnType("timestamp with time zone"); b.Property("Email") .IsRequired() .HasColumnType("text") .UseCollation("my_ci_collation"); b.Property("ExternalId") .IsRequired() .HasColumnType("text"); b.Property("Provider") .IsRequired() .HasColumnType("text") .UseCollation("my_ci_collation"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("UserClaims"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.Account", b => { b.HasOne("MyOffice.Data.Models.Currencies.CurrencyGlobal", "CurrencyGlobal") .WithMany("Accounts") .HasForeignKey("CurrencyGlobalId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MyOffice.Data.Models.Users.User", "Owner") .WithMany("Accounts") .HasForeignKey("OwnerId"); b.Navigation("CurrencyGlobal"); b.Navigation("Owner"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.AccountAccess", b => { b.HasOne("MyOffice.Data.Models.Accounts.Account", "Account") .WithMany("AccessRights") .HasForeignKey("AccountId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MyOffice.Data.Models.Users.User", "Owner") .WithMany("AccountAccessOwners") .HasForeignKey("OwnerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MyOffice.Data.Models.Users.User", "User") .WithMany("AccountAccess") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Account"); b.Navigation("Owner"); b.Navigation("User"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.AccountAccessInvite", b => { b.HasOne("MyOffice.Data.Models.Accounts.Account", "Account") .WithMany("Invites") .HasForeignKey("AccountId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MyOffice.Data.Models.Users.User", "User") .WithMany("AccountAccessInvites") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Account"); b.Navigation("User"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.AccountAccountCategory", b => { b.HasOne("MyOffice.Data.Models.Accounts.Account", "Account") .WithMany("Categories") .HasForeignKey("AccountId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MyOffice.Data.Models.Accounts.AccountCategory", "Category") .WithMany("Accounts") .HasForeignKey("CategoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Account"); b.Navigation("Category"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.AccountCategory", b => { b.HasOne("MyOffice.Data.Models.Users.User", "User") .WithMany("AccountCategories") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.Motion", b => { b.HasOne("MyOffice.Data.Models.Accounts.Account", "Account") .WithMany("Motions") .HasForeignKey("AccountId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MyOffice.Data.Models.Items.Item", "Item") .WithMany("Motions") .HasForeignKey("ItemId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MyOffice.Data.Models.Users.User", null) .WithMany("AccountMotions") .HasForeignKey("UserId"); b.Navigation("Account"); b.Navigation("Item"); }); modelBuilder.Entity("MyOffice.Data.Models.Currencies.Currency", b => { b.HasOne("MyOffice.Data.Models.Currencies.CurrencyGlobal", "CurrencyGlobal") .WithMany("Currencies") .HasForeignKey("CurrencyGlobalId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MyOffice.Data.Models.Currencies.CurrencyRate", "CurrentRate") .WithMany("Currencies") .HasForeignKey("CurrentRateId"); b.HasOne("MyOffice.Data.Models.Users.User", "User") .WithMany("Currencies") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("CurrencyGlobal"); b.Navigation("CurrentRate"); b.Navigation("User"); }); modelBuilder.Entity("MyOffice.Data.Models.Currencies.CurrencyRate", b => { b.HasOne("MyOffice.Data.Models.Currencies.Currency", "Currency") .WithMany("Rates") .HasForeignKey("CurrencyId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Currency"); }); modelBuilder.Entity("MyOffice.Data.Models.Items.Item", b => { b.HasOne("MyOffice.Data.Models.Items.ItemCategory", "Category") .WithMany("Items") .HasForeignKey("CategoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("MyOffice.Data.Models.Items.ItemGlobal", "ItemGlobal") .WithMany("Items") .HasForeignKey("ItemGlobalId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Category"); b.Navigation("ItemGlobal"); }); modelBuilder.Entity("MyOffice.Data.Models.Items.ItemCategory", b => { b.HasOne("MyOffice.Data.Models.Users.User", "User") .WithMany("ItemCategories") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("MyOffice.Data.Models.Users.User", b => { b.HasOne("MyOffice.Data.Models.Currencies.CurrencyGlobal", "Currency") .WithMany() .HasForeignKey("CurrencyId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Currency"); }); modelBuilder.Entity("MyOffice.Data.Models.Users.UserExternal", b => { b.HasOne("MyOffice.Data.Models.Users.User", "User") .WithMany("UserClaims") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.Account", b => { b.Navigation("AccessRights"); b.Navigation("Categories"); b.Navigation("Invites"); b.Navigation("Motions"); }); modelBuilder.Entity("MyOffice.Data.Models.Accounts.AccountCategory", b => { b.Navigation("Accounts"); }); modelBuilder.Entity("MyOffice.Data.Models.Currencies.Currency", b => { b.Navigation("Rates"); }); modelBuilder.Entity("MyOffice.Data.Models.Currencies.CurrencyGlobal", b => { b.Navigation("Accounts"); b.Navigation("Currencies"); }); modelBuilder.Entity("MyOffice.Data.Models.Currencies.CurrencyRate", b => { b.Navigation("Currencies"); }); modelBuilder.Entity("MyOffice.Data.Models.Items.Item", b => { b.Navigation("Motions"); }); modelBuilder.Entity("MyOffice.Data.Models.Items.ItemCategory", b => { b.Navigation("Items"); }); modelBuilder.Entity("MyOffice.Data.Models.Items.ItemGlobal", b => { b.Navigation("Items"); }); modelBuilder.Entity("MyOffice.Data.Models.Users.User", b => { b.Navigation("AccountAccess"); b.Navigation("AccountAccessInvites"); b.Navigation("AccountAccessOwners"); b.Navigation("AccountCategories"); b.Navigation("AccountMotions"); b.Navigation("Accounts"); b.Navigation("Currencies"); b.Navigation("ItemCategories"); b.Navigation("UserClaims"); }); #pragma warning restore 612, 618 } } }