diff --git a/ManagerService/Data/Device.cs b/ManagerService/Data/Device.cs
index 60bfb8a..3ba77b3 100644
--- a/ManagerService/Data/Device.cs
+++ b/ManagerService/Data/Device.cs
@@ -23,12 +23,12 @@ namespace ManagerService.Data
/*[BsonElement("IpAddressWLAN")]
[BsonRequired]*/
- [Required]
+ //[Required]
public string IpAddressWLAN { get; set; }
//[BsonElement("IpAddressETH")]
//[BsonRequired]
- [Required]
+ //[Required]
public string IpAddressETH { get; set; }
//[BsonElement("Configuration")]
diff --git a/ManagerService/Migrations/20250527110219_UpdatedDevice.Designer.cs b/ManagerService/Migrations/20250527110219_UpdatedDevice.Designer.cs
new file mode 100644
index 0000000..9c7f9a1
--- /dev/null
+++ b/ManagerService/Migrations/20250527110219_UpdatedDevice.Designer.cs
@@ -0,0 +1,682 @@
+//
+using System;
+using System.Collections.Generic;
+using Manager.DTOs;
+using ManagerService.DTOs;
+using ManagerService.Data;
+using ManagerService.Data.SubSection;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace ManagerService.Migrations
+{
+ [DbContext(typeof(MyInfoMateDbContext))]
+ [Migration("20250527110219_UpdatedDevice")]
+ partial class UpdatedDevice
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "9.0.2")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("ManagerService.Data.Configuration", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("DateCreation")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("ImageId")
+ .HasColumnType("text");
+
+ b.Property("ImageSource")
+ .HasColumnType("text");
+
+ b.Property("InstanceId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("IsDate")
+ .HasColumnType("boolean");
+
+ b.Property("IsHour")
+ .HasColumnType("boolean");
+
+ b.Property("IsMobile")
+ .HasColumnType("boolean");
+
+ b.Property("IsOffline")
+ .HasColumnType("boolean");
+
+ b.Property("IsSectionImageBackground")
+ .HasColumnType("boolean");
+
+ b.Property("IsTablet")
+ .HasColumnType("boolean");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.PrimitiveCollection>("Languages")
+ .HasColumnType("text[]");
+
+ b.Property("LoaderImageId")
+ .HasColumnType("text");
+
+ b.Property("LoaderImageUrl")
+ .HasColumnType("text");
+
+ b.Property("PrimaryColor")
+ .HasColumnType("text");
+
+ b.Property("RoundedValue")
+ .HasColumnType("integer");
+
+ b.Property("ScreenPercentageSectionsMainPage")
+ .HasColumnType("integer");
+
+ b.Property("SecondaryColor")
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.HasKey("Id");
+
+ b.ToTable("Configurations");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.Device", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("BatteryLevel")
+ .HasColumnType("text");
+
+ b.Property("ConfigurationId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Connected")
+ .HasColumnType("boolean");
+
+ b.Property("ConnectionLevel")
+ .HasColumnType("text");
+
+ b.Property("DateCreation")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateUpdate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Identifier")
+ .HasColumnType("text");
+
+ b.Property("InstanceId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("IpAddressETH")
+ .HasColumnType("text");
+
+ b.Property("IpAddressWLAN")
+ .HasColumnType("text");
+
+ b.Property("LastBatteryLevel")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("LastConnectionLevel")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Name")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ConfigurationId");
+
+ b.ToTable("Devices");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.Instance", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("DateCreation")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("PinCode")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Instances");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.Resource", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("DateCreation")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("InstanceId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Type")
+ .HasColumnType("integer");
+
+ b.Property("Url")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Resources");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.Section", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("BeaconId")
+ .HasColumnType("integer");
+
+ b.Property("ConfigurationId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("DateCreation")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .HasColumnType("jsonb");
+
+ b.Property("Discriminator")
+ .IsRequired()
+ .HasMaxLength(8)
+ .HasColumnType("character varying(8)");
+
+ b.Property("ImageId")
+ .HasColumnType("text");
+
+ b.Property("ImageSource")
+ .HasColumnType("text");
+
+ b.Property("InstanceId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("IsBeacon")
+ .HasColumnType("boolean");
+
+ b.Property("IsSubSection")
+ .HasColumnType("boolean");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Latitude")
+ .HasColumnType("text");
+
+ b.Property("Longitude")
+ .HasColumnType("text");
+
+ b.Property("MeterZoneGPS")
+ .HasColumnType("integer");
+
+ b.Property("Order")
+ .HasColumnType("integer");
+
+ b.Property("ParentId")
+ .HasColumnType("text");
+
+ b.Property("SectionMenuId")
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("Type")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SectionMenuId");
+
+ b.ToTable("Sections");
+
+ b.HasDiscriminator().HasValue("Base");
+
+ b.UseTphMappingStrategy();
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.GeoPoint", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("CategorieId")
+ .HasColumnType("integer");
+
+ b.Property>("Contents")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("Description")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("Email")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("ImageResourceId")
+ .HasColumnType("text");
+
+ b.Property("ImageUrl")
+ .HasColumnType("text");
+
+ b.Property("Latitude")
+ .HasColumnType("text");
+
+ b.Property("Longitude")
+ .HasColumnType("text");
+
+ b.Property>("Phone")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("Prices")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("Schedules")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("SectionMapId")
+ .HasColumnType("text");
+
+ b.Property>("Site")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("Title")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SectionMapId");
+
+ b.ToTable("GeoPoints");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.QuizQuestion", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property>("Label")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("Order")
+ .HasColumnType("integer");
+
+ b.Property("ResourceId")
+ .HasColumnType("text");
+
+ b.Property>("Responses")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("SectionQuizId")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ResourceId");
+
+ b.HasIndex("SectionQuizId");
+
+ b.ToTable("QuizQuestions");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.User", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("DateCreation")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("FirstName")
+ .HasColumnType("text");
+
+ b.Property("InstanceId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Password")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("Token")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.ToTable("Users");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionAgenda", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property("AgendaMapProvider")
+ .HasColumnType("integer");
+
+ b.Property>("AgendaResourceIds")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.HasDiscriminator().HasValue("Agenda");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionArticle", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property>("ArticleAudioIds")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("ArticleContent")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("ArticleContents")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("ArticleIsContentTop")
+ .HasColumnType("boolean");
+
+ b.Property("ArticleIsReadAudioAuto")
+ .HasColumnType("boolean");
+
+ b.HasDiscriminator().HasValue("Article");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionMap", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property>("MapCategories")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("MapCenterLatitude")
+ .HasColumnType("text");
+
+ b.Property("MapCenterLongitude")
+ .HasColumnType("text");
+
+ b.Property("MapMapProvider")
+ .HasColumnType("integer");
+
+ b.Property("MapMapType")
+ .HasColumnType("integer");
+
+ b.Property("MapResourceId")
+ .HasColumnType("text");
+
+ b.Property("MapTypeMapbox")
+ .HasColumnType("integer");
+
+ b.Property("MapZoom")
+ .HasColumnType("integer");
+
+ b.HasIndex("MapResourceId");
+
+ b.HasDiscriminator().HasValue("Map");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionMenu", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.HasDiscriminator().HasValue("Menu");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionPdf", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property>("PDFOrderedTranslationAndResources")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.HasDiscriminator().HasValue("PDF");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionPuzzle", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property("PuzzleCols")
+ .HasColumnType("integer");
+
+ b.Property("PuzzleImageId")
+ .HasColumnType("text");
+
+ b.Property>("PuzzleMessageDebut")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("PuzzleMessageFin")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("PuzzleRows")
+ .HasColumnType("integer");
+
+ b.HasIndex("PuzzleImageId");
+
+ b.HasDiscriminator().HasValue("Puzzle");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionQuiz", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property>("QuizBadLevel")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("QuizGoodLevel")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("QuizGreatLevel")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property>("QuizMediumLevel")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.HasDiscriminator().HasValue("Quiz");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionSlider", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property>("SliderContents")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.HasDiscriminator().HasValue("Slider");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionVideo", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property("VideoSource")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasDiscriminator().HasValue("Video");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionWeather", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property("WeatherCity")
+ .HasColumnType("text");
+
+ b.Property("WeatherResult")
+ .HasColumnType("text");
+
+ b.Property("WeatherUpdatedDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.HasDiscriminator().HasValue("Weather");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionWeb", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property("WebSource")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.HasDiscriminator().HasValue("Web");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.Device", b =>
+ {
+ b.HasOne("ManagerService.Data.Configuration", "Configuration")
+ .WithMany()
+ .HasForeignKey("ConfigurationId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Configuration");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.Section", b =>
+ {
+ b.HasOne("ManagerService.Data.SubSection.SectionMenu", null)
+ .WithMany("MenuSections")
+ .HasForeignKey("SectionMenuId");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.GeoPoint", b =>
+ {
+ b.HasOne("ManagerService.Data.SubSection.SectionMap", "SectionMap")
+ .WithMany("MapPoints")
+ .HasForeignKey("SectionMapId");
+
+ b.Navigation("SectionMap");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.QuizQuestion", b =>
+ {
+ b.HasOne("ManagerService.Data.Resource", "Resource")
+ .WithMany()
+ .HasForeignKey("ResourceId");
+
+ b.HasOne("ManagerService.Data.SubSection.SectionQuiz", "SectionQuiz")
+ .WithMany("QuizQuestions")
+ .HasForeignKey("SectionQuizId");
+
+ b.Navigation("Resource");
+
+ b.Navigation("SectionQuiz");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionMap", b =>
+ {
+ b.HasOne("ManagerService.Data.Resource", "MapResource")
+ .WithMany()
+ .HasForeignKey("MapResourceId");
+
+ b.Navigation("MapResource");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionPuzzle", b =>
+ {
+ b.HasOne("ManagerService.Data.Resource", "PuzzleImage")
+ .WithMany()
+ .HasForeignKey("PuzzleImageId");
+
+ b.Navigation("PuzzleImage");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionMap", b =>
+ {
+ b.Navigation("MapPoints");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionMenu", b =>
+ {
+ b.Navigation("MenuSections");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionQuiz", b =>
+ {
+ b.Navigation("QuizQuestions");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/ManagerService/Migrations/20250527110219_UpdatedDevice.cs b/ManagerService/Migrations/20250527110219_UpdatedDevice.cs
new file mode 100644
index 0000000..e45b8cd
--- /dev/null
+++ b/ManagerService/Migrations/20250527110219_UpdatedDevice.cs
@@ -0,0 +1,54 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace ManagerService.Migrations
+{
+ ///
+ public partial class UpdatedDevice : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "IpAddressWLAN",
+ table: "Devices",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+
+ migrationBuilder.AlterColumn(
+ name: "IpAddressETH",
+ table: "Devices",
+ type: "text",
+ nullable: true,
+ oldClrType: typeof(string),
+ oldType: "text");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AlterColumn(
+ name: "IpAddressWLAN",
+ table: "Devices",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+
+ migrationBuilder.AlterColumn(
+ name: "IpAddressETH",
+ table: "Devices",
+ type: "text",
+ nullable: false,
+ defaultValue: "",
+ oldClrType: typeof(string),
+ oldType: "text",
+ oldNullable: true);
+ }
+ }
+}