606 lines
13 KiB
C#
606 lines
13 KiB
C#
// <auto-generated />
|
|
using System;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
using Shadow.Data;
|
|
|
|
#nullable disable
|
|
|
|
namespace Shadow.Migrations
|
|
{
|
|
[DbContext(typeof(ApplicationDbContext))]
|
|
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
|
|
{
|
|
protected override void BuildModel(ModelBuilder modelBuilder)
|
|
{
|
|
#pragma warning disable 612, 618
|
|
modelBuilder
|
|
.HasAnnotation("ProductVersion", "10.0.0")
|
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
|
|
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Album", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<int?>("ArtistId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int>("State")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Uri")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("ArtistId");
|
|
|
|
b.HasIndex("Uri")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Albums");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.AlbumInteraction", b =>
|
|
{
|
|
b.Property<int>("AlbumId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Id")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<DateTime?>("PlayDate")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<bool>("Starred")
|
|
.HasColumnType("boolean");
|
|
|
|
b.HasKey("AlbumId", "UserId");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.ToTable("AlbumInteractions");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Artist", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("NormalizedName")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("NormalizedName")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Artists");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Genre", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("NormalizedName")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("NormalizedName")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Genres");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.GenreSong", b =>
|
|
{
|
|
b.Property<int>("GenreId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("SongId")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("GenreId", "SongId");
|
|
|
|
b.HasIndex("SongId");
|
|
|
|
b.ToTable("GenreSongs");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Image", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<int?>("SongId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("State")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Uri")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("SongId")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Images");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Playlist", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<int>("CreatorId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Description")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Uri")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("CreatorId");
|
|
|
|
b.HasIndex("Uri")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Playlists");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.PlaylistSong", b =>
|
|
{
|
|
b.Property<int>("PlaylistId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("SongId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Index")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("PlaylistId", "SongId");
|
|
|
|
b.HasIndex("SongId");
|
|
|
|
b.ToTable("PlaylistSongs");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.PlaylistUser", b =>
|
|
{
|
|
b.Property<int>("PlaylistId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("PlaylistId", "UserId");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.ToTable("PlaylistUsers");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Radio", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<string>("Homepage")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("NormalizedName")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Url")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("NormalizedName")
|
|
.IsUnique();
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.ToTable("Radios");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Song", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<int>("AlbumId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("ArtistId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int?>("BitDepth")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Bitrate")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Channels")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Comment")
|
|
.HasColumnType("text");
|
|
|
|
b.Property<DateTime>("Date")
|
|
.HasColumnType("timestamp with time zone");
|
|
|
|
b.Property<int?>("DiscNumber")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Duration")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Filepath")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Filetype")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int?>("ImageId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Index")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("SamplingRate")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Size")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("State")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Title")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int?>("TrackNumber")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<string>("Uri")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("AlbumId");
|
|
|
|
b.HasIndex("ArtistId");
|
|
|
|
b.HasIndex("Uri")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Songs");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.SongInteraction", b =>
|
|
{
|
|
b.Property<int>("SongId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("UserId")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Id")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("PlayCount")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<int>("Rating")
|
|
.HasColumnType("integer");
|
|
|
|
b.Property<bool?>("Starred")
|
|
.HasColumnType("boolean");
|
|
|
|
b.HasKey("SongId", "UserId");
|
|
|
|
b.HasIndex("UserId");
|
|
|
|
b.ToTable("SongInteractions");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.User", b =>
|
|
{
|
|
b.Property<int>("Id")
|
|
.ValueGeneratedOnAdd()
|
|
.HasColumnType("integer");
|
|
|
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
|
|
|
b.Property<string>("Name")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("NormalizedName")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<string>("Password")
|
|
.IsRequired()
|
|
.HasColumnType("text");
|
|
|
|
b.Property<int>("Role")
|
|
.HasColumnType("integer");
|
|
|
|
b.HasKey("Id");
|
|
|
|
b.HasIndex("Name")
|
|
.IsUnique();
|
|
|
|
b.ToTable("Users");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Album", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.Artist", "Artist")
|
|
.WithMany("Albums")
|
|
.HasForeignKey("ArtistId");
|
|
|
|
b.Navigation("Artist");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.AlbumInteraction", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.Album", "Album")
|
|
.WithMany()
|
|
.HasForeignKey("AlbumId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.HasOne("Shadow.Entities.User", "User")
|
|
.WithMany("AlbumInteractions")
|
|
.HasForeignKey("UserId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("Album");
|
|
|
|
b.Navigation("User");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.GenreSong", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.Genre", "Genre")
|
|
.WithMany("GenreSongPair")
|
|
.HasForeignKey("GenreId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.HasOne("Shadow.Entities.Song", "Song")
|
|
.WithMany("GenreSongPair")
|
|
.HasForeignKey("SongId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("Genre");
|
|
|
|
b.Navigation("Song");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Image", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.Song", "Song")
|
|
.WithOne("Image")
|
|
.HasForeignKey("Shadow.Entities.Image", "SongId");
|
|
|
|
b.Navigation("Song");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Playlist", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.User", "Creator")
|
|
.WithMany("Playlists")
|
|
.HasForeignKey("CreatorId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("Creator");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.PlaylistSong", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.Playlist", "Playlist")
|
|
.WithMany()
|
|
.HasForeignKey("PlaylistId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.HasOne("Shadow.Entities.Song", "Song")
|
|
.WithMany()
|
|
.HasForeignKey("SongId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("Playlist");
|
|
|
|
b.Navigation("Song");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.PlaylistUser", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.Playlist", "Playlist")
|
|
.WithMany("AuthorizedPlaylistUsers")
|
|
.HasForeignKey("PlaylistId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.HasOne("Shadow.Entities.User", "User")
|
|
.WithMany()
|
|
.HasForeignKey("UserId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("Playlist");
|
|
|
|
b.Navigation("User");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Radio", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.User", "User")
|
|
.WithMany()
|
|
.HasForeignKey("UserId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("User");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Song", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.Album", "Album")
|
|
.WithMany("Songs")
|
|
.HasForeignKey("AlbumId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.HasOne("Shadow.Entities.Artist", "Artist")
|
|
.WithMany("Songs")
|
|
.HasForeignKey("ArtistId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("Album");
|
|
|
|
b.Navigation("Artist");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.SongInteraction", b =>
|
|
{
|
|
b.HasOne("Shadow.Entities.Song", "Song")
|
|
.WithMany()
|
|
.HasForeignKey("SongId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.HasOne("Shadow.Entities.User", "User")
|
|
.WithMany("SongInteractions")
|
|
.HasForeignKey("UserId")
|
|
.OnDelete(DeleteBehavior.Cascade)
|
|
.IsRequired();
|
|
|
|
b.Navigation("Song");
|
|
|
|
b.Navigation("User");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Album", b =>
|
|
{
|
|
b.Navigation("Songs");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Artist", b =>
|
|
{
|
|
b.Navigation("Albums");
|
|
|
|
b.Navigation("Songs");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Genre", b =>
|
|
{
|
|
b.Navigation("GenreSongPair");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Playlist", b =>
|
|
{
|
|
b.Navigation("AuthorizedPlaylistUsers");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.Song", b =>
|
|
{
|
|
b.Navigation("GenreSongPair");
|
|
|
|
b.Navigation("Image");
|
|
});
|
|
|
|
modelBuilder.Entity("Shadow.Entities.User", b =>
|
|
{
|
|
b.Navigation("AlbumInteractions");
|
|
|
|
b.Navigation("Playlists");
|
|
|
|
b.Navigation("SongInteractions");
|
|
});
|
|
#pragma warning restore 612, 618
|
|
}
|
|
}
|
|
}
|