diff --git a/WF_EF_Api/StubbedContextLib/Migrations/20250403162101_myFirstMigration.Designer.cs b/WF_EF_Api/StubbedContextLib/Migrations/20250403162101_myFirstMigration.Designer.cs
new file mode 100644
index 0000000..f41446b
--- /dev/null
+++ b/WF_EF_Api/StubbedContextLib/Migrations/20250403162101_myFirstMigration.Designer.cs
@@ -0,0 +1,1076 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using StubbedContextLib;
+
+#nullable disable
+
+namespace StubbedContextLib.Migrations
+{
+ [DbContext(typeof(StubWTFContext))]
+ [Migration("20250403162101_myFirstMigration")]
+ partial class myFirstMigration
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "9.0.3")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("Entity.Admin", b =>
+ {
+ b.Property("IdUsers")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("IdUsers"));
+
+ b.Property("UserId")
+ .HasColumnType("integer");
+
+ b.HasKey("IdUsers");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("admins");
+ });
+
+ modelBuilder.Entity("Entity.Character", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("IdImage")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdImage");
+
+ b.ToTable("characters");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ IdImage = 1,
+ Name = "Alan Grant"
+ },
+ new
+ {
+ Id = 2,
+ IdImage = 2,
+ Name = "Aragorn"
+ },
+ new
+ {
+ Id = 3,
+ IdImage = 3,
+ Name = "Legolas"
+ },
+ new
+ {
+ Id = 4,
+ IdImage = 4,
+ Name = "Frodon"
+ },
+ new
+ {
+ Id = 5,
+ IdImage = 5,
+ Name = "Dobby"
+ },
+ new
+ {
+ Id = 6,
+ IdImage = 6,
+ Name = "Jon Snow"
+ },
+ new
+ {
+ Id = 7,
+ IdImage = 7,
+ Name = "Daenerys Targaryen"
+ },
+ new
+ {
+ Id = 8,
+ IdImage = 8,
+ Name = "Luke Skywalker"
+ },
+ new
+ {
+ Id = 9,
+ IdImage = 9,
+ Name = "Princess Leia"
+ },
+ new
+ {
+ Id = 10,
+ IdImage = 10,
+ Name = "Harry Potter"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Commentary", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Comment")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("DateCommentary")
+ .HasColumnType("date")
+ .HasColumnName("DateCommentary");
+
+ b.Property("IdQuote")
+ .HasColumnType("integer");
+
+ b.Property("IdUser")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdQuote");
+
+ b.HasIndex("IdUser");
+
+ b.ToTable("comments");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Comment = "Ce film est le meilleur",
+ DateCommentary = new DateTime(2025, 2, 3, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ IdQuote = 1,
+ IdUser = 2
+ },
+ new
+ {
+ Id = 2,
+ Comment = "Very good",
+ DateCommentary = new DateTime(2025, 3, 11, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ IdQuote = 1,
+ IdUser = 3
+ });
+ });
+
+ modelBuilder.Entity("Entity.Favorite", b =>
+ {
+ b.Property("IdQuote")
+ .HasColumnType("integer");
+
+ b.Property("IdUsers")
+ .HasColumnType("integer");
+
+ b.HasKey("IdQuote", "IdUsers");
+
+ b.HasIndex("IdUsers");
+
+ b.ToTable("favorites");
+
+ b.HasData(
+ new
+ {
+ IdQuote = 2,
+ IdUsers = 8
+ },
+ new
+ {
+ IdQuote = 5,
+ IdUsers = 3
+ },
+ new
+ {
+ IdQuote = 9,
+ IdUsers = 1
+ },
+ new
+ {
+ IdQuote = 4,
+ IdUsers = 10
+ },
+ new
+ {
+ IdQuote = 3,
+ IdUsers = 2
+ },
+ new
+ {
+ IdQuote = 6,
+ IdUsers = 7
+ },
+ new
+ {
+ IdQuote = 1,
+ IdUsers = 6
+ },
+ new
+ {
+ IdQuote = 8,
+ IdUsers = 9
+ },
+ new
+ {
+ IdQuote = 10,
+ IdUsers = 5
+ });
+ });
+
+ modelBuilder.Entity("Entity.Images", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ImgPath")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("images");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ ImgPath = "https://th.bing.com/th/id/OIP.TJuWNCsibz8MVmhdNQEdMwHaE8?w=244&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 2,
+ ImgPath = "https://th.bing.com/th/id/OIP.NgXRQ5-IknA6_qOPFhLWIwHaHK?w=165&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 3,
+ ImgPath = "https://th.bing.com/th/id/OIP.XcJoJ6bC9sAMjol1pJn5UQHaLH?w=118&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 4,
+ ImgPath = "https://th.bing.com/th/id/OIP.PPIESqZaNDa-qUcfSDXhdQHaGK?w=210&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 5,
+ ImgPath = "https://th.bing.com/th/id/OIP.XBghSl2kfRNNtQoSxc901wHaHa?w=177&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 6,
+ ImgPath = "https://th.bing.com/th/id/OIP.af1Aid64cqEKoIOBgCPxtQHaJO?w=145&h=182&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 7,
+ ImgPath = "https://th.bing.com/th/id/OIP.ri5vSXr5lNTLt4DO6KQXyQHaI4?w=158&h=189&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 8,
+ ImgPath = "https://th.bing.com/th/id/OIP.uPTRLR8uspCiafiunUqKfQHaMJ?w=115&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 9,
+ ImgPath = "https://th.bing.com/th/id/OIP.hcJis4rKbyQtugsoFJU2ngHaM_?w=118&h=207&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 10,
+ ImgPath = "https://th.bing.com/th/id/OIP.Py1_XfUrKJY_A6tYEmFS5wHaE8?w=280&h=187&c=7&r=0&o=5&pid=1.7"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Question", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("AnswerA")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("AnswerB")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("AnswerC")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("AnswerD")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("CorrectAnswer")
+ .IsRequired()
+ .HasMaxLength(1)
+ .HasColumnType("character varying(1)");
+
+ b.Property("IsValid")
+ .HasColumnType("boolean");
+
+ b.Property("Text")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.HasKey("Id");
+
+ b.ToTable("question");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ AnswerA = "Gimli",
+ AnswerB = "Aragorn",
+ AnswerC = "Frodon",
+ AnswerD = "Gandalf",
+ CorrectAnswer = "B",
+ IsValid = true,
+ Text = "Qui est le leader de la Communauté de l'Anneau ?"
+ },
+ new
+ {
+ Id = 2,
+ AnswerA = "Serdaigle",
+ AnswerB = "Gryffondor",
+ AnswerC = "Serpentard",
+ AnswerD = "Poufsouffle",
+ CorrectAnswer = "B",
+ IsValid = false,
+ Text = "Dans quelle maison Harry Potter est-il ?"
+ },
+ new
+ {
+ Id = 3,
+ AnswerA = "Saroumane",
+ AnswerB = "Sauron",
+ AnswerC = "Gollum",
+ AnswerD = "Gothmog",
+ CorrectAnswer = "B",
+ IsValid = true,
+ Text = "Qui est le Seigneur des Ténèbres dans la saga Le Seigneur des Anneaux ?"
+ },
+ new
+ {
+ Id = 4,
+ AnswerA = "Han Solo",
+ AnswerB = "Princesse Leia",
+ AnswerC = "Chewbacca",
+ AnswerD = "R2-D2",
+ CorrectAnswer = "A",
+ IsValid = true,
+ Text = "Dans le film Star Wars : Episode IV, qui sauve Luke Skywalker de l'Étoile de la Mort ?"
+ },
+ new
+ {
+ Id = 5,
+ AnswerA = "Reine Jadis",
+ AnswerB = "Aslan",
+ AnswerC = "Edmund",
+ AnswerD = "Lucy",
+ CorrectAnswer = "B",
+ IsValid = true,
+ Text = "Qui est le souverain de Narnia dans Le Lion, la Sorcière Blanche et l'Armoire Magique ?"
+ },
+ new
+ {
+ Id = 6,
+ AnswerA = "Smaug",
+ AnswerB = "Falkor",
+ AnswerC = "Norbert",
+ AnswerD = "Shenron",
+ CorrectAnswer = "A",
+ IsValid = true,
+ Text = "Quel est le nom du dragon dans Le Hobbit ?"
+ },
+ new
+ {
+ Id = 7,
+ AnswerA = "Bella Swan",
+ AnswerB = "Edward Cullen",
+ AnswerC = "Jacob Black",
+ AnswerD = "Victoria",
+ CorrectAnswer = "A",
+ IsValid = true,
+ Text = "Qui est la première personne à être mordue par un vampire dans Twilight ?"
+ },
+ new
+ {
+ Id = 8,
+ AnswerA = "Obi-Wan Kenobi",
+ AnswerB = "Yoda",
+ AnswerC = "Han Solo",
+ AnswerD = "Luke Skywalker",
+ CorrectAnswer = "A",
+ IsValid = true,
+ Text = "Quel personnage dit Que la Force soit avec toi dans Star Wars ?"
+ },
+ new
+ {
+ Id = 9,
+ AnswerA = "Dr. Ellie Sattler",
+ AnswerB = "Alan Grant",
+ AnswerC = "John Hammond",
+ AnswerD = "Dennis Nedry",
+ CorrectAnswer = "B",
+ IsValid = true,
+ Text = "Dans Jurassic Park, quel est le nom du paléontologue sur l'île ?"
+ },
+ new
+ {
+ Id = 10,
+ AnswerA = "Cersei Lannister",
+ AnswerB = "Arya Stark",
+ AnswerC = "Daenerys Targaryen",
+ AnswerD = "Sansa Stark",
+ CorrectAnswer = "C",
+ IsValid = true,
+ Text = "Dans Game of Thrones, qui est surnommée la Mère des Dragons ?"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Quiz", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("IdImage")
+ .HasColumnType("integer");
+
+ b.Property("NbQuestion")
+ .HasColumnType("integer");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdImage");
+
+ b.ToTable("quizzes");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ IdImage = 1,
+ NbQuestion = 5,
+ Title = "Quiz 1"
+ },
+ new
+ {
+ Id = 2,
+ IdImage = 2,
+ NbQuestion = 5,
+ Title = "Quiz 2"
+ });
+ });
+
+ modelBuilder.Entity("Entity.QuizQuestion", b =>
+ {
+ b.Property("IdQuestion")
+ .HasColumnType("integer");
+
+ b.Property("IdQuiz")
+ .HasColumnType("integer");
+
+ b.HasKey("IdQuestion", "IdQuiz");
+
+ b.HasIndex("IdQuiz");
+
+ b.ToTable("QuizQuestion");
+
+ b.HasData(
+ new
+ {
+ IdQuestion = 1,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 2,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 3,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 4,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 5,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 6,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 7,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 8,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 9,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 10,
+ IdQuiz = 2
+ });
+ });
+
+ modelBuilder.Entity("Entity.Quote", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Content")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("IdCharacter")
+ .HasColumnType("integer");
+
+ b.Property("IdSource")
+ .HasColumnType("integer");
+
+ b.Property("IdUsersPropose")
+ .HasColumnType("integer");
+
+ b.Property("IsValid")
+ .HasColumnType("boolean");
+
+ b.Property("Langage")
+ .HasColumnType("integer");
+
+ b.Property("Likes")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdCharacter");
+
+ b.HasIndex("IdSource");
+
+ b.HasIndex("IdUsersPropose");
+
+ b.ToTable("quotes");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Content = "Je n'y crois pas. Je n'y crois pas. Ce n'est pas possible",
+ IdCharacter = 1,
+ IdSource = 1,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 2,
+ Content = "There is always hope",
+ IdCharacter = 2,
+ IdSource = 2,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 3,
+ Content = "A red sun rises. Blood has been spilled this night.",
+ IdCharacter = 3,
+ IdSource = 2,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 4,
+ Content = "I wish the Ring had never come to me.I wish none of this had happened.",
+ IdCharacter = 4,
+ IdSource = 2,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 5,
+ Content = "Dobby is a free elf!",
+ IdCharacter = 5,
+ IdSource = 4,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 6,
+ Content = "Winter is comming",
+ IdCharacter = 6,
+ IdSource = 3,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 7,
+ Content = "Je suis la dernière Targaryen. Je suis la reine des dragons",
+ IdCharacter = 7,
+ IdSource = 3,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 8,
+ Content = "Je ne suis pas prêt à affronter ça. C'est trop pour moi.",
+ IdCharacter = 8,
+ IdSource = 5,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 9,
+ Content = "Aidez-moi, Obi-Wan Kenobi, vous êtes mon seul espoir.",
+ IdCharacter = 9,
+ IdSource = 5,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 10,
+ Content = "La quoi ?",
+ IdCharacter = 10,
+ IdSource = 4,
+ IdUsersPropose = 1,
+ IsValid = false,
+ Langage = 1,
+ Likes = 11025
+ });
+ });
+
+ modelBuilder.Entity("Entity.Source", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("TypeSrc")
+ .HasColumnType("integer");
+
+ b.Property("Year")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.ToTable("sources");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Title = "Jurassic Park",
+ TypeSrc = 0,
+ Year = 1993
+ },
+ new
+ {
+ Id = 2,
+ Title = "Le Seigneur des anneaux : La Communauté de l'anneau",
+ TypeSrc = 0,
+ Year = 2001
+ },
+ new
+ {
+ Id = 3,
+ Title = "Game of throne",
+ TypeSrc = 1,
+ Year = 2011
+ },
+ new
+ {
+ Id = 4,
+ Title = "Harry Potter à l'école des sorcier",
+ TypeSrc = 0,
+ Year = 1997
+ },
+ new
+ {
+ Id = 5,
+ Title = "Star Wars, épisode IV : Un nouvel espoir",
+ TypeSrc = 0,
+ Year = 1977
+ });
+ });
+
+ modelBuilder.Entity("Entity.Users", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Created")
+ .HasColumnType("date")
+ .HasColumnName("Created");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("IdImage")
+ .HasColumnType("integer");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("UserName")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdImage");
+
+ b.ToTable("users");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Created = new DateTime(2025, 5, 12, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "jhonDhoe@gmail.com",
+ IdImage = 1,
+ Password = "1234",
+ UserName = "Jhon-Dhoe"
+ },
+ new
+ {
+ Id = 2,
+ Created = new DateTime(2025, 3, 19, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "lucy_rose@outlook.com",
+ IdImage = 2,
+ Password = "abcd",
+ UserName = "Lucy-Rose"
+ },
+ new
+ {
+ Id = 3,
+ Created = new DateTime(2024, 11, 2, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "mark.taylor@yahoo.com",
+ IdImage = 3,
+ Password = "5678",
+ UserName = "Mark-Taylor"
+ },
+ new
+ {
+ Id = 4,
+ Created = new DateTime(2025, 2, 28, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "sophie.martin@gmail.com",
+ IdImage = 4,
+ Password = "4321",
+ UserName = "Sophie-Martin"
+ },
+ new
+ {
+ Id = 5,
+ Created = new DateTime(2025, 1, 15, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "nathan_doe@aol.com",
+ IdImage = 5,
+ Password = "8765",
+ UserName = "Nathan-Doe"
+ },
+ new
+ {
+ Id = 6,
+ Created = new DateTime(2025, 4, 7, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "ella.brown@icloud.com",
+ IdImage = 6,
+ Password = "2468",
+ UserName = "Ella-Brown"
+ },
+ new
+ {
+ Id = 7,
+ Created = new DateTime(2024, 12, 25, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "oliver_smith@gmail.com",
+ IdImage = 7,
+ Password = "1357",
+ UserName = "Oliver-Smith"
+ },
+ new
+ {
+ Id = 8,
+ Created = new DateTime(2025, 3, 5, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "mia.jones@outlook.com",
+ IdImage = 8,
+ Password = "1122",
+ UserName = "Mia-Jones"
+ },
+ new
+ {
+ Id = 9,
+ Created = new DateTime(2025, 2, 22, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "kevin_williams@aol.com",
+ IdImage = 9,
+ Password = "2233",
+ UserName = "Kevin-Williams"
+ },
+ new
+ {
+ Id = 10,
+ Created = new DateTime(2025, 1, 3, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "olivia.white@yahoo.com",
+ IdImage = 10,
+ Password = "3344",
+ UserName = "Olivia-White"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Admin", b =>
+ {
+ b.HasOne("Entity.Users", "User")
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Entity.Character", b =>
+ {
+ b.HasOne("Entity.Images", "Images")
+ .WithMany("Characters")
+ .HasForeignKey("IdImage")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Images");
+ });
+
+ modelBuilder.Entity("Entity.Commentary", b =>
+ {
+ b.HasOne("Entity.Quote", "Quote")
+ .WithMany("Commentarys")
+ .HasForeignKey("IdQuote")
+ .OnDelete(DeleteBehavior.ClientCascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Users", "User")
+ .WithMany()
+ .HasForeignKey("IdUser")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Quote");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Entity.Favorite", b =>
+ {
+ b.HasOne("Entity.Quote", "Quote")
+ .WithMany()
+ .HasForeignKey("IdQuote")
+ .OnDelete(DeleteBehavior.ClientCascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Users", "Users")
+ .WithMany()
+ .HasForeignKey("IdUsers")
+ .OnDelete(DeleteBehavior.ClientCascade)
+ .IsRequired();
+
+ b.Navigation("Quote");
+
+ b.Navigation("Users");
+ });
+
+ modelBuilder.Entity("Entity.Quiz", b =>
+ {
+ b.HasOne("Entity.Images", "Images")
+ .WithMany("Quizs")
+ .HasForeignKey("IdImage")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Images");
+ });
+
+ modelBuilder.Entity("Entity.QuizQuestion", b =>
+ {
+ b.HasOne("Entity.Question", null)
+ .WithMany()
+ .HasForeignKey("IdQuestion")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Quiz", null)
+ .WithMany()
+ .HasForeignKey("IdQuiz")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Entity.Quote", b =>
+ {
+ b.HasOne("Entity.Character", "Character")
+ .WithMany("Quotes")
+ .HasForeignKey("IdCharacter")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Source", "Source")
+ .WithMany("Quotes")
+ .HasForeignKey("IdSource")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Users", "User")
+ .WithMany("Quotes")
+ .HasForeignKey("IdUsersPropose");
+
+ b.Navigation("Character");
+
+ b.Navigation("Source");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Entity.Users", b =>
+ {
+ b.HasOne("Entity.Images", "Images")
+ .WithMany("Users")
+ .HasForeignKey("IdImage")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Images");
+ });
+
+ modelBuilder.Entity("Entity.Character", b =>
+ {
+ b.Navigation("Quotes");
+ });
+
+ modelBuilder.Entity("Entity.Images", b =>
+ {
+ b.Navigation("Characters");
+
+ b.Navigation("Quizs");
+
+ b.Navigation("Users");
+ });
+
+ modelBuilder.Entity("Entity.Quote", b =>
+ {
+ b.Navigation("Commentarys");
+ });
+
+ modelBuilder.Entity("Entity.Source", b =>
+ {
+ b.Navigation("Quotes");
+ });
+
+ modelBuilder.Entity("Entity.Users", b =>
+ {
+ b.Navigation("Quotes");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/WF_EF_Api/StubbedContextLib/Migrations/20250403162101_myFirstMigration.cs b/WF_EF_Api/StubbedContextLib/Migrations/20250403162101_myFirstMigration.cs
new file mode 100644
index 0000000..2363a8c
--- /dev/null
+++ b/WF_EF_Api/StubbedContextLib/Migrations/20250403162101_myFirstMigration.cs
@@ -0,0 +1,497 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
+
+namespace StubbedContextLib.Migrations
+{
+ ///
+ public partial class myFirstMigration : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "images",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ ImgPath = table.Column(type: "text", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_images", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "question",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ Text = table.Column(type: "character varying(200)", maxLength: 200, nullable: false),
+ AnswerA = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
+ AnswerB = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
+ AnswerC = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
+ AnswerD = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
+ CorrectAnswer = table.Column(type: "character varying(1)", maxLength: 1, nullable: false),
+ IsValid = table.Column(type: "boolean", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_question", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "sources",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ Title = table.Column(type: "character varying(100)", maxLength: 100, nullable: false),
+ Year = table.Column(type: "integer", nullable: false),
+ TypeSrc = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_sources", x => x.Id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "characters",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ Name = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
+ IdImage = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_characters", x => x.Id);
+ table.ForeignKey(
+ name: "FK_characters_images_IdImage",
+ column: x => x.IdImage,
+ principalTable: "images",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "quizzes",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ Title = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
+ IdImage = table.Column(type: "integer", nullable: false),
+ NbQuestion = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_quizzes", x => x.Id);
+ table.ForeignKey(
+ name: "FK_quizzes_images_IdImage",
+ column: x => x.IdImage,
+ principalTable: "images",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "users",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ UserName = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
+ Email = table.Column(type: "character varying(50)", maxLength: 50, nullable: false),
+ Password = table.Column(type: "character varying(200)", maxLength: 200, nullable: false),
+ IdImage = table.Column(type: "integer", nullable: false),
+ Created = table.Column(type: "date", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_users", x => x.Id);
+ table.ForeignKey(
+ name: "FK_users_images_IdImage",
+ column: x => x.IdImage,
+ principalTable: "images",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "QuizQuestion",
+ columns: table => new
+ {
+ IdQuiz = table.Column(type: "integer", nullable: false),
+ IdQuestion = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_QuizQuestion", x => new { x.IdQuestion, x.IdQuiz });
+ table.ForeignKey(
+ name: "FK_QuizQuestion_question_IdQuestion",
+ column: x => x.IdQuestion,
+ principalTable: "question",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_QuizQuestion_quizzes_IdQuiz",
+ column: x => x.IdQuiz,
+ principalTable: "quizzes",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "admins",
+ columns: table => new
+ {
+ IdUsers = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ UserId = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_admins", x => x.IdUsers);
+ table.ForeignKey(
+ name: "FK_admins_users_UserId",
+ column: x => x.UserId,
+ principalTable: "users",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "quotes",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ Content = table.Column(type: "character varying(100)", maxLength: 100, nullable: false),
+ Likes = table.Column(type: "integer", nullable: false),
+ Langage = table.Column(type: "integer", nullable: false),
+ IsValid = table.Column(type: "boolean", nullable: false),
+ IdCharacter = table.Column(type: "integer", nullable: false),
+ IdSource = table.Column(type: "integer", nullable: false),
+ IdUsersPropose = table.Column(type: "integer", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_quotes", x => x.Id);
+ table.ForeignKey(
+ name: "FK_quotes_characters_IdCharacter",
+ column: x => x.IdCharacter,
+ principalTable: "characters",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_quotes_sources_IdSource",
+ column: x => x.IdSource,
+ principalTable: "sources",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "FK_quotes_users_IdUsersPropose",
+ column: x => x.IdUsersPropose,
+ principalTable: "users",
+ principalColumn: "Id");
+ });
+
+ migrationBuilder.CreateTable(
+ name: "comments",
+ columns: table => new
+ {
+ Id = table.Column(type: "integer", nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ IdUser = table.Column(type: "integer", nullable: false),
+ IdQuote = table.Column(type: "integer", nullable: false),
+ DateCommentary = table.Column(type: "date", nullable: false),
+ Comment = table.Column(type: "character varying(100)", maxLength: 100, nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_comments", x => x.Id);
+ table.ForeignKey(
+ name: "FK_comments_quotes_IdQuote",
+ column: x => x.IdQuote,
+ principalTable: "quotes",
+ principalColumn: "Id");
+ table.ForeignKey(
+ name: "FK_comments_users_IdUser",
+ column: x => x.IdUser,
+ principalTable: "users",
+ principalColumn: "Id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "favorites",
+ columns: table => new
+ {
+ IdUsers = table.Column(type: "integer", nullable: false),
+ IdQuote = table.Column(type: "integer", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_favorites", x => new { x.IdQuote, x.IdUsers });
+ table.ForeignKey(
+ name: "FK_favorites_quotes_IdQuote",
+ column: x => x.IdQuote,
+ principalTable: "quotes",
+ principalColumn: "Id");
+ table.ForeignKey(
+ name: "FK_favorites_users_IdUsers",
+ column: x => x.IdUsers,
+ principalTable: "users",
+ principalColumn: "Id");
+ });
+
+ migrationBuilder.InsertData(
+ table: "images",
+ columns: new[] { "Id", "ImgPath" },
+ values: new object[,]
+ {
+ { 1, "https://th.bing.com/th/id/OIP.TJuWNCsibz8MVmhdNQEdMwHaE8?w=244&h=180&c=7&r=0&o=5&pid=1.7" },
+ { 2, "https://th.bing.com/th/id/OIP.NgXRQ5-IknA6_qOPFhLWIwHaHK?w=165&h=180&c=7&r=0&o=5&pid=1.7" },
+ { 3, "https://th.bing.com/th/id/OIP.XcJoJ6bC9sAMjol1pJn5UQHaLH?w=118&h=180&c=7&r=0&o=5&pid=1.7" },
+ { 4, "https://th.bing.com/th/id/OIP.PPIESqZaNDa-qUcfSDXhdQHaGK?w=210&h=180&c=7&r=0&o=5&pid=1.7" },
+ { 5, "https://th.bing.com/th/id/OIP.XBghSl2kfRNNtQoSxc901wHaHa?w=177&h=180&c=7&r=0&o=5&pid=1.7" },
+ { 6, "https://th.bing.com/th/id/OIP.af1Aid64cqEKoIOBgCPxtQHaJO?w=145&h=182&c=7&r=0&o=5&pid=1.7" },
+ { 7, "https://th.bing.com/th/id/OIP.ri5vSXr5lNTLt4DO6KQXyQHaI4?w=158&h=189&c=7&r=0&o=5&pid=1.7" },
+ { 8, "https://th.bing.com/th/id/OIP.uPTRLR8uspCiafiunUqKfQHaMJ?w=115&h=180&c=7&r=0&o=5&pid=1.7" },
+ { 9, "https://th.bing.com/th/id/OIP.hcJis4rKbyQtugsoFJU2ngHaM_?w=118&h=207&c=7&r=0&o=5&pid=1.7" },
+ { 10, "https://th.bing.com/th/id/OIP.Py1_XfUrKJY_A6tYEmFS5wHaE8?w=280&h=187&c=7&r=0&o=5&pid=1.7" }
+ });
+
+ migrationBuilder.InsertData(
+ table: "question",
+ columns: new[] { "Id", "AnswerA", "AnswerB", "AnswerC", "AnswerD", "CorrectAnswer", "IsValid", "Text" },
+ values: new object[,]
+ {
+ { 1, "Gimli", "Aragorn", "Frodon", "Gandalf", "B", true, "Qui est le leader de la Communauté de l'Anneau ?" },
+ { 2, "Serdaigle", "Gryffondor", "Serpentard", "Poufsouffle", "B", false, "Dans quelle maison Harry Potter est-il ?" },
+ { 3, "Saroumane", "Sauron", "Gollum", "Gothmog", "B", true, "Qui est le Seigneur des Ténèbres dans la saga Le Seigneur des Anneaux ?" },
+ { 4, "Han Solo", "Princesse Leia", "Chewbacca", "R2-D2", "A", true, "Dans le film Star Wars : Episode IV, qui sauve Luke Skywalker de l'Étoile de la Mort ?" },
+ { 5, "Reine Jadis", "Aslan", "Edmund", "Lucy", "B", true, "Qui est le souverain de Narnia dans Le Lion, la Sorcière Blanche et l'Armoire Magique ?" },
+ { 6, "Smaug", "Falkor", "Norbert", "Shenron", "A", true, "Quel est le nom du dragon dans Le Hobbit ?" },
+ { 7, "Bella Swan", "Edward Cullen", "Jacob Black", "Victoria", "A", true, "Qui est la première personne à être mordue par un vampire dans Twilight ?" },
+ { 8, "Obi-Wan Kenobi", "Yoda", "Han Solo", "Luke Skywalker", "A", true, "Quel personnage dit Que la Force soit avec toi dans Star Wars ?" },
+ { 9, "Dr. Ellie Sattler", "Alan Grant", "John Hammond", "Dennis Nedry", "B", true, "Dans Jurassic Park, quel est le nom du paléontologue sur l'île ?" },
+ { 10, "Cersei Lannister", "Arya Stark", "Daenerys Targaryen", "Sansa Stark", "C", true, "Dans Game of Thrones, qui est surnommée la Mère des Dragons ?" }
+ });
+
+ migrationBuilder.InsertData(
+ table: "sources",
+ columns: new[] { "Id", "Title", "TypeSrc", "Year" },
+ values: new object[,]
+ {
+ { 1, "Jurassic Park", 0, 1993 },
+ { 2, "Le Seigneur des anneaux : La Communauté de l'anneau", 0, 2001 },
+ { 3, "Game of throne", 1, 2011 },
+ { 4, "Harry Potter à l'école des sorcier", 0, 1997 },
+ { 5, "Star Wars, épisode IV : Un nouvel espoir", 0, 1977 }
+ });
+
+ migrationBuilder.InsertData(
+ table: "characters",
+ columns: new[] { "Id", "IdImage", "Name" },
+ values: new object[,]
+ {
+ { 1, 1, "Alan Grant" },
+ { 2, 2, "Aragorn" },
+ { 3, 3, "Legolas" },
+ { 4, 4, "Frodon" },
+ { 5, 5, "Dobby" },
+ { 6, 6, "Jon Snow" },
+ { 7, 7, "Daenerys Targaryen" },
+ { 8, 8, "Luke Skywalker" },
+ { 9, 9, "Princess Leia" },
+ { 10, 10, "Harry Potter" }
+ });
+
+ migrationBuilder.InsertData(
+ table: "quizzes",
+ columns: new[] { "Id", "IdImage", "NbQuestion", "Title" },
+ values: new object[,]
+ {
+ { 1, 1, 5, "Quiz 1" },
+ { 2, 2, 5, "Quiz 2" }
+ });
+
+ migrationBuilder.InsertData(
+ table: "users",
+ columns: new[] { "Id", "Created", "Email", "IdImage", "Password", "UserName" },
+ values: new object[,]
+ {
+ { 1, new DateTime(2025, 5, 12, 0, 0, 0, 0, DateTimeKind.Unspecified), "jhonDhoe@gmail.com", 1, "1234", "Jhon-Dhoe" },
+ { 2, new DateTime(2025, 3, 19, 0, 0, 0, 0, DateTimeKind.Unspecified), "lucy_rose@outlook.com", 2, "abcd", "Lucy-Rose" },
+ { 3, new DateTime(2024, 11, 2, 0, 0, 0, 0, DateTimeKind.Unspecified), "mark.taylor@yahoo.com", 3, "5678", "Mark-Taylor" },
+ { 4, new DateTime(2025, 2, 28, 0, 0, 0, 0, DateTimeKind.Unspecified), "sophie.martin@gmail.com", 4, "4321", "Sophie-Martin" },
+ { 5, new DateTime(2025, 1, 15, 0, 0, 0, 0, DateTimeKind.Unspecified), "nathan_doe@aol.com", 5, "8765", "Nathan-Doe" },
+ { 6, new DateTime(2025, 4, 7, 0, 0, 0, 0, DateTimeKind.Unspecified), "ella.brown@icloud.com", 6, "2468", "Ella-Brown" },
+ { 7, new DateTime(2024, 12, 25, 0, 0, 0, 0, DateTimeKind.Unspecified), "oliver_smith@gmail.com", 7, "1357", "Oliver-Smith" },
+ { 8, new DateTime(2025, 3, 5, 0, 0, 0, 0, DateTimeKind.Unspecified), "mia.jones@outlook.com", 8, "1122", "Mia-Jones" },
+ { 9, new DateTime(2025, 2, 22, 0, 0, 0, 0, DateTimeKind.Unspecified), "kevin_williams@aol.com", 9, "2233", "Kevin-Williams" },
+ { 10, new DateTime(2025, 1, 3, 0, 0, 0, 0, DateTimeKind.Unspecified), "olivia.white@yahoo.com", 10, "3344", "Olivia-White" }
+ });
+
+ migrationBuilder.InsertData(
+ table: "QuizQuestion",
+ columns: new[] { "IdQuestion", "IdQuiz" },
+ values: new object[,]
+ {
+ { 1, 1 },
+ { 2, 1 },
+ { 3, 1 },
+ { 4, 1 },
+ { 5, 1 },
+ { 6, 2 },
+ { 7, 2 },
+ { 8, 2 },
+ { 9, 2 },
+ { 10, 2 }
+ });
+
+ migrationBuilder.InsertData(
+ table: "quotes",
+ columns: new[] { "Id", "Content", "IdCharacter", "IdSource", "IdUsersPropose", "IsValid", "Langage", "Likes" },
+ values: new object[,]
+ {
+ { 1, "Je n'y crois pas. Je n'y crois pas. Ce n'est pas possible", 1, 1, 1, true, 1, 11025 },
+ { 2, "There is always hope", 2, 2, 1, true, 0, 11025 },
+ { 3, "A red sun rises. Blood has been spilled this night.", 3, 2, 1, true, 0, 11025 },
+ { 4, "I wish the Ring had never come to me.I wish none of this had happened.", 4, 2, 1, true, 0, 11025 },
+ { 5, "Dobby is a free elf!", 5, 4, 1, true, 0, 11025 },
+ { 6, "Winter is comming", 6, 3, 1, true, 0, 11025 },
+ { 7, "Je suis la dernière Targaryen. Je suis la reine des dragons", 7, 3, 1, true, 1, 11025 },
+ { 8, "Je ne suis pas prêt à affronter ça. C'est trop pour moi.", 8, 5, 1, true, 1, 11025 },
+ { 9, "Aidez-moi, Obi-Wan Kenobi, vous êtes mon seul espoir.", 9, 5, 1, true, 1, 11025 },
+ { 10, "La quoi ?", 10, 4, 1, false, 1, 11025 }
+ });
+
+ migrationBuilder.InsertData(
+ table: "comments",
+ columns: new[] { "Id", "Comment", "DateCommentary", "IdQuote", "IdUser" },
+ values: new object[,]
+ {
+ { 1, "Ce film est le meilleur", new DateTime(2025, 2, 3, 0, 0, 0, 0, DateTimeKind.Unspecified), 1, 2 },
+ { 2, "Very good", new DateTime(2025, 3, 11, 0, 0, 0, 0, DateTimeKind.Unspecified), 1, 3 }
+ });
+
+ migrationBuilder.InsertData(
+ table: "favorites",
+ columns: new[] { "IdQuote", "IdUsers" },
+ values: new object[,]
+ {
+ { 1, 6 },
+ { 2, 8 },
+ { 3, 2 },
+ { 4, 10 },
+ { 5, 3 },
+ { 6, 7 },
+ { 8, 9 },
+ { 9, 1 },
+ { 10, 5 }
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_admins_UserId",
+ table: "admins",
+ column: "UserId");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_characters_IdImage",
+ table: "characters",
+ column: "IdImage");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_comments_IdQuote",
+ table: "comments",
+ column: "IdQuote");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_comments_IdUser",
+ table: "comments",
+ column: "IdUser");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_favorites_IdUsers",
+ table: "favorites",
+ column: "IdUsers");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_QuizQuestion_IdQuiz",
+ table: "QuizQuestion",
+ column: "IdQuiz");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_quizzes_IdImage",
+ table: "quizzes",
+ column: "IdImage");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_quotes_IdCharacter",
+ table: "quotes",
+ column: "IdCharacter");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_quotes_IdSource",
+ table: "quotes",
+ column: "IdSource");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_quotes_IdUsersPropose",
+ table: "quotes",
+ column: "IdUsersPropose");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_users_IdImage",
+ table: "users",
+ column: "IdImage");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "admins");
+
+ migrationBuilder.DropTable(
+ name: "comments");
+
+ migrationBuilder.DropTable(
+ name: "favorites");
+
+ migrationBuilder.DropTable(
+ name: "QuizQuestion");
+
+ migrationBuilder.DropTable(
+ name: "quotes");
+
+ migrationBuilder.DropTable(
+ name: "question");
+
+ migrationBuilder.DropTable(
+ name: "quizzes");
+
+ migrationBuilder.DropTable(
+ name: "characters");
+
+ migrationBuilder.DropTable(
+ name: "sources");
+
+ migrationBuilder.DropTable(
+ name: "users");
+
+ migrationBuilder.DropTable(
+ name: "images");
+ }
+ }
+}
diff --git a/WF_EF_Api/StubbedContextLib/Migrations/StubWTFContextModelSnapshot.cs b/WF_EF_Api/StubbedContextLib/Migrations/StubWTFContextModelSnapshot.cs
new file mode 100644
index 0000000..fa6eee1
--- /dev/null
+++ b/WF_EF_Api/StubbedContextLib/Migrations/StubWTFContextModelSnapshot.cs
@@ -0,0 +1,1073 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using StubbedContextLib;
+
+#nullable disable
+
+namespace StubbedContextLib.Migrations
+{
+ [DbContext(typeof(StubWTFContext))]
+ partial class StubWTFContextModelSnapshot : ModelSnapshot
+ {
+ protected override void BuildModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "9.0.3")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("Entity.Admin", b =>
+ {
+ b.Property("IdUsers")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("IdUsers"));
+
+ b.Property("UserId")
+ .HasColumnType("integer");
+
+ b.HasKey("IdUsers");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("admins");
+ });
+
+ modelBuilder.Entity("Entity.Character", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("IdImage")
+ .HasColumnType("integer");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdImage");
+
+ b.ToTable("characters");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ IdImage = 1,
+ Name = "Alan Grant"
+ },
+ new
+ {
+ Id = 2,
+ IdImage = 2,
+ Name = "Aragorn"
+ },
+ new
+ {
+ Id = 3,
+ IdImage = 3,
+ Name = "Legolas"
+ },
+ new
+ {
+ Id = 4,
+ IdImage = 4,
+ Name = "Frodon"
+ },
+ new
+ {
+ Id = 5,
+ IdImage = 5,
+ Name = "Dobby"
+ },
+ new
+ {
+ Id = 6,
+ IdImage = 6,
+ Name = "Jon Snow"
+ },
+ new
+ {
+ Id = 7,
+ IdImage = 7,
+ Name = "Daenerys Targaryen"
+ },
+ new
+ {
+ Id = 8,
+ IdImage = 8,
+ Name = "Luke Skywalker"
+ },
+ new
+ {
+ Id = 9,
+ IdImage = 9,
+ Name = "Princess Leia"
+ },
+ new
+ {
+ Id = 10,
+ IdImage = 10,
+ Name = "Harry Potter"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Commentary", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Comment")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("DateCommentary")
+ .HasColumnType("date")
+ .HasColumnName("DateCommentary");
+
+ b.Property("IdQuote")
+ .HasColumnType("integer");
+
+ b.Property("IdUser")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdQuote");
+
+ b.HasIndex("IdUser");
+
+ b.ToTable("comments");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Comment = "Ce film est le meilleur",
+ DateCommentary = new DateTime(2025, 2, 3, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ IdQuote = 1,
+ IdUser = 2
+ },
+ new
+ {
+ Id = 2,
+ Comment = "Very good",
+ DateCommentary = new DateTime(2025, 3, 11, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ IdQuote = 1,
+ IdUser = 3
+ });
+ });
+
+ modelBuilder.Entity("Entity.Favorite", b =>
+ {
+ b.Property("IdQuote")
+ .HasColumnType("integer");
+
+ b.Property("IdUsers")
+ .HasColumnType("integer");
+
+ b.HasKey("IdQuote", "IdUsers");
+
+ b.HasIndex("IdUsers");
+
+ b.ToTable("favorites");
+
+ b.HasData(
+ new
+ {
+ IdQuote = 2,
+ IdUsers = 8
+ },
+ new
+ {
+ IdQuote = 5,
+ IdUsers = 3
+ },
+ new
+ {
+ IdQuote = 9,
+ IdUsers = 1
+ },
+ new
+ {
+ IdQuote = 4,
+ IdUsers = 10
+ },
+ new
+ {
+ IdQuote = 3,
+ IdUsers = 2
+ },
+ new
+ {
+ IdQuote = 6,
+ IdUsers = 7
+ },
+ new
+ {
+ IdQuote = 1,
+ IdUsers = 6
+ },
+ new
+ {
+ IdQuote = 8,
+ IdUsers = 9
+ },
+ new
+ {
+ IdQuote = 10,
+ IdUsers = 5
+ });
+ });
+
+ modelBuilder.Entity("Entity.Images", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("ImgPath")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("images");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ ImgPath = "https://th.bing.com/th/id/OIP.TJuWNCsibz8MVmhdNQEdMwHaE8?w=244&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 2,
+ ImgPath = "https://th.bing.com/th/id/OIP.NgXRQ5-IknA6_qOPFhLWIwHaHK?w=165&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 3,
+ ImgPath = "https://th.bing.com/th/id/OIP.XcJoJ6bC9sAMjol1pJn5UQHaLH?w=118&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 4,
+ ImgPath = "https://th.bing.com/th/id/OIP.PPIESqZaNDa-qUcfSDXhdQHaGK?w=210&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 5,
+ ImgPath = "https://th.bing.com/th/id/OIP.XBghSl2kfRNNtQoSxc901wHaHa?w=177&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 6,
+ ImgPath = "https://th.bing.com/th/id/OIP.af1Aid64cqEKoIOBgCPxtQHaJO?w=145&h=182&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 7,
+ ImgPath = "https://th.bing.com/th/id/OIP.ri5vSXr5lNTLt4DO6KQXyQHaI4?w=158&h=189&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 8,
+ ImgPath = "https://th.bing.com/th/id/OIP.uPTRLR8uspCiafiunUqKfQHaMJ?w=115&h=180&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 9,
+ ImgPath = "https://th.bing.com/th/id/OIP.hcJis4rKbyQtugsoFJU2ngHaM_?w=118&h=207&c=7&r=0&o=5&pid=1.7"
+ },
+ new
+ {
+ Id = 10,
+ ImgPath = "https://th.bing.com/th/id/OIP.Py1_XfUrKJY_A6tYEmFS5wHaE8?w=280&h=187&c=7&r=0&o=5&pid=1.7"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Question", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("AnswerA")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("AnswerB")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("AnswerC")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("AnswerD")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("CorrectAnswer")
+ .IsRequired()
+ .HasMaxLength(1)
+ .HasColumnType("character varying(1)");
+
+ b.Property("IsValid")
+ .HasColumnType("boolean");
+
+ b.Property("Text")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.HasKey("Id");
+
+ b.ToTable("question");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ AnswerA = "Gimli",
+ AnswerB = "Aragorn",
+ AnswerC = "Frodon",
+ AnswerD = "Gandalf",
+ CorrectAnswer = "B",
+ IsValid = true,
+ Text = "Qui est le leader de la Communauté de l'Anneau ?"
+ },
+ new
+ {
+ Id = 2,
+ AnswerA = "Serdaigle",
+ AnswerB = "Gryffondor",
+ AnswerC = "Serpentard",
+ AnswerD = "Poufsouffle",
+ CorrectAnswer = "B",
+ IsValid = false,
+ Text = "Dans quelle maison Harry Potter est-il ?"
+ },
+ new
+ {
+ Id = 3,
+ AnswerA = "Saroumane",
+ AnswerB = "Sauron",
+ AnswerC = "Gollum",
+ AnswerD = "Gothmog",
+ CorrectAnswer = "B",
+ IsValid = true,
+ Text = "Qui est le Seigneur des Ténèbres dans la saga Le Seigneur des Anneaux ?"
+ },
+ new
+ {
+ Id = 4,
+ AnswerA = "Han Solo",
+ AnswerB = "Princesse Leia",
+ AnswerC = "Chewbacca",
+ AnswerD = "R2-D2",
+ CorrectAnswer = "A",
+ IsValid = true,
+ Text = "Dans le film Star Wars : Episode IV, qui sauve Luke Skywalker de l'Étoile de la Mort ?"
+ },
+ new
+ {
+ Id = 5,
+ AnswerA = "Reine Jadis",
+ AnswerB = "Aslan",
+ AnswerC = "Edmund",
+ AnswerD = "Lucy",
+ CorrectAnswer = "B",
+ IsValid = true,
+ Text = "Qui est le souverain de Narnia dans Le Lion, la Sorcière Blanche et l'Armoire Magique ?"
+ },
+ new
+ {
+ Id = 6,
+ AnswerA = "Smaug",
+ AnswerB = "Falkor",
+ AnswerC = "Norbert",
+ AnswerD = "Shenron",
+ CorrectAnswer = "A",
+ IsValid = true,
+ Text = "Quel est le nom du dragon dans Le Hobbit ?"
+ },
+ new
+ {
+ Id = 7,
+ AnswerA = "Bella Swan",
+ AnswerB = "Edward Cullen",
+ AnswerC = "Jacob Black",
+ AnswerD = "Victoria",
+ CorrectAnswer = "A",
+ IsValid = true,
+ Text = "Qui est la première personne à être mordue par un vampire dans Twilight ?"
+ },
+ new
+ {
+ Id = 8,
+ AnswerA = "Obi-Wan Kenobi",
+ AnswerB = "Yoda",
+ AnswerC = "Han Solo",
+ AnswerD = "Luke Skywalker",
+ CorrectAnswer = "A",
+ IsValid = true,
+ Text = "Quel personnage dit Que la Force soit avec toi dans Star Wars ?"
+ },
+ new
+ {
+ Id = 9,
+ AnswerA = "Dr. Ellie Sattler",
+ AnswerB = "Alan Grant",
+ AnswerC = "John Hammond",
+ AnswerD = "Dennis Nedry",
+ CorrectAnswer = "B",
+ IsValid = true,
+ Text = "Dans Jurassic Park, quel est le nom du paléontologue sur l'île ?"
+ },
+ new
+ {
+ Id = 10,
+ AnswerA = "Cersei Lannister",
+ AnswerB = "Arya Stark",
+ AnswerC = "Daenerys Targaryen",
+ AnswerD = "Sansa Stark",
+ CorrectAnswer = "C",
+ IsValid = true,
+ Text = "Dans Game of Thrones, qui est surnommée la Mère des Dragons ?"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Quiz", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("IdImage")
+ .HasColumnType("integer");
+
+ b.Property("NbQuestion")
+ .HasColumnType("integer");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdImage");
+
+ b.ToTable("quizzes");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ IdImage = 1,
+ NbQuestion = 5,
+ Title = "Quiz 1"
+ },
+ new
+ {
+ Id = 2,
+ IdImage = 2,
+ NbQuestion = 5,
+ Title = "Quiz 2"
+ });
+ });
+
+ modelBuilder.Entity("Entity.QuizQuestion", b =>
+ {
+ b.Property("IdQuestion")
+ .HasColumnType("integer");
+
+ b.Property("IdQuiz")
+ .HasColumnType("integer");
+
+ b.HasKey("IdQuestion", "IdQuiz");
+
+ b.HasIndex("IdQuiz");
+
+ b.ToTable("QuizQuestion");
+
+ b.HasData(
+ new
+ {
+ IdQuestion = 1,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 2,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 3,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 4,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 5,
+ IdQuiz = 1
+ },
+ new
+ {
+ IdQuestion = 6,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 7,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 8,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 9,
+ IdQuiz = 2
+ },
+ new
+ {
+ IdQuestion = 10,
+ IdQuiz = 2
+ });
+ });
+
+ modelBuilder.Entity("Entity.Quote", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Content")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("IdCharacter")
+ .HasColumnType("integer");
+
+ b.Property("IdSource")
+ .HasColumnType("integer");
+
+ b.Property("IdUsersPropose")
+ .HasColumnType("integer");
+
+ b.Property("IsValid")
+ .HasColumnType("boolean");
+
+ b.Property("Langage")
+ .HasColumnType("integer");
+
+ b.Property("Likes")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdCharacter");
+
+ b.HasIndex("IdSource");
+
+ b.HasIndex("IdUsersPropose");
+
+ b.ToTable("quotes");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Content = "Je n'y crois pas. Je n'y crois pas. Ce n'est pas possible",
+ IdCharacter = 1,
+ IdSource = 1,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 2,
+ Content = "There is always hope",
+ IdCharacter = 2,
+ IdSource = 2,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 3,
+ Content = "A red sun rises. Blood has been spilled this night.",
+ IdCharacter = 3,
+ IdSource = 2,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 4,
+ Content = "I wish the Ring had never come to me.I wish none of this had happened.",
+ IdCharacter = 4,
+ IdSource = 2,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 5,
+ Content = "Dobby is a free elf!",
+ IdCharacter = 5,
+ IdSource = 4,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 6,
+ Content = "Winter is comming",
+ IdCharacter = 6,
+ IdSource = 3,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 0,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 7,
+ Content = "Je suis la dernière Targaryen. Je suis la reine des dragons",
+ IdCharacter = 7,
+ IdSource = 3,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 8,
+ Content = "Je ne suis pas prêt à affronter ça. C'est trop pour moi.",
+ IdCharacter = 8,
+ IdSource = 5,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 9,
+ Content = "Aidez-moi, Obi-Wan Kenobi, vous êtes mon seul espoir.",
+ IdCharacter = 9,
+ IdSource = 5,
+ IdUsersPropose = 1,
+ IsValid = true,
+ Langage = 1,
+ Likes = 11025
+ },
+ new
+ {
+ Id = 10,
+ Content = "La quoi ?",
+ IdCharacter = 10,
+ IdSource = 4,
+ IdUsersPropose = 1,
+ IsValid = false,
+ Langage = 1,
+ Likes = 11025
+ });
+ });
+
+ modelBuilder.Entity("Entity.Source", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("character varying(100)");
+
+ b.Property("TypeSrc")
+ .HasColumnType("integer");
+
+ b.Property("Year")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.ToTable("sources");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Title = "Jurassic Park",
+ TypeSrc = 0,
+ Year = 1993
+ },
+ new
+ {
+ Id = 2,
+ Title = "Le Seigneur des anneaux : La Communauté de l'anneau",
+ TypeSrc = 0,
+ Year = 2001
+ },
+ new
+ {
+ Id = 3,
+ Title = "Game of throne",
+ TypeSrc = 1,
+ Year = 2011
+ },
+ new
+ {
+ Id = 4,
+ Title = "Harry Potter à l'école des sorcier",
+ TypeSrc = 0,
+ Year = 1997
+ },
+ new
+ {
+ Id = 5,
+ Title = "Star Wars, épisode IV : Un nouvel espoir",
+ TypeSrc = 0,
+ Year = 1977
+ });
+ });
+
+ modelBuilder.Entity("Entity.Users", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Created")
+ .HasColumnType("date")
+ .HasColumnName("Created");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.Property("IdImage")
+ .HasColumnType("integer");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("character varying(200)");
+
+ b.Property("UserName")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("character varying(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IdImage");
+
+ b.ToTable("users");
+
+ b.HasData(
+ new
+ {
+ Id = 1,
+ Created = new DateTime(2025, 5, 12, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "jhonDhoe@gmail.com",
+ IdImage = 1,
+ Password = "1234",
+ UserName = "Jhon-Dhoe"
+ },
+ new
+ {
+ Id = 2,
+ Created = new DateTime(2025, 3, 19, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "lucy_rose@outlook.com",
+ IdImage = 2,
+ Password = "abcd",
+ UserName = "Lucy-Rose"
+ },
+ new
+ {
+ Id = 3,
+ Created = new DateTime(2024, 11, 2, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "mark.taylor@yahoo.com",
+ IdImage = 3,
+ Password = "5678",
+ UserName = "Mark-Taylor"
+ },
+ new
+ {
+ Id = 4,
+ Created = new DateTime(2025, 2, 28, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "sophie.martin@gmail.com",
+ IdImage = 4,
+ Password = "4321",
+ UserName = "Sophie-Martin"
+ },
+ new
+ {
+ Id = 5,
+ Created = new DateTime(2025, 1, 15, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "nathan_doe@aol.com",
+ IdImage = 5,
+ Password = "8765",
+ UserName = "Nathan-Doe"
+ },
+ new
+ {
+ Id = 6,
+ Created = new DateTime(2025, 4, 7, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "ella.brown@icloud.com",
+ IdImage = 6,
+ Password = "2468",
+ UserName = "Ella-Brown"
+ },
+ new
+ {
+ Id = 7,
+ Created = new DateTime(2024, 12, 25, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "oliver_smith@gmail.com",
+ IdImage = 7,
+ Password = "1357",
+ UserName = "Oliver-Smith"
+ },
+ new
+ {
+ Id = 8,
+ Created = new DateTime(2025, 3, 5, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "mia.jones@outlook.com",
+ IdImage = 8,
+ Password = "1122",
+ UserName = "Mia-Jones"
+ },
+ new
+ {
+ Id = 9,
+ Created = new DateTime(2025, 2, 22, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "kevin_williams@aol.com",
+ IdImage = 9,
+ Password = "2233",
+ UserName = "Kevin-Williams"
+ },
+ new
+ {
+ Id = 10,
+ Created = new DateTime(2025, 1, 3, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Email = "olivia.white@yahoo.com",
+ IdImage = 10,
+ Password = "3344",
+ UserName = "Olivia-White"
+ });
+ });
+
+ modelBuilder.Entity("Entity.Admin", b =>
+ {
+ b.HasOne("Entity.Users", "User")
+ .WithMany()
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Entity.Character", b =>
+ {
+ b.HasOne("Entity.Images", "Images")
+ .WithMany("Characters")
+ .HasForeignKey("IdImage")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Images");
+ });
+
+ modelBuilder.Entity("Entity.Commentary", b =>
+ {
+ b.HasOne("Entity.Quote", "Quote")
+ .WithMany("Commentarys")
+ .HasForeignKey("IdQuote")
+ .OnDelete(DeleteBehavior.ClientCascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Users", "User")
+ .WithMany()
+ .HasForeignKey("IdUser")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Quote");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Entity.Favorite", b =>
+ {
+ b.HasOne("Entity.Quote", "Quote")
+ .WithMany()
+ .HasForeignKey("IdQuote")
+ .OnDelete(DeleteBehavior.ClientCascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Users", "Users")
+ .WithMany()
+ .HasForeignKey("IdUsers")
+ .OnDelete(DeleteBehavior.ClientCascade)
+ .IsRequired();
+
+ b.Navigation("Quote");
+
+ b.Navigation("Users");
+ });
+
+ modelBuilder.Entity("Entity.Quiz", b =>
+ {
+ b.HasOne("Entity.Images", "Images")
+ .WithMany("Quizs")
+ .HasForeignKey("IdImage")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Images");
+ });
+
+ modelBuilder.Entity("Entity.QuizQuestion", b =>
+ {
+ b.HasOne("Entity.Question", null)
+ .WithMany()
+ .HasForeignKey("IdQuestion")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Quiz", null)
+ .WithMany()
+ .HasForeignKey("IdQuiz")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("Entity.Quote", b =>
+ {
+ b.HasOne("Entity.Character", "Character")
+ .WithMany("Quotes")
+ .HasForeignKey("IdCharacter")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Source", "Source")
+ .WithMany("Quotes")
+ .HasForeignKey("IdSource")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Entity.Users", "User")
+ .WithMany("Quotes")
+ .HasForeignKey("IdUsersPropose");
+
+ b.Navigation("Character");
+
+ b.Navigation("Source");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Entity.Users", b =>
+ {
+ b.HasOne("Entity.Images", "Images")
+ .WithMany("Users")
+ .HasForeignKey("IdImage")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Images");
+ });
+
+ modelBuilder.Entity("Entity.Character", b =>
+ {
+ b.Navigation("Quotes");
+ });
+
+ modelBuilder.Entity("Entity.Images", b =>
+ {
+ b.Navigation("Characters");
+
+ b.Navigation("Quizs");
+
+ b.Navigation("Users");
+ });
+
+ modelBuilder.Entity("Entity.Quote", b =>
+ {
+ b.Navigation("Commentarys");
+ });
+
+ modelBuilder.Entity("Entity.Source", b =>
+ {
+ b.Navigation("Quotes");
+ });
+
+ modelBuilder.Entity("Entity.Users", b =>
+ {
+ b.Navigation("Quotes");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/WF_EF_Api/StubbedContextLib/StubWTFContext.cs b/WF_EF_Api/StubbedContextLib/StubWTFContext.cs
index 0d45157..e95e3b2 100644
--- a/WF_EF_Api/StubbedContextLib/StubWTFContext.cs
+++ b/WF_EF_Api/StubbedContextLib/StubWTFContext.cs
@@ -145,11 +145,7 @@ namespace StubbedContextLib
{
if (!options.IsConfigured)
{
- options.UseNpgsql(
- $"Host={Environment.GetEnvironmentVariable("DB_SERVER_API")};" +
- $" Database ={Environment.GetEnvironmentVariable("DB_DATABASE_API")};" +
- $" Username ={Environment.GetEnvironmentVariable("DB_USER_API")};" +
- $" Password ={Environment.GetEnvironmentVariable("DB_PASSWORD_API")};");
+ options.UseNpgsql("Host=WhatTheFantasy-wtf-api-test;Database=wtf-test;Username=test;Password=test;");
//options.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Wf-Database.mdf;Trusted_Connection=True;");
}
}