//
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using backend.Data;
#nullable disable
namespace backend.Migrations
{
[DbContext(typeof(AppDbContext))]
partial class AppDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.0")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("backend.Models.KhatmItem", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("Points")
.HasColumnType("int");
b.Property("Title")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property("Url")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Id");
b.ToTable("KhatmItems");
b.HasData(
new
{
Id = 1,
Points = 5,
Title = "ختم نادعلی",
Url = "https://example.com/khatm/nadali"
},
new
{
Id = 2,
Points = 10,
Title = "خطبه غدیر",
Url = "https://example.com/khatm/ghadir"
},
new
{
Id = 3,
Points = 7,
Title = "دعای توسل",
Url = "https://example.com/khatm/tavassol"
});
});
modelBuilder.Entity("backend.Models.QuizQuestion", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("CorrectOption")
.HasColumnType("int");
b.Property("Option1")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property("Option2")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property("Option3")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property("Option4")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property("QuestionText")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Id");
b.ToTable("QuizQuestions");
b.HasData(
new
{
Id = 1,
CorrectOption = 3,
Option1 = "در مورد ثمرات ولایت و محبت اهلبیت",
Option2 = "در مورد جنبه غضب الهی",
Option3 = "در مورد امام مهدی علیهالسلام",
Option4 = "اقرار لسانی",
QuestionText = "هشتمین بخش خطبه غدیر در چه موضوعی است؟"
},
new
{
Id = 2,
CorrectOption = 1,
Option1 = "این لقب به دستور مستقیم از جانب خداوند به ایشان داده شد",
Option2 = "پیامبر اکرم، خودشان این لقب را انتخاب کردند",
Option3 = "مردم به علت فضائل بسیار ایشان، این لقب را انتخاب کردند",
Option4 = "به درخواست خود ایشان بود",
QuestionText = "لقب «امیرالمؤمنین» توسط چه کسی به مولا علی علیهالسلام اطلاق شد؟"
},
new
{
Id = 3,
CorrectOption = 3,
Option1 = "کسانی که خبر اسلام به آنان نرسیده است",
Option2 = "کسانی که در مدیریت زمان ضعیف هستند",
Option3 = "دشمنان آل محمد (صلیاللهعلیهوآله)",
Option4 = "اهل کتاب",
QuestionText = "طبق فرمایش پیامبر اکرم در غدیر، عبارت «إِنَّ الإِنسَانَ لَفِي خُسْرٍ»، «انسان در زیان است» درباره چه کسانی است؟"
},
new
{
Id = 4,
CorrectOption = 4,
Option1 = "آيه 31 سوره نور",
Option2 = "آيه 58 – 60 سوره نور",
Option3 = "آيه 59 – 60 سوره احزاب",
Option4 = "آيه 59 – 60 سوره نساء",
QuestionText = "كدام يك از آيات زير مربوط به حجاب نمي باشد؟"
},
new
{
Id = 5,
CorrectOption = 3,
Option1 = "پوشش – عفاف",
Option2 = "ترك نظر – پوشش",
Option3 = "ترك نظر – پاكدامني",
Option4 = "پوشش – پاكدامني",
QuestionText = "اين قسمت از آيه 31 سوره نور « قل للمومنات يغضضن من ابصار هن و يحفظن فروجهن» بيانگر كدام دو تكليف است؟"
},
new
{
Id = 6,
CorrectOption = 1,
Option1 = "زنان سالخورده اي كه اميدي به ازدواج ايشان نمي باشد",
Option2 = "بردگان و مملوكان",
Option3 = "طفيلياني كه نيازي به زن ندارند",
Option4 = "اطفال نابالغ ولو مميز نزديك به بلوغ",
QuestionText = "منظور از (( قواعد )) در سوره نور آيات 58-60 چه كساني هستند؟"
},
new
{
Id = 7,
CorrectOption = 3,
Option1 = "سوره کهف آیه ۲۸",
Option2 = "سوره انعام آیه ۶۱",
Option3 = "سوره زمر ۵۶",
Option4 = "سوره طه ۴۵",
QuestionText = "در کدام آیه از قرآن مجید خداوند می فرماید که درباره علی تفریط و کوتاهی نکنید؟"
},
new
{
Id = 8,
CorrectOption = 2,
Option1 = "تعيين امامت ،علی عليه السلام",
Option2 = "تبليغ امامت، علی عليه السلام",
Option3 = "تعيين و تبليغ امامت، علی عليه السلام",
Option4 = "سپردن تعیین امامت به مردم",
QuestionText = "طبق آیه 67 سوره مائده وظيفه رسول خدا در برابر امامت چيست و آيه در شأن چه كسی نازل شده است؟\n«يَا أَيُّهَا الرَّسُولُ بَلِّغْ مَا أُنْزِلَ إِلَيْكَ مِنْ رَبِّكَ وَإِنْ لَمْ تَفْعَلْ فَمَا بَلَّغْتَ رِسَالَتَهُ ...»"
},
new
{
Id = 9,
CorrectOption = 1,
Option1 = "عید غدیر، روز تبلیغ و معرفی امیرالمومنین به عنوان جانشین پیامبر",
Option2 = "روز جمعه",
Option3 = "عید قربان، حج تمتع",
Option4 = "عید فطر، پایان یک ماه بندگی",
QuestionText = "طبق روایت امام رضا علیه السلام برترین عید امت اسلامی کدام است؟"
},
new
{
Id = 10,
CorrectOption = 4,
Option1 = "با ابلاغ ولایت و امامت امیرالمومنین(علیه السلام) توسط پیامبر اکرم(صلی الله علیه و آله) دین کامل گشت",
Option2 = "خداوند با ابلاغ ولایت و امامت امیرالمومنین(علیه السلام) و یازده فرزند پاکشان از اسلام اعلام رضایت فرمودند",
Option3 = "شرط اینکه دین شخص مسلمان مورد رضایت خداوند متعال قرار گیرد پذیرش ولایت و امامت ائمه (علیهم السلام) است",
Option4 = "امامت از فروع دین بوده و قبول یا عدم پذیرش آن لطمهای به آن شخص وارد نمیکند",
QuestionText = "با توجه به مطلبی که در آیه شریفه «الْيَوْمَ أَكْمَلْتُ لَكُمْ دِينَكُمْ وَ أَتْمَمْتُ عَلَيْكُمْ نِعْمَتِي وَ رَضِيتُ لَكُمُ الْإِسْلامَ دِينا» در روز غدیر نازل گشته است. کدام گزینه صحیح نمیباشد؟"
});
});
modelBuilder.Entity("backend.Models.User", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("Contact")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property("FullName")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property("TrackingCode")
.IsRequired()
.HasMaxLength(4)
.HasColumnType("nvarchar(4)");
b.HasKey("Id");
b.HasIndex("Contact")
.IsUnique();
b.HasIndex("TrackingCode")
.IsUnique();
b.ToTable("Users");
});
modelBuilder.Entity("backend.Models.UserKhatmSelection", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("IsSelected")
.HasColumnType("bit");
b.Property("KhatmItemId")
.HasColumnType("int");
b.Property("LastModified")
.HasColumnType("datetime2");
b.Property("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("KhatmItemId");
b.HasIndex("UserId", "KhatmItemId")
.IsUnique();
b.ToTable("UserKhatmSelections");
});
modelBuilder.Entity("backend.Models.UserQuizAnswer", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("IsCorrect")
.HasColumnType("bit");
b.Property("QuestionId")
.HasColumnType("int");
b.Property("SelectedOption")
.HasColumnType("int");
b.Property("UserQuizAttemptId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("QuestionId");
b.HasIndex("UserQuizAttemptId");
b.ToTable("UserQuizAnswers");
});
modelBuilder.Entity("backend.Models.UserQuizAttempt", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("CompletedAt")
.HasColumnType("datetime2");
b.Property("CorrectAnswersCount")
.HasColumnType("int");
b.Property("ParticipationPoints")
.HasColumnType("int");
b.Property("TotalQuizPoints")
.HasColumnType("int");
b.Property("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("UserId")
.IsUnique();
b.ToTable("UserQuizAttempts");
});
modelBuilder.Entity("backend.Models.UserTotalScore", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("TotalPoints")
.HasColumnType("int");
b.Property("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("UserId")
.IsUnique();
b.ToTable("UserTotalScores");
});
modelBuilder.Entity("backend.Models.UserKhatmSelection", b =>
{
b.HasOne("backend.Models.KhatmItem", "KhatmItem")
.WithMany("UserSelections")
.HasForeignKey("KhatmItemId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("backend.Models.User", "User")
.WithMany("KhatmSelections")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("KhatmItem");
b.Navigation("User");
});
modelBuilder.Entity("backend.Models.UserQuizAnswer", b =>
{
b.HasOne("backend.Models.QuizQuestion", "Question")
.WithMany("Answers")
.HasForeignKey("QuestionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("backend.Models.UserQuizAttempt", "QuizAttempt")
.WithMany("Answers")
.HasForeignKey("UserQuizAttemptId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Question");
b.Navigation("QuizAttempt");
});
modelBuilder.Entity("backend.Models.UserQuizAttempt", b =>
{
b.HasOne("backend.Models.User", "User")
.WithOne("QuizAttempt")
.HasForeignKey("backend.Models.UserQuizAttempt", "UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("backend.Models.UserTotalScore", b =>
{
b.HasOne("backend.Models.User", "User")
.WithOne("TotalScore")
.HasForeignKey("backend.Models.UserTotalScore", "UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("backend.Models.KhatmItem", b =>
{
b.Navigation("UserSelections");
});
modelBuilder.Entity("backend.Models.QuizQuestion", b =>
{
b.Navigation("Answers");
});
modelBuilder.Entity("backend.Models.User", b =>
{
b.Navigation("KhatmSelections");
b.Navigation("QuizAttempt");
b.Navigation("TotalScore");
});
modelBuilder.Entity("backend.Models.UserQuizAttempt", b =>
{
b.Navigation("Answers");
});
#pragma warning restore 612, 618
}
}
}