// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; using TeleWave.Infrastructure.Persistence; #nullable disable namespace TeleWave.Infrastructure.Migrations { [DbContext(typeof(AppDbContext))] partial class AppDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "10.0.10") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ClaimType") .HasColumnType("text"); b.Property("ClaimValue") .HasColumnType("text"); b.Property("RoleId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("RoleId"); b.ToTable("AspNetRoleClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ClaimType") .HasColumnType("text"); b.Property("ClaimValue") .HasColumnType("text"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("AspNetUserClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.Property("LoginProvider") .HasColumnType("text"); b.Property("ProviderKey") .HasColumnType("text"); b.Property("ProviderDisplayName") .HasColumnType("text"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("LoginProvider", "ProviderKey"); b.HasIndex("UserId"); b.ToTable("AspNetUserLogins", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.Property("UserId") .HasColumnType("uuid"); b.Property("RoleId") .HasColumnType("uuid"); b.HasKey("UserId", "RoleId"); b.HasIndex("RoleId"); b.ToTable("AspNetUserRoles", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.Property("UserId") .HasColumnType("uuid"); b.Property("LoginProvider") .HasColumnType("text"); b.Property("Name") .HasColumnType("text"); b.Property("Value") .HasColumnType("text"); b.HasKey("UserId", "LoginProvider", "Name"); b.ToTable("AspNetUserTokens", (string)null); }); modelBuilder.Entity("TeleWave.Domain.Auth.RefreshToken", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("ExpiresAt") .HasColumnType("timestamp with time zone"); b.Property("ReplacedByTokenHash") .HasColumnType("text"); b.Property("RevokedAt") .HasColumnType("timestamp with time zone"); b.Property("TokenHash") .IsRequired() .HasColumnType("text"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("TokenHash") .IsUnique(); b.HasIndex("UserId"); b.ToTable("RefreshTokens"); }); modelBuilder.Entity("TeleWave.Domain.Broadcast.BumperAsset", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("BackgroundAssetId") .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("MediaAssetId") .HasColumnType("uuid"); b.Property("PosterShowId") .HasColumnType("uuid"); b.Property("RenderedLinesJson") .IsRequired() .HasColumnType("jsonb"); b.Property("Signature") .IsRequired() .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("TemplateId") .HasColumnType("uuid"); b.Property("VariantId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("MediaAssetId"); b.HasIndex("Signature") .IsUnique(); b.ToTable("BumperAssets"); }); modelBuilder.Entity("TeleWave.Domain.Broadcast.BumperTemplate", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("AccentColor") .IsRequired() .HasMaxLength(32) .HasColumnType("character varying(32)"); b.Property("AudioDurationSeconds") .HasColumnType("double precision"); b.Property("AudioExtension") .HasMaxLength(16) .HasColumnType("character varying(16)"); b.Property("BackgroundColor") .IsRequired() .HasMaxLength(32) .HasColumnType("character varying(32)"); b.Property("BackgroundColor2") .IsRequired() .HasMaxLength(32) .HasColumnType("character varying(32)"); b.Property("BackgroundImageId") .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Font") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property("Revision") .HasColumnType("integer"); b.Property("TextColor") .IsRequired() .HasMaxLength(32) .HasColumnType("character varying(32)"); b.HasKey("Id"); b.HasIndex("Name"); b.ToTable("BumperTemplates"); }); modelBuilder.Entity("TeleWave.Domain.Broadcast.BumperTextVariant", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("Background") .HasColumnType("integer"); b.Property("BackgroundClipShowId") .HasColumnType("uuid"); b.Property("BumperTemplateId") .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Name") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property("Position") .HasColumnType("integer"); b.Property("Trigger") .HasColumnType("integer"); b.Property("Weight") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasDefaultValue(1); b.HasKey("Id"); b.HasIndex("BumperTemplateId", "Position"); b.ToTable("BumperTextVariants"); }); modelBuilder.Entity("TeleWave.Domain.Broadcast.Channel", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("AnalogFilterStrength") .HasColumnType("double precision"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("DayStartTime") .HasColumnType("time without time zone"); b.Property("EpochUtc") .HasColumnType("timestamp with time zone"); b.Property("FillerAssetId") .HasColumnType("uuid"); b.Property("IconImageId") .HasColumnType("uuid"); b.Property("IsEnabled") .HasColumnType("boolean"); b.Property("LogoCorner") .HasColumnType("integer"); b.Property("LogoImageId") .HasColumnType("uuid"); b.Property("LogoOpacity") .HasColumnType("double precision"); b.Property("Name") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("Number") .HasColumnType("integer"); b.Property("ShowClock") .HasColumnType("boolean"); b.Property("Slug") .IsRequired() .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("TemplateId") .HasColumnType("uuid"); b.Property("UtcOffsetMinutes") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("Number") .IsUnique() .HasFilter("\"Number\" IS NOT NULL"); b.HasIndex("Slug") .IsUnique(); b.ToTable("Channels"); }); modelBuilder.Entity("TeleWave.Domain.Broadcast.ScheduleEntry", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("BumperVariantId") .HasColumnType("uuid"); b.Property("ChannelId") .HasColumnType("uuid"); b.Property("CollectionId") .HasColumnType("uuid"); b.Property("EndsAtUtc") .HasColumnType("timestamp with time zone"); b.Property("EpisodeIndex") .HasColumnType("integer"); b.Property("Kind") .HasColumnType("integer"); b.Property("MediaAssetId") .HasColumnType("uuid"); b.Property("ShowId") .HasColumnType("uuid"); b.Property("SlotId") .HasColumnType("uuid"); b.Property("StartsAtUtc") .HasColumnType("timestamp with time zone"); b.Property("TraceJson") .HasColumnType("jsonb"); b.HasKey("Id"); b.HasIndex("ChannelId", "EndsAtUtc"); b.HasIndex("ChannelId", "StartsAtUtc"); b.HasIndex("ChannelId", "ShowId", "StartsAtUtc"); b.ToTable("ScheduleEntries"); }); modelBuilder.Entity("TeleWave.Domain.Images.Image", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("Category") .HasColumnType("integer"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("FileExtension") .IsRequired() .HasMaxLength(16) .HasColumnType("character varying(16)"); b.Property("OriginalFileName") .HasMaxLength(512) .HasColumnType("character varying(512)"); b.HasKey("Id"); b.HasIndex("Category", "CreatedAt"); b.ToTable("Images"); }); modelBuilder.Entity("TeleWave.Domain.Library.Collection", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Description") .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b.Property("Name") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("PosterImageId") .HasColumnType("uuid"); b.HasKey("Id"); b.ToTable("Collections"); }); modelBuilder.Entity("TeleWave.Domain.Library.CollectionItem", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("CollectionId") .HasColumnType("uuid"); b.Property("Position") .HasColumnType("integer"); b.Property("ShowId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("ShowId"); b.HasIndex("CollectionId", "Position"); b.HasIndex("CollectionId", "ShowId") .IsUnique(); b.ToTable("CollectionItems"); }); modelBuilder.Entity("TeleWave.Domain.Library.Genre", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("IsSystem") .HasColumnType("boolean"); b.Property("Name") .IsRequired() .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("Slug") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property("SortOrder") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("Slug") .IsUnique(); b.ToTable("Genres"); }); modelBuilder.Entity("TeleWave.Domain.Library.GenreAlias", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("GenreId") .HasColumnType("uuid"); b.Property("Value") .IsRequired() .HasMaxLength(128) .HasColumnType("character varying(128)"); b.HasKey("Id"); b.HasIndex("GenreId"); b.HasIndex("Value") .IsUnique(); b.ToTable("GenreAliases"); }); modelBuilder.Entity("TeleWave.Domain.Library.Show", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("Audience") .HasColumnType("integer"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Description") .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b.Property("FranchiseExternalId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property("FranchiseName") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("Kind") .HasColumnType("integer"); b.Property("MetadataExternalId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property("MetadataProvider") .HasMaxLength(16) .HasColumnType("character varying(16)"); b.Property("Name") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("OriginalName") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("PosterImageId") .HasColumnType("uuid"); b.Property("Year") .HasColumnType("integer"); b.HasKey("Id"); b.ToTable("Shows"); }); modelBuilder.Entity("TeleWave.Domain.Library.ShowEpisode", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("AirDate") .HasColumnType("date"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Episode") .HasColumnType("integer"); b.Property("MediaAssetId") .HasColumnType("uuid"); b.Property("Overview") .HasMaxLength(4096) .HasColumnType("character varying(4096)"); b.Property("Position") .HasColumnType("integer"); b.Property("Season") .HasColumnType("integer"); b.Property("ShowId") .HasColumnType("uuid"); b.Property("StillImageId") .HasColumnType("uuid"); b.Property("Title") .HasMaxLength(512) .HasColumnType("character varying(512)"); b.HasKey("Id"); b.HasIndex("MediaAssetId"); b.HasIndex("ShowId", "Position"); b.ToTable("ShowEpisode"); }); modelBuilder.Entity("TeleWave.Domain.Library.ShowGenre", b => { b.Property("ShowId") .HasColumnType("uuid"); b.Property("GenreId") .HasColumnType("uuid"); b.Property("IsPrimary") .HasColumnType("boolean"); b.HasKey("ShowId", "GenreId"); b.HasIndex("GenreId"); b.ToTable("ShowGenres"); }); modelBuilder.Entity("TeleWave.Domain.Media.MediaAsset", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("AudioCodec") .HasMaxLength(32) .HasColumnType("character varying(32)"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Duration") .HasColumnType("interval"); b.Property("ErrorMessage") .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b.Property("Height") .HasColumnType("integer"); b.Property("OriginalExtension") .IsRequired() .HasMaxLength(16) .HasColumnType("character varying(16)"); b.Property("OriginalFileName") .IsRequired() .HasMaxLength(512) .HasColumnType("character varying(512)"); b.Property("ProcessingDuration") .HasColumnType("interval"); b.Property("ProcessingStartedAt") .HasColumnType("timestamp with time zone"); b.Property("RelativePath") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("SegmentCount") .HasColumnType("integer"); b.Property("SegmentSeconds") .HasColumnType("integer"); b.Property("Source") .HasColumnType("integer"); b.Property("Status") .HasColumnType("integer"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property("VideoCodec") .HasMaxLength(32) .HasColumnType("character varying(32)"); b.Property("Width") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("CreatedAt"); b.HasIndex("Status"); b.ToTable("MediaAssets"); }); modelBuilder.Entity("TeleWave.Domain.Notifications.TelegramLinkCode", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("Code") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("ExpiresAt") .HasColumnType("timestamp with time zone"); b.Property("UsedAt") .HasColumnType("timestamp with time zone"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("Code") .IsUnique(); b.ToTable("TelegramLinkCodes"); }); modelBuilder.Entity("TeleWave.Domain.Notifications.TelegramSettings", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("BotToken") .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("BotUsername") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property("IsEnabled") .HasColumnType("boolean"); b.Property("LastContactAt") .HasColumnType("timestamp with time zone"); b.Property("LastError") .HasMaxLength(512) .HasColumnType("character varying(512)"); b.Property("LastUpdateId") .HasColumnType("bigint"); b.Property("NotifiedUntil") .HasColumnType("timestamp with time zone"); b.Property("ProxyHost") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("ProxyKind") .HasColumnType("integer"); b.Property("ProxyPassword") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("ProxyPort") .HasColumnType("integer"); b.Property("ProxyUsername") .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("Transport") .HasColumnType("integer"); b.Property("WebhookSecret") .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("WebhookUrl") .HasMaxLength(512) .HasColumnType("character varying(512)"); b.HasKey("Id"); b.ToTable("TelegramSettings"); }); modelBuilder.Entity("TeleWave.Domain.Notifications.TelegramSubscriber", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("AlertMessageId") .HasColumnType("bigint"); b.Property("ChatId") .HasColumnType("bigint"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("DisplayName") .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("IsStopped") .HasColumnType("boolean"); b.Property("LastSeenAt") .HasColumnType("timestamp with time zone"); b.Property("MenuMessageId") .HasColumnType("bigint"); b.Property("NoticeMessageId") .HasColumnType("bigint"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("ChatId") .IsUnique(); b.HasIndex("UserId"); b.ToTable("TelegramSubscribers"); }); modelBuilder.Entity("TeleWave.Domain.Notifications.TelegramSubscription", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("ChannelId") .HasColumnType("uuid"); b.Property("Kind") .HasColumnType("integer"); b.Property("SubscriberId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("ChannelId", "Kind"); b.HasIndex("SubscriberId", "ChannelId", "Kind") .IsUnique(); b.ToTable("TelegramSubscriptions"); }); modelBuilder.Entity("TeleWave.Domain.Programming.GridLayer", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("ApplicabilityJson") .HasColumnType("jsonb"); b.Property("IsBackground") .HasColumnType("boolean"); b.Property("IsEnabled") .HasColumnType("boolean"); b.Property("Name") .IsRequired() .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("Priority") .HasColumnType("integer"); b.Property("TemplateId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("TemplateId", "Priority"); b.ToTable("GridLayers"); }); modelBuilder.Entity("TeleWave.Domain.Programming.Group", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Description") .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b.Property("FilterJson") .HasColumnType("jsonb"); b.Property("ItemCount") .HasColumnType("integer"); b.Property("Mode") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasDefaultValue(0); b.Property("Name") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("StatsComputedAt") .HasColumnType("timestamp with time zone"); b.Property("TotalDuration") .HasColumnType("interval"); b.Property("UnitCount") .HasColumnType("integer"); b.HasKey("Id"); b.ToTable("Groups"); }); modelBuilder.Entity("TeleWave.Domain.Programming.GroupItem", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("ElementId") .HasColumnType("uuid"); b.Property("ElementKind") .HasColumnType("integer"); b.Property("GroupId") .HasColumnType("uuid"); b.Property("Position") .HasColumnType("integer"); b.Property("Role") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasDefaultValue(0); b.Property("Weight") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("ElementKind", "ElementId"); b.HasIndex("GroupId", "Position"); b.HasIndex("GroupId", "ElementKind", "ElementId") .IsUnique(); b.ToTable("GroupItems"); }); modelBuilder.Entity("TeleWave.Domain.Programming.JunctionElement", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("AmountMode") .HasColumnType("integer"); b.Property("AmountValue") .HasColumnType("integer"); b.Property("BumperTemplateId") .HasColumnType("uuid"); b.Property("BumperVariantId") .HasColumnType("uuid"); b.Property("ChoiceKey") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property("ChoiceWeight") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasDefaultValue(1); b.Property("ConditionsJson") .HasColumnType("jsonb"); b.Property("GroupId") .HasColumnType("uuid"); b.Property("IsRequired") .HasColumnType("boolean"); b.Property("JunctionTemplateId") .HasColumnType("uuid"); b.Property("Kind") .HasColumnType("integer"); b.Property("Position") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("BumperTemplateId"); b.HasIndex("BumperVariantId"); b.HasIndex("GroupId"); b.HasIndex("JunctionTemplateId", "Position"); b.ToTable("JunctionElements"); }); modelBuilder.Entity("TeleWave.Domain.Programming.JunctionTemplate", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("MaxTotalSeconds") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasMaxLength(128) .HasColumnType("character varying(128)"); b.HasKey("Id"); b.HasIndex("Name"); b.ToTable("JunctionTemplates"); }); modelBuilder.Entity("TeleWave.Domain.Programming.ScheduleTemplate", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("AppliedRevision") .HasColumnType("integer"); b.Property("AppliedSnapshotJson") .HasColumnType("jsonb"); b.Property("ChannelId") .HasColumnType("uuid"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("DefaultJunctionId") .HasColumnType("uuid"); b.Property("FallbackGroupId") .HasColumnType("uuid"); b.Property("Name") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("Revision") .HasColumnType("integer"); b.Property("RulesJson") .HasColumnType("jsonb"); b.HasKey("Id"); b.HasIndex("ChannelId"); b.ToTable("ScheduleTemplates"); }); modelBuilder.Entity("TeleWave.Domain.Programming.Slot", b => { b.Property("Id") .HasColumnType("uuid"); b.Property("BlockMode") .HasColumnType("integer"); b.Property("BlockValue") .HasColumnType("integer"); b.Property("Daypart") .HasColumnType("integer"); b.Property("GroupId") .HasColumnType("uuid"); b.Property("IsAnchor") .HasColumnType("boolean"); b.Property("JunctionAfterId") .HasColumnType("uuid"); b.Property("JunctionBetweenId") .HasColumnType("uuid"); b.Property("LayerId") .HasColumnType("uuid"); b.Property("MaxDriftMinutes") .HasColumnType("integer"); b.Property("OverflowPolicy") .HasColumnType("integer"); b.Property("RepeatSourceJson") .HasColumnType("jsonb"); b.Property("SlotKind") .HasColumnType("integer"); b.Property("SnapToMinutes") .HasColumnType("integer"); b.Property("StrategyJson") .HasColumnType("jsonb"); b.Property("TargetDurationMinutes") .HasColumnType("integer"); b.Property("TargetStart") .HasColumnType("time without time zone"); b.Property("Title") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("Weekday") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("GroupId"); b.HasIndex("LayerId", "TargetStart"); b.ToTable("Slots"); }); modelBuilder.Entity("TeleWave.Domain.Programming.SlotState", b => { b.Property("SlotId") .HasColumnType("uuid"); b.Property("CurrentElementId") .HasColumnType("uuid"); b.Property("CurrentElementKind") .HasColumnType("integer"); b.Property("NextUnitIndex") .HasColumnType("integer"); b.HasKey("SlotId"); b.ToTable("SlotStates"); }); modelBuilder.Entity("TeleWave.Domain.Settings.AppSetting", b => { b.Property("Key") .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("Value") .IsRequired() .HasMaxLength(1024) .HasColumnType("character varying(1024)"); b.HasKey("Key"); b.ToTable("AppSettings"); }); modelBuilder.Entity("TeleWave.Infrastructure.Identity.AppRole", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("text"); b.Property("IsSystem") .HasColumnType("boolean"); b.Property("Name") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("NormalizedName") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.HasKey("Id"); b.HasIndex("NormalizedName") .IsUnique() .HasDatabaseName("RoleNameIndex"); b.ToTable("AspNetRoles", (string)null); }); modelBuilder.Entity("TeleWave.Infrastructure.Identity.AppUser", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("AccessFailedCount") .HasColumnType("integer"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("text"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Email") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("EmailConfirmed") .HasColumnType("boolean"); b.Property("IsBlocked") .HasColumnType("boolean"); b.Property("LockoutEnabled") .HasColumnType("boolean"); b.Property("LockoutEnd") .HasColumnType("timestamp with time zone"); b.Property("NormalizedEmail") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("NormalizedUserName") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property("PasswordHash") .HasColumnType("text"); b.Property("PhoneNumber") .HasColumnType("text"); b.Property("PhoneNumberConfirmed") .HasColumnType("boolean"); b.Property("SecurityStamp") .HasColumnType("text"); b.Property("TwoFactorEnabled") .HasColumnType("boolean"); b.Property("UserName") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.HasKey("Id"); b.HasIndex("NormalizedEmail") .HasDatabaseName("EmailIndex"); b.HasIndex("NormalizedUserName") .IsUnique() .HasDatabaseName("UserNameIndex"); b.ToTable("AspNetUsers", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.HasOne("TeleWave.Infrastructure.Identity.AppRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.HasOne("TeleWave.Infrastructure.Identity.AppUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.HasOne("TeleWave.Infrastructure.Identity.AppUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.HasOne("TeleWave.Infrastructure.Identity.AppRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("TeleWave.Infrastructure.Identity.AppUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.HasOne("TeleWave.Infrastructure.Identity.AppUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Broadcast.BumperTextVariant", b => { b.HasOne("TeleWave.Domain.Broadcast.BumperTemplate", null) .WithMany("Variants") .HasForeignKey("BumperTemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.OwnsMany("TeleWave.Domain.Broadcast.BumperLine", "Lines", b1 => { b1.Property("BumperTextVariantId"); b1.Property("__synthesizedOrdinal") .ValueGeneratedOnAdd(); b1.Property("Color"); b1.Property("Position"); b1.Property("Style"); b1.Property("Text") .IsRequired() .HasMaxLength(120); b1.HasKey("BumperTextVariantId", "__synthesizedOrdinal"); b1.ToTable("BumperTextVariants"); b1 .ToJson("Lines") .HasColumnType("jsonb"); b1.WithOwner() .HasForeignKey("BumperTextVariantId"); }); b.Navigation("Lines"); }); modelBuilder.Entity("TeleWave.Domain.Library.CollectionItem", b => { b.HasOne("TeleWave.Domain.Library.Collection", null) .WithMany("Items") .HasForeignKey("CollectionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("TeleWave.Domain.Library.Show", null) .WithMany() .HasForeignKey("ShowId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Library.GenreAlias", b => { b.HasOne("TeleWave.Domain.Library.Genre", null) .WithMany("Aliases") .HasForeignKey("GenreId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Library.ShowEpisode", b => { b.HasOne("TeleWave.Domain.Library.Show", null) .WithMany("Episodes") .HasForeignKey("ShowId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Library.ShowGenre", b => { b.HasOne("TeleWave.Domain.Library.Genre", null) .WithMany() .HasForeignKey("GenreId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("TeleWave.Domain.Library.Show", null) .WithMany("Genres") .HasForeignKey("ShowId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Notifications.TelegramSubscription", b => { b.HasOne("TeleWave.Domain.Notifications.TelegramSubscriber", null) .WithMany("Subscriptions") .HasForeignKey("SubscriberId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Programming.GridLayer", b => { b.HasOne("TeleWave.Domain.Programming.ScheduleTemplate", null) .WithMany("Layers") .HasForeignKey("TemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Programming.GroupItem", b => { b.HasOne("TeleWave.Domain.Programming.Group", null) .WithMany("Items") .HasForeignKey("GroupId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Programming.JunctionElement", b => { b.HasOne("TeleWave.Domain.Broadcast.BumperTemplate", null) .WithMany() .HasForeignKey("BumperTemplateId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("TeleWave.Domain.Broadcast.BumperTextVariant", null) .WithMany() .HasForeignKey("BumperVariantId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("TeleWave.Domain.Programming.Group", null) .WithMany() .HasForeignKey("GroupId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("TeleWave.Domain.Programming.JunctionTemplate", null) .WithMany("Elements") .HasForeignKey("JunctionTemplateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Programming.Slot", b => { b.HasOne("TeleWave.Domain.Programming.Group", null) .WithMany() .HasForeignKey("GroupId") .OnDelete(DeleteBehavior.Restrict); b.HasOne("TeleWave.Domain.Programming.GridLayer", null) .WithMany("Slots") .HasForeignKey("LayerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Programming.SlotState", b => { b.HasOne("TeleWave.Domain.Programming.Slot", null) .WithOne() .HasForeignKey("TeleWave.Domain.Programming.SlotState", "SlotId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("TeleWave.Domain.Broadcast.BumperTemplate", b => { b.Navigation("Variants"); }); modelBuilder.Entity("TeleWave.Domain.Library.Collection", b => { b.Navigation("Items"); }); modelBuilder.Entity("TeleWave.Domain.Library.Genre", b => { b.Navigation("Aliases"); }); modelBuilder.Entity("TeleWave.Domain.Library.Show", b => { b.Navigation("Episodes"); b.Navigation("Genres"); }); modelBuilder.Entity("TeleWave.Domain.Notifications.TelegramSubscriber", b => { b.Navigation("Subscriptions"); }); modelBuilder.Entity("TeleWave.Domain.Programming.GridLayer", b => { b.Navigation("Slots"); }); modelBuilder.Entity("TeleWave.Domain.Programming.Group", b => { b.Navigation("Items"); }); modelBuilder.Entity("TeleWave.Domain.Programming.JunctionTemplate", b => { b.Navigation("Elements"); }); modelBuilder.Entity("TeleWave.Domain.Programming.ScheduleTemplate", b => { b.Navigation("Layers"); }); #pragma warning restore 612, 618 } } }