// <auto-generated /> using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; using Selector.Model; #nullable disable namespace Selector.Model.Migrations { [DbContext(typeof(ApplicationDbContext))] partial class ApplicationDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("Npgsql:CollationDefinition:case_insensitive", "en-u-ks-primary,en-u-ks-primary,icu,False") .HasAnnotation("ProductVersion", "6.0.2") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => { b.Property<string>("Id") .HasColumnType("text"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("text"); b.Property<string>("Name") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<string>("NormalizedName") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.HasKey("Id"); b.HasIndex("NormalizedName") .IsUnique() .HasDatabaseName("RoleNameIndex"); b.ToTable("AspNetRoles", (string)null); b.HasData( new { Id = "00c64c0a-3387-4933-9575-83443fa9092b", ConcurrencyStamp = "ec454f56-2b26-4bd8-be8e-a7fd34981ac2", Name = "Admin", NormalizedName = "ADMIN" }); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); b.Property<string>("ClaimType") .HasColumnType("text"); b.Property<string>("ClaimValue") .HasColumnType("text"); b.Property<string>("RoleId") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("RoleId"); b.ToTable("AspNetRoleClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); b.Property<string>("ClaimType") .HasColumnType("text"); b.Property<string>("ClaimValue") .HasColumnType("text"); b.Property<string>("UserId") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("AspNetUserClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b => { b.Property<string>("LoginProvider") .HasColumnType("text"); b.Property<string>("ProviderKey") .HasColumnType("text"); b.Property<string>("ProviderDisplayName") .HasColumnType("text"); b.Property<string>("UserId") .IsRequired() .HasColumnType("text"); b.HasKey("LoginProvider", "ProviderKey"); b.HasIndex("UserId"); b.ToTable("AspNetUserLogins", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b => { b.Property<string>("UserId") .HasColumnType("text"); b.Property<string>("RoleId") .HasColumnType("text"); b.HasKey("UserId", "RoleId"); b.HasIndex("RoleId"); b.ToTable("AspNetUserRoles", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b => { b.Property<string>("UserId") .HasColumnType("text"); b.Property<string>("LoginProvider") .HasColumnType("text"); b.Property<string>("Name") .HasColumnType("text"); b.Property<string>("Value") .HasColumnType("text"); b.HasKey("UserId", "LoginProvider", "Name"); b.ToTable("AspNetUserTokens", (string)null); }); modelBuilder.Entity("Selector.Model.AlbumLastfmSpotifyMapping", b => { b.Property<string>("SpotifyUri") .HasColumnType("text"); b.Property<string>("LastfmAlbumName") .HasColumnType("text") .UseCollation("case_insensitive"); b.Property<string>("LastfmArtistName") .HasColumnType("text") .UseCollation("case_insensitive"); b.HasKey("SpotifyUri"); b.ToTable("AlbumMapping"); }); modelBuilder.Entity("Selector.Model.ApplicationUser", b => { b.Property<string>("Id") .HasColumnType("text"); b.Property<int>("AccessFailedCount") .HasColumnType("integer"); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("text"); b.Property<string>("Email") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<bool>("EmailConfirmed") .HasColumnType("boolean"); b.Property<string>("LastFmUsername") .HasColumnType("text") .UseCollation("case_insensitive"); b.Property<bool>("LockoutEnabled") .HasColumnType("boolean"); b.Property<DateTimeOffset?>("LockoutEnd") .HasColumnType("timestamp with time zone"); b.Property<string>("NormalizedEmail") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<string>("NormalizedUserName") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<string>("PasswordHash") .HasColumnType("text"); b.Property<string>("PhoneNumber") .HasColumnType("text"); b.Property<bool>("PhoneNumberConfirmed") .HasColumnType("boolean"); b.Property<bool>("SaveScrobbles") .HasColumnType("boolean"); b.Property<string>("SecurityStamp") .HasColumnType("text"); b.Property<string>("SpotifyAccessToken") .HasColumnType("text"); b.Property<bool>("SpotifyIsLinked") .HasColumnType("boolean"); b.Property<DateTime>("SpotifyLastRefresh") .HasColumnType("timestamp with time zone"); b.Property<string>("SpotifyRefreshToken") .HasColumnType("text"); b.Property<int>("SpotifyTokenExpiry") .HasColumnType("integer"); b.Property<bool>("TwoFactorEnabled") .HasColumnType("boolean"); b.Property<string>("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("Selector.Model.ArtistLastfmSpotifyMapping", b => { b.Property<string>("SpotifyUri") .HasColumnType("text"); b.Property<string>("LastfmArtistName") .HasColumnType("text") .UseCollation("case_insensitive"); b.HasKey("SpotifyUri"); b.ToTable("ArtistMapping"); }); modelBuilder.Entity("Selector.Model.TrackLastfmSpotifyMapping", b => { b.Property<string>("SpotifyUri") .HasColumnType("text"); b.Property<string>("LastfmArtistName") .HasColumnType("text") .UseCollation("case_insensitive"); b.Property<string>("LastfmTrackName") .HasColumnType("text") .UseCollation("case_insensitive"); b.HasKey("SpotifyUri"); b.ToTable("TrackMapping"); }); modelBuilder.Entity("Selector.Model.UserScrobble", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); b.Property<string>("AlbumArtistName") .HasColumnType("text"); b.Property<string>("AlbumName") .HasColumnType("text") .UseCollation("case_insensitive"); b.Property<string>("ArtistName") .HasColumnType("text") .UseCollation("case_insensitive"); b.Property<DateTime>("Timestamp") .HasColumnType("timestamp with time zone"); b.Property<string>("TrackName") .HasColumnType("text") .UseCollation("case_insensitive"); b.Property<string>("UserId") .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("Scrobble"); }); modelBuilder.Entity("Selector.Model.Watcher", b => { b.Property<int>("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); b.Property<int>("Type") .HasColumnType("integer"); b.Property<string>("UserId") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("Watcher"); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b => { b.HasOne("Selector.Model.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b => { b.HasOne("Selector.Model.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Selector.Model.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b => { b.HasOne("Selector.Model.ApplicationUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Selector.Model.UserScrobble", b => { b.HasOne("Selector.Model.ApplicationUser", "User") .WithMany("Scrobbles") .HasForeignKey("UserId"); b.Navigation("User"); }); modelBuilder.Entity("Selector.Model.Watcher", b => { b.HasOne("Selector.Model.ApplicationUser", "User") .WithMany("Watchers") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("Selector.Model.ApplicationUser", b => { b.Navigation("Scrobbles"); b.Navigation("Watchers"); }); #pragma warning restore 612, 618 } } }