Update to last EF Core

This commit is contained in:
Maxime Boulay
2025-05-15 14:56:46 +02:00
parent 934ab9e869
commit b1f115d889
12 changed files with 9869 additions and 8351 deletions

BIN
.DS_Store vendored

Binary file not shown.

BIN
backend/.DS_Store vendored

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,873 @@
// <auto-generated />
using System;
using GiecChallenge.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace GiecChallenge.Migrations
{
[DbContext(typeof(GiecChallengeContext))]
[Migration("20250514052424_AddForms")]
partial class AddForms
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.4")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("GiecChallenge.Models.CarbonLoan", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("dateBegin")
.HasColumnType("timestamp without time zone");
b.Property<DateTime>("dateEnd")
.HasColumnType("timestamp without time zone");
b.Property<Guid>("productPurchaseid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("productPurchaseid");
b.HasIndex("userid");
b.ToTable("CarbonLoans");
});
modelBuilder.Entity("GiecChallenge.Models.Currency", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("ISOCode")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.ToTable("Currencies");
});
modelBuilder.Entity("GiecChallenge.Models.CurrencyLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("currencyid")
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("currencyid");
b.HasIndex("languageid");
b.ToTable("CurrencyLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestion", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("Order")
.HasColumnType("integer");
b.HasKey("id");
b.ToTable("FormQuestions");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswer", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("formQuestionid")
.HasColumnType("uuid");
b.Property<int>("order")
.HasColumnType("integer");
b.HasKey("id");
b.HasIndex("formQuestionid");
b.ToTable("FormQuestionsAnswers");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("answerid")
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("text")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("answerid");
b.HasIndex("languageid");
b.ToTable("FormQuestionsAnswersLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerUser", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("answerid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("answerid");
b.HasIndex("userid");
b.ToTable("FormQuestionsAnswersUsers");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<Guid>("questionid")
.HasColumnType("uuid");
b.Property<string>("text")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("languageid");
b.HasIndex("questionid");
b.ToTable("FormQuestionsLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.Language", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("ISOCode")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.ToTable("Languages");
});
modelBuilder.Entity("GiecChallenge.Models.LanguageLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("names")
.HasColumnType("uuid");
b.Property<Guid>("usedToTranlateLanguage")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("names");
b.HasIndex("usedToTranlateLanguage");
b.ToTable("LanguageLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.Product", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<double>("CO2")
.HasColumnType("double precision");
b.Property<string>("CO2Unit")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Discriminator")
.IsRequired()
.HasMaxLength(8)
.HasColumnType("character varying(8)");
b.Property<int>("amortization")
.HasColumnType("integer");
b.Property<Guid>("subgroupid")
.HasColumnType("uuid");
b.Property<double>("water")
.HasColumnType("double precision");
b.Property<string>("waterUnit")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("subgroupid");
b.ToTable("Products");
b.HasDiscriminator().HasValue("Product");
b.UseTphMappingStrategy();
});
modelBuilder.Entity("GiecChallenge.Models.ProductGroup", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.HasKey("id");
b.ToTable("ProductGroups");
});
modelBuilder.Entity("GiecChallenge.Models.ProductGroupLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("productgroupid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("languageid");
b.HasIndex("productgroupid");
b.ToTable("ProductGroupLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.ProductLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid?>("Productid")
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("Productid");
b.HasIndex("languageid");
b.ToTable("ProductLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.ProductPurchase", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<double>("CO2Cost")
.HasColumnType("double precision");
b.Property<Guid>("currencyid")
.HasColumnType("uuid");
b.Property<double>("price")
.HasColumnType("double precision");
b.Property<Guid>("productid")
.HasColumnType("uuid");
b.Property<Guid>("purchaseid")
.HasColumnType("uuid");
b.Property<double>("quantity")
.HasColumnType("double precision");
b.HasKey("id");
b.HasIndex("currencyid");
b.HasIndex("productid");
b.HasIndex("purchaseid");
b.ToTable("ProductPurchases");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroup", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("Groupeid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("Groupeid");
b.ToTable("ProductSubGroups");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroupLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid?>("ProductSubGroupid")
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("ProductSubGroupid");
b.HasIndex("languageid");
b.ToTable("ProductSubGroupLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.ProductUserTranslation", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("productid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("productid");
b.HasIndex("userid");
b.ToTable("ProductUserTranslations");
});
modelBuilder.Entity("GiecChallenge.Models.Purchase", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("datePurchase")
.HasColumnType("timestamp without time zone");
b.Property<Guid?>("initialPurchaseid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("initialPurchaseid");
b.HasIndex("userid");
b.ToTable("Purchases");
});
modelBuilder.Entity("GiecChallenge.Models.User", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("creationDate")
.HasColumnType("timestamp without time zone");
b.Property<string>("email")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("favoriteLanguageid")
.HasColumnType("uuid");
b.Property<byte[]>("hash")
.IsRequired()
.HasColumnType("bytea");
b.Property<string>("password")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("favoriteLanguageid");
b.ToTable("Users");
});
modelBuilder.Entity("GiecChallenge.Models.UserGroup", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.ToTable("UserGroups");
});
modelBuilder.Entity("GiecChallenge.Models.UserInGroup", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("userGroupid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("userGroupid");
b.HasIndex("userid");
b.ToTable("UserInGroup");
});
modelBuilder.Entity("GiecChallenge.Models.Aliment", b =>
{
b.HasBaseType("GiecChallenge.Models.Product");
b.Property<string>("ciqual")
.IsRequired()
.HasColumnType("text");
b.HasDiscriminator().HasValue("Aliment");
});
modelBuilder.Entity("GiecChallenge.Models.CarbonLoan", b =>
{
b.HasOne("GiecChallenge.Models.ProductPurchase", "productPurchase")
.WithMany()
.HasForeignKey("productPurchaseid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany()
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("productPurchase");
b.Navigation("user");
});
modelBuilder.Entity("GiecChallenge.Models.CurrencyLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Currency", "currency")
.WithMany("names")
.HasForeignKey("currencyid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("currency");
b.Navigation("language");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswer", b =>
{
b.HasOne("GiecChallenge.Models.FormQuestion", "formQuestion")
.WithMany()
.HasForeignKey("formQuestionid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("formQuestion");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerLanguage", b =>
{
b.HasOne("GiecChallenge.Models.FormQuestionsAnswer", "answer")
.WithMany()
.HasForeignKey("answerid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("answer");
b.Navigation("language");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerUser", b =>
{
b.HasOne("GiecChallenge.Models.FormQuestionsAnswer", "answer")
.WithMany()
.HasForeignKey("answerid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany()
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("answer");
b.Navigation("user");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.FormQuestion", "question")
.WithMany()
.HasForeignKey("questionid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
b.Navigation("question");
});
modelBuilder.Entity("GiecChallenge.Models.LanguageLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Language", "languageToChange")
.WithMany("names")
.HasForeignKey("names")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany("usedToTranlateLanguage")
.HasForeignKey("usedToTranlateLanguage")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
b.Navigation("languageToChange");
});
modelBuilder.Entity("GiecChallenge.Models.Product", b =>
{
b.HasOne("GiecChallenge.Models.ProductSubGroup", "subgroup")
.WithMany()
.HasForeignKey("subgroupid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("subgroup");
});
modelBuilder.Entity("GiecChallenge.Models.ProductGroupLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.ProductGroup", "productgroup")
.WithMany("names")
.HasForeignKey("productgroupid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
b.Navigation("productgroup");
});
modelBuilder.Entity("GiecChallenge.Models.ProductLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Product", null)
.WithMany("names")
.HasForeignKey("Productid");
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
});
modelBuilder.Entity("GiecChallenge.Models.ProductPurchase", b =>
{
b.HasOne("GiecChallenge.Models.Currency", "currency")
.WithMany()
.HasForeignKey("currencyid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Product", "product")
.WithMany()
.HasForeignKey("productid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Purchase", "purchase")
.WithMany("products")
.HasForeignKey("purchaseid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("currency");
b.Navigation("product");
b.Navigation("purchase");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroup", b =>
{
b.HasOne("GiecChallenge.Models.ProductGroup", "Groupe")
.WithMany()
.HasForeignKey("Groupeid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Groupe");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroupLanguage", b =>
{
b.HasOne("GiecChallenge.Models.ProductSubGroup", null)
.WithMany("names")
.HasForeignKey("ProductSubGroupid");
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
});
modelBuilder.Entity("GiecChallenge.Models.ProductUserTranslation", b =>
{
b.HasOne("GiecChallenge.Models.Product", "product")
.WithMany()
.HasForeignKey("productid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany()
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("product");
b.Navigation("user");
});
modelBuilder.Entity("GiecChallenge.Models.Purchase", b =>
{
b.HasOne("GiecChallenge.Models.Purchase", "initialPurchase")
.WithMany()
.HasForeignKey("initialPurchaseid");
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany()
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("initialPurchase");
b.Navigation("user");
});
modelBuilder.Entity("GiecChallenge.Models.User", b =>
{
b.HasOne("GiecChallenge.Models.Language", "favoriteLanguage")
.WithMany()
.HasForeignKey("favoriteLanguageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("favoriteLanguage");
});
modelBuilder.Entity("GiecChallenge.Models.UserInGroup", b =>
{
b.HasOne("GiecChallenge.Models.UserGroup", "userGroup")
.WithMany()
.HasForeignKey("userGroupid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany("groups")
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("user");
b.Navigation("userGroup");
});
modelBuilder.Entity("GiecChallenge.Models.Currency", b =>
{
b.Navigation("names");
});
modelBuilder.Entity("GiecChallenge.Models.Language", b =>
{
b.Navigation("names");
b.Navigation("usedToTranlateLanguage");
});
modelBuilder.Entity("GiecChallenge.Models.Product", b =>
{
b.Navigation("names");
});
modelBuilder.Entity("GiecChallenge.Models.ProductGroup", b =>
{
b.Navigation("names");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroup", b =>
{
b.Navigation("names");
});
modelBuilder.Entity("GiecChallenge.Models.Purchase", b =>
{
b.Navigation("products");
});
modelBuilder.Entity("GiecChallenge.Models.User", b =>
{
b.Navigation("groups");
});
#pragma warning restore 612, 618
}
}
}

View File

@@ -0,0 +1,195 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace GiecChallenge.Migrations
{
/// <inheritdoc />
public partial class AddForms : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Discriminator",
table: "Products",
type: "character varying(8)",
maxLength: 8,
nullable: false,
oldClrType: typeof(string),
oldType: "text");
migrationBuilder.CreateTable(
name: "FormQuestions",
columns: table => new
{
id = table.Column<Guid>(type: "uuid", nullable: false),
Order = table.Column<int>(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FormQuestions", x => x.id);
});
migrationBuilder.CreateTable(
name: "FormQuestionsAnswers",
columns: table => new
{
id = table.Column<Guid>(type: "uuid", nullable: false),
formQuestionid = table.Column<Guid>(type: "uuid", nullable: false),
order = table.Column<int>(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FormQuestionsAnswers", x => x.id);
table.ForeignKey(
name: "FK_FormQuestionsAnswers_FormQuestions_formQuestionid",
column: x => x.formQuestionid,
principalTable: "FormQuestions",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "FormQuestionsLanguages",
columns: table => new
{
id = table.Column<Guid>(type: "uuid", nullable: false),
questionid = table.Column<Guid>(type: "uuid", nullable: false),
languageid = table.Column<Guid>(type: "uuid", nullable: false),
text = table.Column<string>(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FormQuestionsLanguages", x => x.id);
table.ForeignKey(
name: "FK_FormQuestionsLanguages_FormQuestions_questionid",
column: x => x.questionid,
principalTable: "FormQuestions",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_FormQuestionsLanguages_Languages_languageid",
column: x => x.languageid,
principalTable: "Languages",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "FormQuestionsAnswersLanguages",
columns: table => new
{
id = table.Column<Guid>(type: "uuid", nullable: false),
answerid = table.Column<Guid>(type: "uuid", nullable: false),
languageid = table.Column<Guid>(type: "uuid", nullable: false),
text = table.Column<string>(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FormQuestionsAnswersLanguages", x => x.id);
table.ForeignKey(
name: "FK_FormQuestionsAnswersLanguages_FormQuestionsAnswers_answerid",
column: x => x.answerid,
principalTable: "FormQuestionsAnswers",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_FormQuestionsAnswersLanguages_Languages_languageid",
column: x => x.languageid,
principalTable: "Languages",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "FormQuestionsAnswersUsers",
columns: table => new
{
id = table.Column<Guid>(type: "uuid", nullable: false),
answerid = table.Column<Guid>(type: "uuid", nullable: false),
userid = table.Column<Guid>(type: "uuid", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_FormQuestionsAnswersUsers", x => x.id);
table.ForeignKey(
name: "FK_FormQuestionsAnswersUsers_FormQuestionsAnswers_answerid",
column: x => x.answerid,
principalTable: "FormQuestionsAnswers",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_FormQuestionsAnswersUsers_Users_userid",
column: x => x.userid,
principalTable: "Users",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_FormQuestionsAnswers_formQuestionid",
table: "FormQuestionsAnswers",
column: "formQuestionid");
migrationBuilder.CreateIndex(
name: "IX_FormQuestionsAnswersLanguages_answerid",
table: "FormQuestionsAnswersLanguages",
column: "answerid");
migrationBuilder.CreateIndex(
name: "IX_FormQuestionsAnswersLanguages_languageid",
table: "FormQuestionsAnswersLanguages",
column: "languageid");
migrationBuilder.CreateIndex(
name: "IX_FormQuestionsAnswersUsers_answerid",
table: "FormQuestionsAnswersUsers",
column: "answerid");
migrationBuilder.CreateIndex(
name: "IX_FormQuestionsAnswersUsers_userid",
table: "FormQuestionsAnswersUsers",
column: "userid");
migrationBuilder.CreateIndex(
name: "IX_FormQuestionsLanguages_languageid",
table: "FormQuestionsLanguages",
column: "languageid");
migrationBuilder.CreateIndex(
name: "IX_FormQuestionsLanguages_questionid",
table: "FormQuestionsLanguages",
column: "questionid");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "FormQuestionsAnswersLanguages");
migrationBuilder.DropTable(
name: "FormQuestionsAnswersUsers");
migrationBuilder.DropTable(
name: "FormQuestionsLanguages");
migrationBuilder.DropTable(
name: "FormQuestionsAnswers");
migrationBuilder.DropTable(
name: "FormQuestions");
migrationBuilder.AlterColumn<string>(
name: "Discriminator",
table: "Products",
type: "text",
nullable: false,
oldClrType: typeof(string),
oldType: "character varying(8)",
oldMaxLength: 8);
}
}
}

View File

@@ -0,0 +1,873 @@
// <auto-generated />
using System;
using GiecChallenge.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace GiecChallenge.Migrations
{
[DbContext(typeof(GiecChallengeContext))]
[Migration("20250515125027_InitialCreate")]
partial class InitialCreate
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.4")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("GiecChallenge.Models.CarbonLoan", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("dateBegin")
.HasColumnType("timestamp without time zone");
b.Property<DateTime>("dateEnd")
.HasColumnType("timestamp without time zone");
b.Property<Guid>("productPurchaseid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("productPurchaseid");
b.HasIndex("userid");
b.ToTable("CarbonLoans");
});
modelBuilder.Entity("GiecChallenge.Models.Currency", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("ISOCode")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.ToTable("Currencies");
});
modelBuilder.Entity("GiecChallenge.Models.CurrencyLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("currencyid")
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("currencyid");
b.HasIndex("languageid");
b.ToTable("CurrencyLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestion", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("Order")
.HasColumnType("integer");
b.HasKey("id");
b.ToTable("FormQuestions");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswer", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("formQuestionid")
.HasColumnType("uuid");
b.Property<int>("order")
.HasColumnType("integer");
b.HasKey("id");
b.HasIndex("formQuestionid");
b.ToTable("FormQuestionsAnswers");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("answerid")
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("text")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("answerid");
b.HasIndex("languageid");
b.ToTable("FormQuestionsAnswersLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerUser", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("answerid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("answerid");
b.HasIndex("userid");
b.ToTable("FormQuestionsAnswersUsers");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<Guid>("questionid")
.HasColumnType("uuid");
b.Property<string>("text")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("languageid");
b.HasIndex("questionid");
b.ToTable("FormQuestionsLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.Language", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("ISOCode")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.ToTable("Languages");
});
modelBuilder.Entity("GiecChallenge.Models.LanguageLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("names")
.HasColumnType("uuid");
b.Property<Guid>("usedToTranlateLanguage")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("names");
b.HasIndex("usedToTranlateLanguage");
b.ToTable("LanguageLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.Product", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<double>("CO2")
.HasColumnType("double precision");
b.Property<string>("CO2Unit")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Discriminator")
.IsRequired()
.HasMaxLength(8)
.HasColumnType("character varying(8)");
b.Property<int>("amortization")
.HasColumnType("integer");
b.Property<Guid>("subgroupid")
.HasColumnType("uuid");
b.Property<double>("water")
.HasColumnType("double precision");
b.Property<string>("waterUnit")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("subgroupid");
b.ToTable("Products");
b.HasDiscriminator().HasValue("Product");
b.UseTphMappingStrategy();
});
modelBuilder.Entity("GiecChallenge.Models.ProductGroup", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.HasKey("id");
b.ToTable("ProductGroups");
});
modelBuilder.Entity("GiecChallenge.Models.ProductGroupLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("productgroupid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("languageid");
b.HasIndex("productgroupid");
b.ToTable("ProductGroupLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.ProductLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid?>("Productid")
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("Productid");
b.HasIndex("languageid");
b.ToTable("ProductLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.ProductPurchase", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<double>("CO2Cost")
.HasColumnType("double precision");
b.Property<Guid>("currencyid")
.HasColumnType("uuid");
b.Property<double>("price")
.HasColumnType("double precision");
b.Property<Guid>("productid")
.HasColumnType("uuid");
b.Property<Guid>("purchaseid")
.HasColumnType("uuid");
b.Property<double>("quantity")
.HasColumnType("double precision");
b.HasKey("id");
b.HasIndex("currencyid");
b.HasIndex("productid");
b.HasIndex("purchaseid");
b.ToTable("ProductPurchases");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroup", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("Groupeid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("Groupeid");
b.ToTable("ProductSubGroups");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroupLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid?>("ProductSubGroupid")
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("ProductSubGroupid");
b.HasIndex("languageid");
b.ToTable("ProductSubGroupLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.ProductUserTranslation", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("productid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("productid");
b.HasIndex("userid");
b.ToTable("ProductUserTranslations");
});
modelBuilder.Entity("GiecChallenge.Models.Purchase", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("datePurchase")
.HasColumnType("timestamp without time zone");
b.Property<Guid?>("initialPurchaseid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("initialPurchaseid");
b.HasIndex("userid");
b.ToTable("Purchases");
});
modelBuilder.Entity("GiecChallenge.Models.User", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("creationDate")
.HasColumnType("timestamp without time zone");
b.Property<string>("email")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("favoriteLanguageid")
.HasColumnType("uuid");
b.Property<byte[]>("hash")
.IsRequired()
.HasColumnType("bytea");
b.Property<string>("password")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("favoriteLanguageid");
b.ToTable("Users");
});
modelBuilder.Entity("GiecChallenge.Models.UserGroup", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("name")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.ToTable("UserGroups");
});
modelBuilder.Entity("GiecChallenge.Models.UserInGroup", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("userGroupid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("userGroupid");
b.HasIndex("userid");
b.ToTable("UserInGroup");
});
modelBuilder.Entity("GiecChallenge.Models.Aliment", b =>
{
b.HasBaseType("GiecChallenge.Models.Product");
b.Property<string>("ciqual")
.IsRequired()
.HasColumnType("text");
b.HasDiscriminator().HasValue("Aliment");
});
modelBuilder.Entity("GiecChallenge.Models.CarbonLoan", b =>
{
b.HasOne("GiecChallenge.Models.ProductPurchase", "productPurchase")
.WithMany()
.HasForeignKey("productPurchaseid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany()
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("productPurchase");
b.Navigation("user");
});
modelBuilder.Entity("GiecChallenge.Models.CurrencyLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Currency", "currency")
.WithMany("names")
.HasForeignKey("currencyid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("currency");
b.Navigation("language");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswer", b =>
{
b.HasOne("GiecChallenge.Models.FormQuestion", "formQuestion")
.WithMany()
.HasForeignKey("formQuestionid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("formQuestion");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerLanguage", b =>
{
b.HasOne("GiecChallenge.Models.FormQuestionsAnswer", "answer")
.WithMany()
.HasForeignKey("answerid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("answer");
b.Navigation("language");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerUser", b =>
{
b.HasOne("GiecChallenge.Models.FormQuestionsAnswer", "answer")
.WithMany()
.HasForeignKey("answerid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany()
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("answer");
b.Navigation("user");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.FormQuestion", "question")
.WithMany()
.HasForeignKey("questionid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
b.Navigation("question");
});
modelBuilder.Entity("GiecChallenge.Models.LanguageLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Language", "languageToChange")
.WithMany("names")
.HasForeignKey("names")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany("usedToTranlateLanguage")
.HasForeignKey("usedToTranlateLanguage")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
b.Navigation("languageToChange");
});
modelBuilder.Entity("GiecChallenge.Models.Product", b =>
{
b.HasOne("GiecChallenge.Models.ProductSubGroup", "subgroup")
.WithMany()
.HasForeignKey("subgroupid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("subgroup");
});
modelBuilder.Entity("GiecChallenge.Models.ProductGroupLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.ProductGroup", "productgroup")
.WithMany("names")
.HasForeignKey("productgroupid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
b.Navigation("productgroup");
});
modelBuilder.Entity("GiecChallenge.Models.ProductLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Product", null)
.WithMany("names")
.HasForeignKey("Productid");
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
});
modelBuilder.Entity("GiecChallenge.Models.ProductPurchase", b =>
{
b.HasOne("GiecChallenge.Models.Currency", "currency")
.WithMany()
.HasForeignKey("currencyid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Product", "product")
.WithMany()
.HasForeignKey("productid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Purchase", "purchase")
.WithMany("products")
.HasForeignKey("purchaseid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("currency");
b.Navigation("product");
b.Navigation("purchase");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroup", b =>
{
b.HasOne("GiecChallenge.Models.ProductGroup", "Groupe")
.WithMany()
.HasForeignKey("Groupeid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Groupe");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroupLanguage", b =>
{
b.HasOne("GiecChallenge.Models.ProductSubGroup", null)
.WithMany("names")
.HasForeignKey("ProductSubGroupid");
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
});
modelBuilder.Entity("GiecChallenge.Models.ProductUserTranslation", b =>
{
b.HasOne("GiecChallenge.Models.Product", "product")
.WithMany()
.HasForeignKey("productid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany()
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("product");
b.Navigation("user");
});
modelBuilder.Entity("GiecChallenge.Models.Purchase", b =>
{
b.HasOne("GiecChallenge.Models.Purchase", "initialPurchase")
.WithMany()
.HasForeignKey("initialPurchaseid");
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany()
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("initialPurchase");
b.Navigation("user");
});
modelBuilder.Entity("GiecChallenge.Models.User", b =>
{
b.HasOne("GiecChallenge.Models.Language", "favoriteLanguage")
.WithMany()
.HasForeignKey("favoriteLanguageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("favoriteLanguage");
});
modelBuilder.Entity("GiecChallenge.Models.UserInGroup", b =>
{
b.HasOne("GiecChallenge.Models.UserGroup", "userGroup")
.WithMany()
.HasForeignKey("userGroupid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany("groups")
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("user");
b.Navigation("userGroup");
});
modelBuilder.Entity("GiecChallenge.Models.Currency", b =>
{
b.Navigation("names");
});
modelBuilder.Entity("GiecChallenge.Models.Language", b =>
{
b.Navigation("names");
b.Navigation("usedToTranlateLanguage");
});
modelBuilder.Entity("GiecChallenge.Models.Product", b =>
{
b.Navigation("names");
});
modelBuilder.Entity("GiecChallenge.Models.ProductGroup", b =>
{
b.Navigation("names");
});
modelBuilder.Entity("GiecChallenge.Models.ProductSubGroup", b =>
{
b.Navigation("names");
});
modelBuilder.Entity("GiecChallenge.Models.Purchase", b =>
{
b.Navigation("products");
});
modelBuilder.Entity("GiecChallenge.Models.User", b =>
{
b.Navigation("groups");
});
#pragma warning restore 612, 618
}
}
}

View File

@@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace GiecChallenge.Migrations
{
/// <inheritdoc />
public partial class InitialCreate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

View File

@@ -17,7 +17,7 @@ namespace GiecChallenge.Migrations
{ {
#pragma warning disable 612, 618 #pragma warning disable 612, 618
modelBuilder modelBuilder
.HasAnnotation("ProductVersion", "7.0.1") .HasAnnotation("ProductVersion", "9.0.4")
.HasAnnotation("Relational:MaxIdentifierLength", 63); .HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
@@ -89,6 +89,110 @@ namespace GiecChallenge.Migrations
b.ToTable("CurrencyLanguages"); b.ToTable("CurrencyLanguages");
}); });
modelBuilder.Entity("GiecChallenge.Models.FormQuestion", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("Order")
.HasColumnType("integer");
b.HasKey("id");
b.ToTable("FormQuestions");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswer", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("formQuestionid")
.HasColumnType("uuid");
b.Property<int>("order")
.HasColumnType("integer");
b.HasKey("id");
b.HasIndex("formQuestionid");
b.ToTable("FormQuestionsAnswers");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("answerid")
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<string>("text")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("answerid");
b.HasIndex("languageid");
b.ToTable("FormQuestionsAnswersLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerUser", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("answerid")
.HasColumnType("uuid");
b.Property<Guid>("userid")
.HasColumnType("uuid");
b.HasKey("id");
b.HasIndex("answerid");
b.HasIndex("userid");
b.ToTable("FormQuestionsAnswersUsers");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsLanguage", b =>
{
b.Property<Guid>("id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("languageid")
.HasColumnType("uuid");
b.Property<Guid>("questionid")
.HasColumnType("uuid");
b.Property<string>("text")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("languageid");
b.HasIndex("questionid");
b.ToTable("FormQuestionsLanguages");
});
modelBuilder.Entity("GiecChallenge.Models.Language", b => modelBuilder.Entity("GiecChallenge.Models.Language", b =>
{ {
b.Property<Guid>("id") b.Property<Guid>("id")
@@ -144,7 +248,8 @@ namespace GiecChallenge.Migrations
b.Property<string>("Discriminator") b.Property<string>("Discriminator")
.IsRequired() .IsRequired()
.HasColumnType("text"); .HasMaxLength(8)
.HasColumnType("character varying(8)");
b.Property<int>("amortization") b.Property<int>("amortization")
.HasColumnType("integer"); .HasColumnType("integer");
@@ -165,7 +270,7 @@ namespace GiecChallenge.Migrations
b.ToTable("Products"); b.ToTable("Products");
b.HasDiscriminator<string>("Discriminator").HasValue("Product"); b.HasDiscriminator().HasValue("Product");
b.UseTphMappingStrategy(); b.UseTphMappingStrategy();
}); });
@@ -472,6 +577,74 @@ namespace GiecChallenge.Migrations
b.Navigation("language"); b.Navigation("language");
}); });
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswer", b =>
{
b.HasOne("GiecChallenge.Models.FormQuestion", "formQuestion")
.WithMany()
.HasForeignKey("formQuestionid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("formQuestion");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerLanguage", b =>
{
b.HasOne("GiecChallenge.Models.FormQuestionsAnswer", "answer")
.WithMany()
.HasForeignKey("answerid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("answer");
b.Navigation("language");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsAnswerUser", b =>
{
b.HasOne("GiecChallenge.Models.FormQuestionsAnswer", "answer")
.WithMany()
.HasForeignKey("answerid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.User", "user")
.WithMany()
.HasForeignKey("userid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("answer");
b.Navigation("user");
});
modelBuilder.Entity("GiecChallenge.Models.FormQuestionsLanguage", b =>
{
b.HasOne("GiecChallenge.Models.Language", "language")
.WithMany()
.HasForeignKey("languageid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("GiecChallenge.Models.FormQuestion", "question")
.WithMany()
.HasForeignKey("questionid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("language");
b.Navigation("question");
});
modelBuilder.Entity("GiecChallenge.Models.LanguageLanguage", b => modelBuilder.Entity("GiecChallenge.Models.LanguageLanguage", b =>
{ {
b.HasOne("GiecChallenge.Models.Language", "languageToChange") b.HasOne("GiecChallenge.Models.Language", "languageToChange")

View File

@@ -43,6 +43,11 @@ namespace GiecChallenge.Models
public virtual DbSet<CarbonLoan> CarbonLoans { get; set; } = null!; public virtual DbSet<CarbonLoan> CarbonLoans { get; set; } = null!;
public virtual DbSet<Currency> Currencies { get; set; } = null!; public virtual DbSet<Currency> Currencies { get; set; } = null!;
public virtual DbSet<CurrencyLanguage> CurrencyLanguages { get; set; } = null!; public virtual DbSet<CurrencyLanguage> CurrencyLanguages { get; set; } = null!;
public virtual DbSet<FormQuestion> FormQuestions { get; set; } = null!;
public virtual DbSet<FormQuestionsAnswer> FormQuestionsAnswers { get; set; } = null!;
public virtual DbSet<FormQuestionsAnswerLanguage> FormQuestionsAnswersLanguages { get; set; } = null!;
public virtual DbSet<FormQuestionsAnswerUser> FormQuestionsAnswersUsers { get; set; } = null!;
public virtual DbSet<FormQuestionsLanguage> FormQuestionsLanguages { get; set; } = null!;
public virtual DbSet<Language> Languages { get; set; } = null!; public virtual DbSet<Language> Languages { get; set; } = null!;
public virtual DbSet<LanguageLanguage> LanguageLanguages { get; set; } = null!; public virtual DbSet<LanguageLanguage> LanguageLanguages { get; set; } = null!;
public virtual DbSet<Product> Products { get; set; } = null!; public virtual DbSet<Product> Products { get; set; } = null!;

View File

@@ -85,7 +85,6 @@ app.Use((ctx, next) =>
headers["Access-Control-Allow-Credentials"] = "true"; headers["Access-Control-Allow-Credentials"] = "true";
headers["Access-Control-Allow-Headers"] = "Content-Type, X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Date, X-Api-Version, X-File-Name"; headers["Access-Control-Allow-Headers"] = "Content-Type, X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Date, X-Api-Version, X-File-Name";
headers["Access-Control-Allow-Methods"] = "POST,GET,PUT,PATCH,DELETE,OPTIONS"; headers["Access-Control-Allow-Methods"] = "POST,GET,PUT,PATCH,DELETE,OPTIONS";
headers["cc"] = "test";
return next(); return next();
}); });

Binary file not shown.