// 
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Timeline.Entities;
namespace Timeline.Migrations
{
    [DbContext(typeof(DatabaseContext))]
    [Migration("20191031064541_Initialize")]
    partial class Initialize
    {
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "3.0.0")
                .HasAnnotation("Relational:MaxIdentifierLength", 64);
            modelBuilder.Entity("Timeline.Entities.User", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("bigint");
                    b.Property("EncryptedPassword")
                        .IsRequired()
                        .HasColumnName("password")
                        .HasColumnType("longtext");
                    b.Property("Name")
                        .IsRequired()
                        .HasColumnName("name")
                        .HasColumnType("varchar(26)")
                        .HasMaxLength(26);
                    b.Property("RoleString")
                        .IsRequired()
                        .HasColumnName("roles")
                        .HasColumnType("longtext");
                    b.Property("Version")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("version")
                        .HasColumnType("bigint")
                        .HasDefaultValue(0L);
                    b.HasKey("Id");
                    b.HasIndex("Name")
                        .IsUnique();
                    b.ToTable("users");
                });
            modelBuilder.Entity("Timeline.Entities.UserAvatar", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("bigint");
                    b.Property("Data")
                        .HasColumnName("data")
                        .HasColumnType("longblob");
                    b.Property("ETag")
                        .HasColumnName("etag")
                        .HasColumnType("varchar(30)")
                        .HasMaxLength(30);
                    b.Property("LastModified")
                        .HasColumnName("last_modified")
                        .HasColumnType("datetime(6)");
                    b.Property("Type")
                        .HasColumnName("type")
                        .HasColumnType("longtext");
                    b.Property("UserId")
                        .HasColumnType("bigint");
                    b.HasKey("Id");
                    b.HasIndex("UserId")
                        .IsUnique();
                    b.ToTable("user_avatars");
                });
            modelBuilder.Entity("Timeline.Entities.UserDetail", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("bigint");
                    b.Property("Nickname")
                        .HasColumnName("nickname")
                        .HasColumnType("varchar(26)")
                        .HasMaxLength(26);
                    b.Property("UserId")
                        .HasColumnType("bigint");
                    b.HasKey("Id");
                    b.HasIndex("UserId")
                        .IsUnique();
                    b.ToTable("user_details");
                });
            modelBuilder.Entity("Timeline.Entities.UserAvatar", b =>
                {
                    b.HasOne("Timeline.Entities.User", null)
                        .WithOne("Avatar")
                        .HasForeignKey("Timeline.Entities.UserAvatar", "UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });
            modelBuilder.Entity("Timeline.Entities.UserDetail", b =>
                {
                    b.HasOne("Timeline.Entities.User", null)
                        .WithOne("Detail")
                        .HasForeignKey("Timeline.Entities.UserDetail", "UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });
#pragma warning restore 612, 618
        }
    }
}