// <auto-generated />
using System;
using DataModel.Database.Common;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

#nullable disable

namespace DataModel.Migrations
{
    [DbContext(typeof(DataContext))]
    partial class DataContextModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder.HasAnnotation("ProductVersion", "6.0.9");

            modelBuilder.Entity("DataModel.Database.Section", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("DataKey")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("Depth")
                        .HasColumnType("INTEGER");

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

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

                    b.HasKey("Id");

                    b.HasIndex("DataKey");

                    b.HasIndex("Depth");

                    b.HasIndex("Id");

                    b.HasIndex("Name");

                    b.HasIndex("ParentId");

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

            modelBuilder.Entity("DataModel.Database.Setting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("BoolValue")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<Guid>("GuidValue")
                        .HasColumnType("TEXT");

                    b.Property<int>("IntegerValue")
                        .HasColumnType("INTEGER");

                    b.Property<string>("TextValue")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("BoolValue");

                    b.HasIndex("Code")
                        .IsUnique();

                    b.HasIndex("GuidValue");

                    b.HasIndex("Id");

                    b.HasIndex("IntegerValue");

                    b.HasIndex("TextValue");

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

            modelBuilder.Entity("DataModel.Database.TextElement", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsMultiLine")
                        .HasColumnType("INTEGER");

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

                    b.Property<int>("SectionId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("Code");

                    b.HasIndex("Id");

                    b.HasIndex("IsMultiLine");

                    b.HasIndex("Name");

                    b.HasIndex("SectionId");

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

            modelBuilder.Entity("DataModel.Database.Translation", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Culture")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("Text")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<int>("TextElementId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("Culture");

                    b.HasIndex("Id");

                    b.HasIndex("Text");

                    b.HasIndex("TextElementId");

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

            modelBuilder.Entity("DataModel.Database.Section", b =>
                {
                    b.HasOne("DataModel.Database.Section", "Parent")
                        .WithMany()
                        .HasForeignKey("ParentId");

                    b.Navigation("Parent");
                });

            modelBuilder.Entity("DataModel.Database.TextElement", b =>
                {
                    b.HasOne("DataModel.Database.Section", "Section")
                        .WithMany("TextElements")
                        .HasForeignKey("SectionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Section");
                });

            modelBuilder.Entity("DataModel.Database.Translation", b =>
                {
                    b.HasOne("DataModel.Database.TextElement", "TextElement")
                        .WithMany("Translations")
                        .HasForeignKey("TextElementId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("TextElement");
                });

            modelBuilder.Entity("DataModel.Database.Section", b =>
                {
                    b.Navigation("TextElements");
                });

            modelBuilder.Entity("DataModel.Database.TextElement", b =>
                {
                    b.Navigation("Translations");
                });
#pragma warning restore 612, 618
        }
    }
}