// using System; using HrynCo.NotificationService.DAL.EF; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace HrynCo.NotificationService.DAL.EF.Migrations { [DbContext(typeof(NotificationDbContext))] partial class NotificationDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "10.0.7") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailChannelEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("DailyLimit") .HasColumnType("integer") .HasColumnName("daily_limit"); b.Property("EmailChannelType") .HasColumnType("integer") .HasColumnName("provider_type"); b.Property("IsActive") .HasColumnType("boolean") .HasColumnName("is_active"); b.Property("MonthlyLimit") .HasColumnType("integer") .HasColumnName("monthly_limit"); b.Property("Priority") .HasColumnType("integer") .HasColumnName("priority"); b.Property("ServiceId") .HasColumnType("uuid") .HasColumnName("service_id"); b.Property("SettingsJson") .IsRequired() .HasColumnType("jsonb") .HasColumnName("settings"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.Property("WarnThresholdPercent") .HasColumnType("integer") .HasColumnName("warn_threshold_percent"); b.HasKey("Id"); b.HasIndex("ServiceId", "Priority"); b.ToTable("email_channels", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailChannelUsageEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("Date") .HasColumnType("date") .HasColumnName("date"); b.Property("ProviderId") .HasColumnType("uuid") .HasColumnName("provider_id"); b.Property("SentCount") .HasColumnType("integer") .HasColumnName("sent_count"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.HasKey("Id"); b.HasIndex("ProviderId", "Date") .IsUnique(); b.ToTable("email_channel_usage", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailTemplateDefinitionEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("Key") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("key"); b.Property("Revision") .IsConcurrencyToken() .HasColumnType("uuid") .HasColumnName("revision"); b.Property("ServiceId") .HasColumnType("uuid") .HasColumnName("service_id"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.HasKey("Id"); b.HasIndex("ServiceId", "Key") .IsUnique(); b.ToTable("email_template_definitions", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailTemplateEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("DefinitionId") .HasColumnType("uuid") .HasColumnName("definition_id"); b.Property("HtmlBody") .IsRequired() .HasColumnType("text") .HasColumnName("html_body"); b.Property("ServiceId") .HasColumnType("uuid") .HasColumnName("service_id"); b.Property("ServiceLanguageId") .HasColumnType("uuid") .HasColumnName("service_language_id"); b.Property("Subject") .IsRequired() .HasColumnType("text") .HasColumnName("subject"); b.Property("TextBody") .IsRequired() .HasColumnType("text") .HasColumnName("text_body"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.HasKey("Id"); b.HasIndex("DefinitionId", "ServiceId"); b.HasIndex("DefinitionId", "ServiceLanguageId") .IsUnique(); b.HasIndex("ServiceLanguageId", "ServiceId"); b.ToTable("email_templates", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.PushChannelEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("CredentialsJson") .IsRequired() .HasColumnType("jsonb") .HasColumnName("credentials"); b.Property("FirebaseProjectId") .IsRequired() .HasMaxLength(30) .HasColumnType("character varying(30)") .HasColumnName("firebase_project_id"); b.Property("IsActive") .HasColumnType("boolean") .HasColumnName("is_active"); b.Property("ServiceId") .HasColumnType("uuid") .HasColumnName("service_id"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.HasKey("Id"); b.HasIndex("ServiceId") .IsUnique(); b.ToTable("push_channels", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.PushDeliveryEntity", b => { b.Property("ServiceName") .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("MessageId") .HasColumnType("uuid"); b.Property("CompletedAt") .HasColumnType("timestamp with time zone"); b.Property("Error") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("InvalidRegistration") .HasColumnType("boolean"); b.HasKey("ServiceName", "MessageId"); b.HasIndex("CompletedAt"); b.ToTable("PushDeliveries", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.PushTemplateDefinitionEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("Key") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("key"); b.Property("Revision") .IsConcurrencyToken() .HasColumnType("uuid") .HasColumnName("revision"); b.Property("ServiceId") .HasColumnType("uuid") .HasColumnName("service_id"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.HasKey("Id"); b.HasIndex("ServiceId", "Key") .IsUnique(); b.ToTable("push_template_definitions", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.PushTemplateEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("ActionsJson") .IsRequired() .HasColumnType("jsonb") .HasColumnName("actions"); b.Property("Body") .IsRequired() .HasColumnType("text") .HasColumnName("body"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("DefinitionId") .HasColumnType("uuid") .HasColumnName("definition_id"); b.Property("ServiceId") .HasColumnType("uuid") .HasColumnName("service_id"); b.Property("ServiceLanguageId") .HasColumnType("uuid") .HasColumnName("service_language_id"); b.Property("Title") .IsRequired() .HasColumnType("text") .HasColumnName("title"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.HasKey("Id"); b.HasIndex("DefinitionId", "ServiceId"); b.HasIndex("DefinitionId", "ServiceLanguageId") .IsUnique(); b.HasIndex("ServiceLanguageId", "ServiceId"); b.ToTable("push_templates", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.ServiceEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("name"); b.Property("Revision") .IsConcurrencyToken() .HasColumnType("uuid") .HasColumnName("revision"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("services", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.ServiceLanguageEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("Code") .IsRequired() .HasMaxLength(10) .HasColumnType("character varying(10)") .HasColumnName("code"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("ServiceId") .HasColumnType("uuid") .HasColumnName("service_id"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.HasKey("Id"); b.HasIndex("ServiceId", "Code") .IsUnique(); b.ToTable("service_languages", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.TemplateEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("id"); b.Property("Created") .HasColumnType("timestamp with time zone") .HasColumnName("created"); b.Property("Key") .IsRequired() .HasMaxLength(100) .HasColumnType("character varying(100)") .HasColumnName("key"); b.Property("ServiceId") .HasColumnType("uuid") .HasColumnName("service_id"); b.Property("Updated") .HasColumnType("timestamp with time zone") .HasColumnName("updated"); b.HasKey("Id"); b.ToTable("templates", (string)null); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailChannelEntity", b => { b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.ServiceEntity", "Service") .WithMany() .HasForeignKey("ServiceId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Service"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailChannelUsageEntity", b => { b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.EmailChannelEntity", null) .WithMany("UsageRecords") .HasForeignKey("ProviderId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailTemplateDefinitionEntity", b => { b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.ServiceEntity", "Service") .WithMany() .HasForeignKey("ServiceId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.TemplateEntity", "Template") .WithOne("Email") .HasForeignKey("HrynCo.NotificationService.DAL.EF.Entities.EmailTemplateDefinitionEntity", "ServiceId", "Key") .HasPrincipalKey("HrynCo.NotificationService.DAL.EF.Entities.TemplateEntity", "ServiceId", "Key") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.OwnsMany("HrynCo.NotificationService.DAL.EF.Entities.EmailTemplateVariableData", "Variables", b1 => { b1.Property("EmailTemplateDefinitionEntityId"); b1.Property("__synthesizedOrdinal") .ValueGeneratedOnAdd(); b1.Property("Name") .IsRequired() .HasJsonPropertyName("name"); b1.Property("Required") .HasJsonPropertyName("required"); b1.HasKey("EmailTemplateDefinitionEntityId", "__synthesizedOrdinal"); b1.ToTable("email_template_definitions"); b1 .ToJson("variables") .HasColumnType("jsonb"); b1.WithOwner() .HasForeignKey("EmailTemplateDefinitionEntityId"); }); b.Navigation("Service"); b.Navigation("Template"); b.Navigation("Variables"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailTemplateEntity", b => { b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.EmailTemplateDefinitionEntity", "Definition") .WithMany("Languages") .HasForeignKey("DefinitionId", "ServiceId") .HasPrincipalKey("Id", "ServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.ServiceLanguageEntity", "ServiceLanguage") .WithMany() .HasForeignKey("ServiceLanguageId", "ServiceId") .HasPrincipalKey("Id", "ServiceId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Definition"); b.Navigation("ServiceLanguage"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.PushChannelEntity", b => { b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.ServiceEntity", "Service") .WithMany() .HasForeignKey("ServiceId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Service"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.PushTemplateDefinitionEntity", b => { b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.TemplateEntity", "Template") .WithOne("Push") .HasForeignKey("HrynCo.NotificationService.DAL.EF.Entities.PushTemplateDefinitionEntity", "ServiceId", "Key") .HasPrincipalKey("HrynCo.NotificationService.DAL.EF.Entities.TemplateEntity", "ServiceId", "Key") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.OwnsMany("HrynCo.NotificationService.DAL.EF.Entities.PushTemplateVariableData", "Variables", b1 => { b1.Property("PushTemplateDefinitionEntityId"); b1.Property("__synthesizedOrdinal") .ValueGeneratedOnAdd(); b1.Property("Name") .IsRequired() .HasJsonPropertyName("name"); b1.Property("Required") .HasJsonPropertyName("required"); b1.HasKey("PushTemplateDefinitionEntityId", "__synthesizedOrdinal"); b1.ToTable("push_template_definitions"); b1 .ToJson("variables") .HasColumnType("jsonb"); b1.WithOwner() .HasForeignKey("PushTemplateDefinitionEntityId"); }); b.Navigation("Template"); b.Navigation("Variables"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.PushTemplateEntity", b => { b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.PushTemplateDefinitionEntity", "Definition") .WithMany("Languages") .HasForeignKey("DefinitionId", "ServiceId") .HasPrincipalKey("Id", "ServiceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.ServiceLanguageEntity", "ServiceLanguage") .WithMany() .HasForeignKey("ServiceLanguageId", "ServiceId") .HasPrincipalKey("Id", "ServiceId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Definition"); b.Navigation("ServiceLanguage"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.ServiceLanguageEntity", b => { b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.ServiceEntity", "Service") .WithMany("Languages") .HasForeignKey("ServiceId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Service"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.TemplateEntity", b => { b.HasOne("HrynCo.NotificationService.DAL.EF.Entities.ServiceEntity", "Service") .WithMany() .HasForeignKey("ServiceId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Service"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailChannelEntity", b => { b.Navigation("UsageRecords"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.EmailTemplateDefinitionEntity", b => { b.Navigation("Languages"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.PushTemplateDefinitionEntity", b => { b.Navigation("Languages"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.ServiceEntity", b => { b.Navigation("Languages"); }); modelBuilder.Entity("HrynCo.NotificationService.DAL.EF.Entities.TemplateEntity", b => { b.Navigation("Email"); b.Navigation("Push"); }); #pragma warning restore 612, 618 } } }