diff options
| author | Paweł Bernaciak <pawelbernaciak@zohomail.eu> | 2023-10-21 15:54:10 +0200 |
|---|---|---|
| committer | Paweł Bernaciak <pawelbernaciak@zohomail.eu> | 2023-10-21 15:54:10 +0200 |
| commit | 0bdc7889bf9d6e666558717d1ff093616eb006d9 (patch) | |
| tree | 08fc697be18de8e4515dc039f53feaf9e3c505af /backend/Elements.Data | |
| parent | 2ef3bdcd89731c1ed9cb7528181d19b2d9169bb5 (diff) | |
Add rest of models to backend
Diffstat (limited to 'backend/Elements.Data')
9 files changed, 434 insertions, 0 deletions
diff --git a/backend/Elements.Data/Migrations/20231021133049_Add recipes.Designer.cs b/backend/Elements.Data/Migrations/20231021133049_Add recipes.Designer.cs new file mode 100644 index 0000000..4e3b57f --- /dev/null +++ b/backend/Elements.Data/Migrations/20231021133049_Add recipes.Designer.cs @@ -0,0 +1,84 @@ +// <auto-generated /> +using Elements.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Elements.Data.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20231021133049_Add recipes")] + partial class Addrecipes + { + /// <inheritdoc /> + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "7.0.12"); + + modelBuilder.Entity("Elements.Data.Models.Element", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("IconBitmap") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<int>("State") + .HasColumnType("INTEGER"); + + b.Property<int>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Elements"); + }); + + modelBuilder.Entity("Elements.Data.Models.User", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("GoogleId") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("Elements.Data.Models.Element", b => + { + b.HasOne("Elements.Data.Models.User", null) + .WithMany("Elements") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Elements.Data.Models.User", b => + { + b.Navigation("Elements"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/Elements.Data/Migrations/20231021133049_Add recipes.cs b/backend/Elements.Data/Migrations/20231021133049_Add recipes.cs new file mode 100644 index 0000000..74d1ac6 --- /dev/null +++ b/backend/Elements.Data/Migrations/20231021133049_Add recipes.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Elements.Data.Migrations +{ + /// <inheritdoc /> + public partial class Addrecipes : Migration + { + /// <inheritdoc /> + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn<string>( + name: "IconBitmap", + table: "Elements", + type: "TEXT", + nullable: false, + defaultValue: ""); + } + + /// <inheritdoc /> + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "IconBitmap", + table: "Elements"); + } + } +} diff --git a/backend/Elements.Data/Migrations/20231021135238_Add suggestions.Designer.cs b/backend/Elements.Data/Migrations/20231021135238_Add suggestions.Designer.cs new file mode 100644 index 0000000..6283f68 --- /dev/null +++ b/backend/Elements.Data/Migrations/20231021135238_Add suggestions.Designer.cs @@ -0,0 +1,152 @@ +// <auto-generated /> +using System; +using Elements.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Elements.Data.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20231021135238_Add suggestions")] + partial class Addsuggestions + { + /// <inheritdoc /> + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "7.0.12"); + + modelBuilder.Entity("Elements.Data.Models.Element", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("IconBitmap") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<int>("State") + .HasColumnType("INTEGER"); + + b.Property<int>("UserId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Elements"); + }); + + modelBuilder.Entity("Elements.Data.Models.Suggestion", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("FirstIngredientId") + .HasColumnType("INTEGER"); + + b.Property<string>("Icon") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<int>("SecondIngredientId") + .HasColumnType("INTEGER"); + + b.Property<int>("UserId") + .HasColumnType("INTEGER"); + + b.Property<int>("Votes") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("VotingEnd") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("FirstIngredientId"); + + b.HasIndex("SecondIngredientId"); + + b.HasIndex("UserId"); + + b.ToTable("Suggestion"); + }); + + modelBuilder.Entity("Elements.Data.Models.User", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<string>("GoogleId") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Users"); + }); + + modelBuilder.Entity("Elements.Data.Models.Element", b => + { + b.HasOne("Elements.Data.Models.User", null) + .WithMany("Elements") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Elements.Data.Models.Suggestion", b => + { + b.HasOne("Elements.Data.Models.Element", "FirstIngredient") + .WithMany() + .HasForeignKey("FirstIngredientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Elements.Data.Models.Element", "SecondIngredient") + .WithMany() + .HasForeignKey("SecondIngredientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Elements.Data.Models.User", null) + .WithMany("Suggestions") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FirstIngredient"); + + b.Navigation("SecondIngredient"); + }); + + modelBuilder.Entity("Elements.Data.Models.User", b => + { + b.Navigation("Elements"); + + b.Navigation("Suggestions"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/Elements.Data/Migrations/20231021135238_Add suggestions.cs b/backend/Elements.Data/Migrations/20231021135238_Add suggestions.cs new file mode 100644 index 0000000..b20a47a --- /dev/null +++ b/backend/Elements.Data/Migrations/20231021135238_Add suggestions.cs @@ -0,0 +1,74 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Elements.Data.Migrations +{ + /// <inheritdoc /> + public partial class Addsuggestions : Migration + { + /// <inheritdoc /> + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Suggestion", + columns: table => new + { + Id = table.Column<int>(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Name = table.Column<string>(type: "TEXT", nullable: false), + Icon = table.Column<string>(type: "TEXT", nullable: false), + FirstIngredientId = table.Column<int>(type: "INTEGER", nullable: false), + SecondIngredientId = table.Column<int>(type: "INTEGER", nullable: false), + VotingEnd = table.Column<DateTime>(type: "TEXT", nullable: false), + Votes = table.Column<int>(type: "INTEGER", nullable: false), + UserId = table.Column<int>(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Suggestion", x => x.Id); + table.ForeignKey( + name: "FK_Suggestion_Elements_FirstIngredientId", + column: x => x.FirstIngredientId, + principalTable: "Elements", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Suggestion_Elements_SecondIngredientId", + column: x => x.SecondIngredientId, + principalTable: "Elements", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Suggestion_Users_UserId", + column: x => x.UserId, + principalTable: "Users", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_Suggestion_FirstIngredientId", + table: "Suggestion", + column: "FirstIngredientId"); + + migrationBuilder.CreateIndex( + name: "IX_Suggestion_SecondIngredientId", + table: "Suggestion", + column: "SecondIngredientId"); + + migrationBuilder.CreateIndex( + name: "IX_Suggestion_UserId", + table: "Suggestion", + column: "UserId"); + } + + /// <inheritdoc /> + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Suggestion"); + } + } +} diff --git a/backend/Elements.Data/Migrations/ApplicationDbContextModelSnapshot.cs b/backend/Elements.Data/Migrations/ApplicationDbContextModelSnapshot.cs index b713511..a43306c 100644 --- a/backend/Elements.Data/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/backend/Elements.Data/Migrations/ApplicationDbContextModelSnapshot.cs @@ -1,4 +1,5 @@ // <auto-generated /> +using System; using Elements.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -22,6 +23,10 @@ namespace Elements.Data.Migrations .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); + b.Property<string>("IconBitmap") + .IsRequired() + .HasColumnType("TEXT"); + b.Property<string>("Name") .IsRequired() .HasColumnType("TEXT"); @@ -39,6 +44,46 @@ namespace Elements.Data.Migrations b.ToTable("Elements"); }); + modelBuilder.Entity("Elements.Data.Models.Suggestion", b => + { + b.Property<int>("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property<int>("FirstIngredientId") + .HasColumnType("INTEGER"); + + b.Property<string>("Icon") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<string>("Name") + .IsRequired() + .HasColumnType("TEXT"); + + b.Property<int>("SecondIngredientId") + .HasColumnType("INTEGER"); + + b.Property<int>("UserId") + .HasColumnType("INTEGER"); + + b.Property<int>("Votes") + .HasColumnType("INTEGER"); + + b.Property<DateTime>("VotingEnd") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("FirstIngredientId"); + + b.HasIndex("SecondIngredientId"); + + b.HasIndex("UserId"); + + b.ToTable("Suggestion"); + }); + modelBuilder.Entity("Elements.Data.Models.User", b => { b.Property<int>("Id") @@ -67,9 +112,36 @@ namespace Elements.Data.Migrations .IsRequired(); }); + modelBuilder.Entity("Elements.Data.Models.Suggestion", b => + { + b.HasOne("Elements.Data.Models.Element", "FirstIngredient") + .WithMany() + .HasForeignKey("FirstIngredientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Elements.Data.Models.Element", "SecondIngredient") + .WithMany() + .HasForeignKey("SecondIngredientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Elements.Data.Models.User", null) + .WithMany("Suggestions") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FirstIngredient"); + + b.Navigation("SecondIngredient"); + }); + modelBuilder.Entity("Elements.Data.Models.User", b => { b.Navigation("Elements"); + + b.Navigation("Suggestions"); }); #pragma warning restore 612, 618 } diff --git a/backend/Elements.Data/Models/Element.cs b/backend/Elements.Data/Models/Element.cs index 08f25a8..fc8a560 100644 --- a/backend/Elements.Data/Models/Element.cs +++ b/backend/Elements.Data/Models/Element.cs @@ -13,4 +13,5 @@ public class Element { public required int UserId { get; init; } public required string Name {get; init;} public required ElementState State {get; init;} + public required string IconBitmap { get; init; } }
\ No newline at end of file diff --git a/backend/Elements.Data/Models/Recipe.cs b/backend/Elements.Data/Models/Recipe.cs new file mode 100644 index 0000000..3c4a491 --- /dev/null +++ b/backend/Elements.Data/Models/Recipe.cs @@ -0,0 +1,8 @@ +namespace Elements.Data.Models; + +public class Recipe +{ + public required Element FirstIngredient { get; init; } + public required Element SecondIngredient { get; set; } + public required Element Result { get; set; } +}
\ No newline at end of file diff --git a/backend/Elements.Data/Models/Suggestion.cs b/backend/Elements.Data/Models/Suggestion.cs new file mode 100644 index 0000000..7753379 --- /dev/null +++ b/backend/Elements.Data/Models/Suggestion.cs @@ -0,0 +1,13 @@ +namespace Elements.Data.Models; + +public class Suggestion +{ + public required int Id { get; set; } + public required string Name { get; init; } + public required string Icon { get; init; } + public required Element FirstIngredient { get; init; } + public required Element SecondIngredient { get; init; } + public required DateTime VotingEnd { get; init; } + public required int Votes { get; set; } = 1; + public required int UserId { get; init; } +}
\ No newline at end of file diff --git a/backend/Elements.Data/Models/User.cs b/backend/Elements.Data/Models/User.cs index b44a1e2..94b8316 100644 --- a/backend/Elements.Data/Models/User.cs +++ b/backend/Elements.Data/Models/User.cs @@ -6,4 +6,5 @@ public class User public required string GoogleId { get; init; } public required string Name { get; set; } public required ICollection<Element> Elements { get; set; } + public required ICollection<Suggestion> Suggestions { get; set; } }
\ No newline at end of file |
