﻿// <auto-generated />
using System;
using ChapterX.Infrastructure.Data.DataContext;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;

#nullable disable

namespace ChapterX.Infrastructure.Migrations
{
    [DbContext(typeof(ApplicationDbContext))]
    [Migration("20260319165332_InitialCreate")]
    partial class InitialCreate
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "9.0.1")
                .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("ChapterX.Domain.Entities.AISuggestion", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<bool>("Accepted")
                        .HasColumnType("boolean");

                    b.Property<DateTime?>("AppliedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("OriginalText")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<int>("StoryId")
                        .HasColumnType("integer");

                    b.Property<string>("SuggestedText")
                        .IsRequired()
                        .HasColumnType("text");

                    b.PrimitiveCollection<int[]>("SuggestionTypes")
                        .IsRequired()
                        .HasColumnType("integer[]");

                    b.HasKey("Id");

                    b.HasIndex("StoryId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Admin", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("UserId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

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

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Chapter", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

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

                    b.Property<int>("Number")
                        .HasColumnType("integer");

                    b.Property<DateTime>("PublishedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<decimal?>("Rating")
                        .HasColumnType("numeric");

                    b.Property<int>("StoryId")
                        .HasColumnType("integer");

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

                    b.Property<DateTime>("UpdatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<int>("ViewCount")
                        .HasColumnType("integer");

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

                    b.HasKey("Id");

                    b.HasIndex("StoryId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Collaboration", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime>("JoinedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("Role")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<int>("StoryId")
                        .HasColumnType("integer");

                    b.Property<int>("UserId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("StoryId");

                    b.HasIndex("UserId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Comment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<int>("StoryId")
                        .HasColumnType("integer");

                    b.Property<DateTime>("UpdatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<int>("UserId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("StoryId");

                    b.HasIndex("UserId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Genre", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.HasGenre", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("GenreId")
                        .HasColumnType("integer");

                    b.Property<int>("StoryId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("GenreId");

                    b.HasIndex("StoryId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Likes", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("ChapterId")
                        .HasColumnType("integer");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

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

                    b.Property<int>("UserId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("ChapterId");

                    b.HasIndex("StoryId");

                    b.HasIndex("UserId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.NeedApproval", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

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

                    b.Property<int>("AdminId")
                        .HasColumnType("integer");

                    b.Property<bool>("Approved")
                        .HasColumnType("boolean");

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

                    b.Property<DateTime>("RequestedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<int>("StoryId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("AISuggestionId");

                    b.HasIndex("AdminId");

                    b.HasIndex("ChapterId");

                    b.HasIndex("StoryId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Notification", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasColumnType("text");

                    b.PrimitiveCollection<int[]>("ContentTypes")
                        .IsRequired()
                        .HasColumnType("integer[]");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<bool>("IsRead")
                        .HasColumnType("boolean");

                    b.HasKey("Id");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Notify", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<bool>("IsRead")
                        .HasColumnType("boolean");

                    b.Property<int>("NotificationId")
                        .HasColumnType("integer");

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

                    b.Property<int>("UserId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("NotificationId");

                    b.HasIndex("StoryId");

                    b.HasIndex("UserId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.ReadingList", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("Content")
                        .HasColumnType("text");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<bool>("IsPublic")
                        .HasColumnType("boolean");

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

                    b.Property<DateTime>("UpdatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<int>("UserId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.ReadingListItems", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime>("AddedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<int>("ReadingListId")
                        .HasColumnType("integer");

                    b.Property<int>("StoryId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("ReadingListId");

                    b.HasIndex("StoryId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.RegularUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("UserId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

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

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Story", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("Image")
                        .HasColumnType("text");

                    b.Property<bool>("MatureContent")
                        .HasColumnType("boolean");

                    b.Property<string>("ShortDescription")
                        .IsRequired()
                        .HasColumnType("text");

                    b.PrimitiveCollection<int[]>("Statuses")
                        .IsRequired()
                        .HasColumnType("integer[]");

                    b.Property<DateTime>("UpdatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<int>("UserId")
                        .HasColumnType("integer");

                    b.Property<int>("WriterId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("WriterId");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.User", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasColumnType("text");

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

                    b.Property<string>("Password")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("Surname")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<DateTime>("UpdatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("Username")
                        .IsRequired()
                        .HasColumnType("text");

                    b.HasKey("Id");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Writer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("Bio")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<int>("UserId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

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

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

            modelBuilder.Entity("ChapterX.Domain.Entities.AISuggestion", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.Story", "Story")
                        .WithMany("AISuggestions")
                        .HasForeignKey("StoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Admin", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.User", "User")
                        .WithOne("Admin")
                        .HasForeignKey("ChapterX.Domain.Entities.Admin", "UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Chapter", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.Story", "Story")
                        .WithMany("Chapters")
                        .HasForeignKey("StoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Collaboration", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.Story", "Story")
                        .WithMany("Collaborations")
                        .HasForeignKey("StoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ChapterX.Domain.Entities.User", "User")
                        .WithMany("Collaborations")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Story");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Comment", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.Story", "Story")
                        .WithMany("Comments")
                        .HasForeignKey("StoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ChapterX.Domain.Entities.User", "User")
                        .WithMany("Comments")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Story");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.HasGenre", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.Genre", "Genre")
                        .WithMany("HasGenres")
                        .HasForeignKey("GenreId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ChapterX.Domain.Entities.Story", "Story")
                        .WithMany("HasGenres")
                        .HasForeignKey("StoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Genre");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Likes", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.Chapter", "Chapter")
                        .WithMany()
                        .HasForeignKey("ChapterId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ChapterX.Domain.Entities.Story", null)
                        .WithMany("Likes")
                        .HasForeignKey("StoryId");

                    b.HasOne("ChapterX.Domain.Entities.User", "User")
                        .WithMany("Likes")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Chapter");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.NeedApproval", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.AISuggestion", null)
                        .WithMany("NeedApprovals")
                        .HasForeignKey("AISuggestionId");

                    b.HasOne("ChapterX.Domain.Entities.Admin", "Admin")
                        .WithMany()
                        .HasForeignKey("AdminId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ChapterX.Domain.Entities.Chapter", null)
                        .WithMany("NeedApprovals")
                        .HasForeignKey("ChapterId");

                    b.HasOne("ChapterX.Domain.Entities.Story", "Story")
                        .WithMany("NeedApprovals")
                        .HasForeignKey("StoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Admin");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Notify", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.Notification", "Notification")
                        .WithMany("Notifies")
                        .HasForeignKey("NotificationId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ChapterX.Domain.Entities.Story", null)
                        .WithMany("Notifies")
                        .HasForeignKey("StoryId");

                    b.HasOne("ChapterX.Domain.Entities.User", "User")
                        .WithMany("Notifies")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Notification");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.ReadingList", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.User", "User")
                        .WithMany("ReadingLists")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("ChapterX.Domain.Entities.ReadingListItems", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.ReadingList", "ReadingList")
                        .WithMany("ReadingListItems")
                        .HasForeignKey("ReadingListId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("ChapterX.Domain.Entities.Story", "Story")
                        .WithMany("ReadingListItems")
                        .HasForeignKey("StoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ReadingList");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.RegularUser", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.User", "User")
                        .WithOne("RegularUser")
                        .HasForeignKey("ChapterX.Domain.Entities.RegularUser", "UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Story", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.Writer", "Writer")
                        .WithMany("Stories")
                        .HasForeignKey("WriterId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Writer", b =>
                {
                    b.HasOne("ChapterX.Domain.Entities.User", "User")
                        .WithOne("Writer")
                        .HasForeignKey("ChapterX.Domain.Entities.Writer", "UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("ChapterX.Domain.Entities.AISuggestion", b =>
                {
                    b.Navigation("NeedApprovals");
                });

            modelBuilder.Entity("ChapterX.Domain.Entities.Chapter", b =>
                {
                    b.Navigation("NeedApprovals");
                });

            modelBuilder.Entity("ChapterX.Domain.Entities.Genre", b =>
                {
                    b.Navigation("HasGenres");
                });

            modelBuilder.Entity("ChapterX.Domain.Entities.Notification", b =>
                {
                    b.Navigation("Notifies");
                });

            modelBuilder.Entity("ChapterX.Domain.Entities.ReadingList", b =>
                {
                    b.Navigation("ReadingListItems");
                });

            modelBuilder.Entity("ChapterX.Domain.Entities.Story", b =>
                {
                    b.Navigation("AISuggestions");

                    b.Navigation("Chapters");

                    b.Navigation("Collaborations");

                    b.Navigation("Comments");

                    b.Navigation("HasGenres");

                    b.Navigation("Likes");

                    b.Navigation("NeedApprovals");

                    b.Navigation("Notifies");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.User", b =>
                {
                    b.Navigation("Admin");

                    b.Navigation("Collaborations");

                    b.Navigation("Comments");

                    b.Navigation("Likes");

                    b.Navigation("Notifies");

                    b.Navigation("ReadingLists");

                    b.Navigation("RegularUser");

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

            modelBuilder.Entity("ChapterX.Domain.Entities.Writer", b =>
                {
                    b.Navigation("Stories");
                });
#pragma warning restore 612, 618
        }
    }
}
