// <auto-generated />
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.EntityFrameworkCore.Storage.Internal;
using System;
using YTManager;

namespace YTManager.Migrations
{
    [DbContext(typeof(MediaDB))]
    partial class MediaDBModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn)
                .HasAnnotation("ProductVersion", "2.0.1-rtm-125");

            modelBuilder.Entity("YTManager.Models.Channel", b =>
                {
                    b.Property<long>("PrimaryKey")
                        .ValueGeneratedOnAdd();

                    b.Property<DateTime>("AddedtoDB");

                    b.Property<string>("Description")
                        .IsRequired();

                    b.Property<DateTime>("Refreshed");

                    b.Property<string>("ThumbnailURL")
                        .IsRequired();

                    b.Property<string>("Title")
                        .IsRequired();

                    b.Property<string>("YoutubeID")
                        .IsRequired();

                    b.HasKey("PrimaryKey");

                    b.ToTable("Channels");
                });

            modelBuilder.Entity("YTManager.Models.Tag", b =>
                {
                    b.Property<long>("PrimaryKey")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("Name")
                        .IsRequired();

                    b.Property<long?>("VideoPrimaryKey");

                    b.HasKey("PrimaryKey");

                    b.HasIndex("VideoPrimaryKey");

                    b.ToTable("Tags");
                });

            modelBuilder.Entity("YTManager.Models.Video", b =>
                {
                    b.Property<long>("PrimaryKey")
                        .ValueGeneratedOnAdd();

                    b.Property<DateTime>("AddedToYT");

                    b.Property<DateTime>("AddedtoDB");

                    b.Property<long>("ChannelPrimaryKey");

                    b.Property<string>("Description")
                        .IsRequired();

                    b.Property<string>("ThumbnailURL")
                        .IsRequired();

                    b.Property<string>("Title")
                        .IsRequired();

                    b.Property<string>("YoutubeID")
                        .IsRequired();

                    b.HasKey("PrimaryKey");

                    b.HasIndex("ChannelPrimaryKey");

                    b.ToTable("Videos");
                });

            modelBuilder.Entity("YTManager.Models.Tag", b =>
                {
                    b.HasOne("YTManager.Models.Video")
                        .WithMany("Tags")
                        .HasForeignKey("VideoPrimaryKey");
                });

            modelBuilder.Entity("YTManager.Models.Video", b =>
                {
                    b.HasOne("YTManager.Models.Channel", "Channel")
                        .WithMany("Videos")
                        .HasForeignKey("ChannelPrimaryKey")
                        .OnDelete(DeleteBehavior.Cascade);
                });
#pragma warning restore 612, 618
        }
    }
}