// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using TeamManiacs.Data;

#nullable disable

namespace TeamManiacs.Data.Migrations
{
    [DbContext(typeof(TeamManiacsDbContext))]
    partial class TeamManiacsDbContextModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "6.0.12")
                .HasAnnotation("Relational:MaxIdentifierLength", 64);

            modelBuilder.Entity("TeamManiacs.Core.Models.Item", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(200)
                        .IsUnicode(false)
                        .HasColumnType("varchar(200)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(200)
                        .IsUnicode(false)
                        .HasColumnType("varchar(200)");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(200)
                        .IsUnicode(false)
                        .HasColumnType("varchar(200)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("TeamManiacs.Core.Models.Users", b =>
                {
                    b.Property<int>("UserId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    b.Property<string>("Password")
                        .IsRequired()
                        .HasMaxLength(200)
                        .IsUnicode(false)
                        .HasColumnType("varchar(200)");

                    b.Property<int>("Privileges")
                        .HasColumnType("int");

                    b.Property<string>("Username")
                        .IsRequired()
                        .HasMaxLength(200)
                        .IsUnicode(false)
                        .HasColumnType("varchar(200)");

                    b.Property<string>("Videos")
                        .HasColumnType("longtext");

                    b.HasKey("UserId");

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

            modelBuilder.Entity("TeamManiacs.Core.Models.Video", b =>
                {
                    b.Property<int>("ID")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("int");

                    b.Property<string>("ContentDisposition")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<int>("ContentSize")
                        .HasColumnType("int");

                    b.Property<string>("ContentType")
                        .IsRequired()
                        .HasColumnType("longtext");

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

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("GUID")
                        .IsRequired()
                        .HasColumnType("longtext");

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

                    b.Property<int>("Uploader")
                        .HasColumnType("int");

                    b.Property<int>("VideoLength")
                        .HasColumnType("int");

                    b.Property<bool>("isPrivate")
                        .HasColumnType("tinyint(1)");

                    b.HasKey("ID");

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

            modelBuilder.Entity("TeamManiacs.Core.Models.VideoBlob", b =>
                {
                    b.Property<Guid>("uploadId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("char(36)");

                    b.Property<string>("ContentDisposition")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("ContentType")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<int>("chunkCount")
                        .HasColumnType("int");

                    b.Property<int>("chunkNumber")
                        .HasColumnType("int");

                    b.Property<int>("collectedChunks")
                        .HasColumnType("int");

                    b.Property<float>("videoDuration")
                        .HasColumnType("float");

                    b.Property<string>("videoHeight")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("videoName")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<string>("videoWidth")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.HasKey("uploadId");

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

            modelBuilder.Entity("TeamManiacs.Core.Models.VideoRating", b =>
                {
                    b.Property<string>("Category")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("Judge")
                        .IsRequired()
                        .HasColumnType("longtext");

                    b.Property<int>("Rating")
                        .HasColumnType("int");

                    b.Property<int?>("VideoID")
                        .HasColumnType("int");

                    b.HasKey("Category");

                    b.HasIndex("VideoID");

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

            modelBuilder.Entity("TeamManiacs.Core.Models.VideoRating", b =>
                {
                    b.HasOne("TeamManiacs.Core.Models.Video", null)
                        .WithMany("Ratings")
                        .HasForeignKey("VideoID");
                });

            modelBuilder.Entity("TeamManiacs.Core.Models.Video", b =>
                {
                    b.Navigation("Ratings");
                });
#pragma warning restore 612, 618
        }
    }
}
