diff --git a/ManagerService/Controllers/ApplicationInstanceController.cs b/ManagerService/Controllers/ApplicationInstanceController.cs
index 613f409..caf825e 100644
--- a/ManagerService/Controllers/ApplicationInstanceController.cs
+++ b/ManagerService/Controllers/ApplicationInstanceController.cs
@@ -280,7 +280,7 @@ namespace ManagerService.Controllers
if (appConfigurationLinkDTO == null)
throw new ArgumentNullException("appConfigurationLink param is null");
- AppConfigurationLink appConfigurationLink = _myInfoMateDbContext.AppConfigurationLinks.FirstOrDefault(acl => acl.Id == appConfigurationLinkDTO.id);
+ AppConfigurationLink appConfigurationLink = _myInfoMateDbContext.AppConfigurationLinks.Include(acl => acl.Configuration).Include(acl => acl.Device).FirstOrDefault(acl => acl.Id == appConfigurationLinkDTO.id);
if (appConfigurationLink == null)
throw new KeyNotFoundException("appConfigurationLink does not exist");
diff --git a/ManagerService/DTOs/AppConfigurationLinkDTO.cs b/ManagerService/DTOs/AppConfigurationLinkDTO.cs
index 4bb747e..7f05644 100644
--- a/ManagerService/DTOs/AppConfigurationLinkDTO.cs
+++ b/ManagerService/DTOs/AppConfigurationLinkDTO.cs
@@ -34,10 +34,12 @@ namespace ManagerService.DTOs
public LayoutMainPageType layoutMainPage { get; set; } // Specific Kiosk
- public string LoaderImageUrl { get; set; } // Specific Kiosk
+ public string loaderImageId { get; set; } // Specific Kiosk
- public string PrimaryColor { get; set; } // Specific Kiosk
+ public string loaderImageUrl { get; set; } // Specific Kiosk
- public string SecondaryColor { get; set; } // Specific Kiosk
+ public string primaryColor { get; set; } // Specific Kiosk
+
+ public string secondaryColor { get; set; } // Specific Kiosk
}
}
diff --git a/ManagerService/Data/AppConfigurationLink.cs b/ManagerService/Data/AppConfigurationLink.cs
index 6774c5e..e2a0707 100644
--- a/ManagerService/Data/AppConfigurationLink.cs
+++ b/ManagerService/Data/AppConfigurationLink.cs
@@ -71,6 +71,10 @@ namespace ManagerService.Data
order = Order,
isActive = IsActive,
weightMasonryGrid = WeightMasonryGrid,
+ primaryColor = PrimaryColor,
+ secondaryColor = SecondaryColor,
+ loaderImageId = LoaderImageId,
+ loaderImageUrl = LoaderImageUrl,
isDate = IsDate,
isHour = IsHour,
roundedValue = RoundedValue,
@@ -88,6 +92,10 @@ namespace ManagerService.Data
Order = appConfigurationLinkDTO.order;
IsActive = appConfigurationLinkDTO.isActive;
WeightMasonryGrid = appConfigurationLinkDTO?.weightMasonryGrid;
+ PrimaryColor = appConfigurationLinkDTO.primaryColor;
+ SecondaryColor = appConfigurationLinkDTO.secondaryColor;
+ LoaderImageId = appConfigurationLinkDTO.loaderImageId;
+ LoaderImageUrl = appConfigurationLinkDTO.loaderImageUrl;
IsDate = appConfigurationLinkDTO.isDate;
IsHour = appConfigurationLinkDTO.isHour;
RoundedValue = appConfigurationLinkDTO.roundedValue;
diff --git a/ManagerService/Data/Device.cs b/ManagerService/Data/Device.cs
index 6236739..c75d162 100644
--- a/ManagerService/Data/Device.cs
+++ b/ManagerService/Data/Device.cs
@@ -1,6 +1,7 @@
using ManagerService.DTOs;
using System;
using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
namespace ManagerService.Data
{
@@ -37,6 +38,7 @@ namespace ManagerService.Data
//[BsonElement("ConfigurationId")]
//[BsonRequired]
[Required]
+ [ForeignKey("ConfigurationId")]
public string ConfigurationId { get; set; }
//[BsonElement("Connected")]
@@ -79,7 +81,7 @@ namespace ManagerService.Data
ipAddressWLAN = IpAddressWLAN,
ipAddressETH = IpAddressETH,
connected = Connected,
- configuration = Configuration.Label,
+ configuration = Configuration?.Label,
configurationId = ConfigurationId,
dateUpdate = DateUpdate,
dateCreation = DateCreation,
diff --git a/ManagerService/Migrations/20250814194130_Updatedmisc0.Designer.cs b/ManagerService/Migrations/20250814194130_Updatedmisc0.Designer.cs
new file mode 100644
index 0000000..b9d662b
--- /dev/null
+++ b/ManagerService/Migrations/20250814194130_Updatedmisc0.Designer.cs
@@ -0,0 +1,1231 @@
+//
+using System;
+using System.Collections.Generic;
+using Manager.DTOs;
+using ManagerService.DTOs;
+using ManagerService.Data;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using NetTopologySuite.Geometries;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace ManagerService.Migrations
+{
+ [DbContext(typeof(MyInfoMateDbContext))]
+ [Migration("20250814194130_Updatedmisc0")]
+ partial class Updatedmisc0
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "9.0.2")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.Entity("ManagerService.Data.AppConfigurationLink", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("ApplicationInstanceId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ConfigurationId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("DeviceId")
+ .HasColumnType("text");
+
+ b.Property("IsActive")
+ .HasColumnType("boolean");
+
+ b.Property("IsDate")
+ .HasColumnType("boolean");
+
+ b.Property("IsHour")
+ .HasColumnType("boolean");
+
+ b.Property("IsSectionImageBackground")
+ .HasColumnType("boolean");
+
+ b.Property("LayoutMainPage")
+ .HasColumnType("integer");
+
+ b.Property("LoaderImageId")
+ .HasColumnType("text");
+
+ b.Property("LoaderImageUrl")
+ .HasColumnType("text");
+
+ b.Property("Order")
+ .HasColumnType("integer");
+
+ b.Property("PrimaryColor")
+ .HasColumnType("text");
+
+ b.Property("RoundedValue")
+ .HasColumnType("integer");
+
+ b.Property("ScreenPercentageSectionsMainPage")
+ .HasColumnType("integer");
+
+ b.Property("SecondaryColor")
+ .HasColumnType("text");
+
+ b.Property("WeightMasonryGrid")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ApplicationInstanceId");
+
+ b.HasIndex("ConfigurationId");
+
+ b.HasIndex("DeviceId");
+
+ b.ToTable("AppConfigurationLinks");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.ApplicationInstance", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("AppType")
+ .HasColumnType("integer");
+
+ b.Property("InstanceId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.PrimitiveCollection>("Languages")
+ .HasColumnType("text[]");
+
+ b.Property("LayoutMainPage")
+ .HasColumnType("integer");
+
+ b.Property("LoaderImageId")
+ .HasColumnType("text");
+
+ b.Property("LoaderImageUrl")
+ .HasColumnType("text");
+
+ b.Property("MainImageId")
+ .HasColumnType("text");
+
+ b.Property("MainImageUrl")
+ .HasColumnType("text");
+
+ b.Property("PrimaryColor")
+ .HasColumnType("text");
+
+ b.Property("SecondaryColor")
+ .HasColumnType("text");
+
+ b.Property("SectionEventId")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SectionEventId");
+
+ b.ToTable("ApplicationInstances");
+ });
+
+ 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("IsOffline")
+ .HasColumnType("boolean");
+
+ b.Property("IsQRCode")
+ .HasColumnType("boolean");
+
+ b.Property("IsSearchNumber")
+ .HasColumnType("boolean");
+
+ b.Property("IsSearchText")
+ .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("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("IsMobile")
+ .HasColumnType("boolean");
+
+ b.Property("IsPushNotification")
+ .HasColumnType("boolean");
+
+ b.Property("IsStatistic")
+ .HasColumnType("boolean");
+
+ b.Property("IsTablet")
+ .HasColumnType("boolean");
+
+ b.Property("IsVR")
+ .HasColumnType("boolean");
+
+ b.Property("IsWeb")
+ .HasColumnType("boolean");
+
+ 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(13)
+ .HasColumnType("character varying(13)");
+
+ b.Property("ImageId")
+ .HasColumnType("text");
+
+ b.Property("ImageSource")
+ .HasColumnType("text");
+
+ b.Property("InstanceId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("IsActive")
+ .HasColumnType("boolean");
+
+ 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.EventAgenda", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("Address")
+ .HasColumnType("jsonb");
+
+ b.Property("DateAdded")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateFrom")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("DateTo")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("Email")
+ .HasColumnType("text");
+
+ b.Property("Label")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("Phone")
+ .HasColumnType("text");
+
+ b.Property("ResourceId")
+ .HasColumnType("text");
+
+ b.Property("SectionAgendaId")
+ .HasColumnType("text");
+
+ b.Property("SectionEventId")
+ .HasColumnType("text");
+
+ b.Property("Type")
+ .HasColumnType("text");
+
+ b.Property("Website")
+ .HasColumnType("text");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ResourceId");
+
+ b.HasIndex("SectionAgendaId");
+
+ b.HasIndex("SectionEventId");
+
+ b.ToTable("EventAgendas");
+ });
+
+ 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("Geometry")
+ .HasColumnType("geometry");
+
+ b.Property("ImageResourceId")
+ .HasColumnType("text");
+
+ b.Property("ImageUrl")
+ .HasColumnType("text");
+
+ b.Property("Phone")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("PolyColor")
+ .HasColumnType("text");
+
+ b.Property("Prices")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("Schedules")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("SectionEventId")
+ .HasColumnType("text");
+
+ b.Property("SectionMapId")
+ .HasColumnType("text");
+
+ b.Property("Site")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SectionEventId");
+
+ b.HasIndex("SectionMapId");
+
+ b.ToTable("GeoPoints");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.GuidedPath", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("Description")
+ .HasColumnType("jsonb");
+
+ b.Property("HideNextStepsUntilComplete")
+ .HasColumnType("boolean");
+
+ b.Property("InstanceId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("IsLinear")
+ .HasColumnType("boolean");
+
+ b.Property("Order")
+ .HasColumnType("integer");
+
+ b.Property("RequireSuccessToAdvance")
+ .HasColumnType("boolean");
+
+ b.Property("SectionEventId")
+ .HasColumnType("text");
+
+ b.Property("SectionMapId")
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SectionEventId");
+
+ b.HasIndex("SectionMapId");
+
+ b.ToTable("GuidedPaths");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.GuidedStep", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("Description")
+ .HasColumnType("jsonb");
+
+ b.Property("Geometry")
+ .HasColumnType("geometry");
+
+ b.Property("GuidedPathId")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("ImageUrl")
+ .HasColumnType("text");
+
+ b.Property("IsHiddenInitially")
+ .HasColumnType("boolean");
+
+ b.Property("IsStepLocked")
+ .HasColumnType("boolean");
+
+ b.Property("IsStepTimer")
+ .HasColumnType("boolean");
+
+ b.Property("Order")
+ .HasColumnType("integer");
+
+ b.Property("TimerExpiredMessage")
+ .HasColumnType("jsonb");
+
+ b.Property("TimerSeconds")
+ .HasColumnType("integer");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("TriggerGeoPointId")
+ .HasColumnType("integer");
+
+ b.Property("ZoneRadiusMeters")
+ .HasColumnType("double precision");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GuidedPathId");
+
+ b.HasIndex("TriggerGeoPointId");
+
+ b.ToTable("GuidedSteps");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.QuizQuestion", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("integer");
+
+ NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
+
+ b.Property("GuidedStepId")
+ .HasColumnType("text");
+
+ b.Property("IsSlidingPuzzle")
+ .HasColumnType("boolean");
+
+ b.Property>("Label")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("Order")
+ .HasColumnType("integer");
+
+ b.Property("PuzzleCols")
+ .HasColumnType("integer");
+
+ b.Property("PuzzleImageId")
+ .HasColumnType("text");
+
+ b.Property("PuzzleRows")
+ .HasColumnType("integer");
+
+ b.Property("ResourceId")
+ .HasColumnType("text");
+
+ b.Property>("Responses")
+ .IsRequired()
+ .HasColumnType("jsonb");
+
+ b.Property("SectionQuizId")
+ .HasColumnType("text");
+
+ b.Property("ValidationQuestionType")
+ .HasColumnType("integer");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GuidedStepId");
+
+ b.HasIndex("PuzzleImageId");
+
+ b.HasIndex("ResourceId");
+
+ b.HasIndex("SectionQuizId");
+
+ b.ToTable("QuizQuestions");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionEvent+MapAnnotation", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property("Geometry")
+ .HasColumnType("geometry");
+
+ b.Property("GeometryType")
+ .HasColumnType("integer");
+
+ b.Property("Icon")
+ .HasColumnType("text");
+
+ b.Property("IconResourceId")
+ .HasColumnType("text");
+
+ b.Property>("Label")
+ .HasColumnType("jsonb");
+
+ b.Property("PolyColor")
+ .HasColumnType("text");
+
+ b.Property("ProgrammeBlockId")
+ .HasColumnType("text");
+
+ b.Property>("Type")
+ .HasColumnType("jsonb");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IconResourceId");
+
+ b.HasIndex("ProgrammeBlockId");
+
+ b.ToTable("MapAnnotations");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionEvent+ProgrammeBlock", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("text");
+
+ b.Property>("Description")
+ .HasColumnType("jsonb");
+
+ b.Property("EndTime")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property("SectionEventId")
+ .HasColumnType("text");
+
+ b.Property("StartTime")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property>("Title")
+ .HasColumnType("jsonb");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SectionEventId");
+
+ b.ToTable("ProgrammeBlocks");
+ });
+
+ 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.Property("IsOnlineAgenda")
+ .HasColumnType("boolean");
+
+ 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.SectionEvent", b =>
+ {
+ b.HasBaseType("ManagerService.Data.Section");
+
+ b.Property("EndDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.Property>("ParcoursIds")
+ .HasColumnType("jsonb");
+
+ b.Property("StartDate")
+ .HasColumnType("timestamp with time zone");
+
+ b.HasDiscriminator().HasValue("SectionEvent");
+ });
+
+ 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("IsSlidingPuzzle")
+ .HasColumnType("boolean");
+
+ 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.AppConfigurationLink", b =>
+ {
+ b.HasOne("ManagerService.Data.ApplicationInstance", "ApplicationInstance")
+ .WithMany("Configurations")
+ .HasForeignKey("ApplicationInstanceId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ManagerService.Data.Configuration", "Configuration")
+ .WithMany()
+ .HasForeignKey("ConfigurationId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ManagerService.Data.Device", "Device")
+ .WithMany()
+ .HasForeignKey("DeviceId");
+
+ b.Navigation("ApplicationInstance");
+
+ b.Navigation("Configuration");
+
+ b.Navigation("Device");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.ApplicationInstance", b =>
+ {
+ b.HasOne("ManagerService.Data.SubSection.SectionEvent", "SectionEvent")
+ .WithMany()
+ .HasForeignKey("SectionEventId");
+
+ b.Navigation("SectionEvent");
+ });
+
+ 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.EventAgenda", b =>
+ {
+ b.HasOne("ManagerService.Data.Resource", "Resource")
+ .WithMany()
+ .HasForeignKey("ResourceId");
+
+ b.HasOne("ManagerService.Data.SubSection.SectionAgenda", "SectionAgenda")
+ .WithMany("EventAgendas")
+ .HasForeignKey("SectionAgendaId");
+
+ b.HasOne("ManagerService.Data.SubSection.SectionEvent", "SectionEvent")
+ .WithMany()
+ .HasForeignKey("SectionEventId");
+
+ b.Navigation("Resource");
+
+ b.Navigation("SectionAgenda");
+
+ b.Navigation("SectionEvent");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.GeoPoint", b =>
+ {
+ b.HasOne("ManagerService.Data.SubSection.SectionEvent", "SectionEvent")
+ .WithMany()
+ .HasForeignKey("SectionEventId");
+
+ b.HasOne("ManagerService.Data.SubSection.SectionMap", "SectionMap")
+ .WithMany("MapPoints")
+ .HasForeignKey("SectionMapId");
+
+ b.Navigation("SectionEvent");
+
+ b.Navigation("SectionMap");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.GuidedPath", b =>
+ {
+ b.HasOne("ManagerService.Data.SubSection.SectionEvent", "SectionEvent")
+ .WithMany()
+ .HasForeignKey("SectionEventId");
+
+ b.HasOne("ManagerService.Data.SubSection.SectionMap", "SectionMap")
+ .WithMany()
+ .HasForeignKey("SectionMapId");
+
+ b.Navigation("SectionEvent");
+
+ b.Navigation("SectionMap");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.GuidedStep", b =>
+ {
+ b.HasOne("ManagerService.Data.SubSection.GuidedPath", "GuidedPath")
+ .WithMany("Steps")
+ .HasForeignKey("GuidedPathId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("ManagerService.Data.SubSection.GeoPoint", "TriggerGeoPoint")
+ .WithMany()
+ .HasForeignKey("TriggerGeoPointId");
+
+ b.Navigation("GuidedPath");
+
+ b.Navigation("TriggerGeoPoint");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.QuizQuestion", b =>
+ {
+ b.HasOne("ManagerService.Data.SubSection.GuidedStep", "GuidedStep")
+ .WithMany("QuizQuestions")
+ .HasForeignKey("GuidedStepId");
+
+ b.HasOne("ManagerService.Data.Resource", "PuzzleImage")
+ .WithMany()
+ .HasForeignKey("PuzzleImageId");
+
+ b.HasOne("ManagerService.Data.Resource", "Resource")
+ .WithMany()
+ .HasForeignKey("ResourceId");
+
+ b.HasOne("ManagerService.Data.SubSection.SectionQuiz", "SectionQuiz")
+ .WithMany("QuizQuestions")
+ .HasForeignKey("SectionQuizId");
+
+ b.Navigation("GuidedStep");
+
+ b.Navigation("PuzzleImage");
+
+ b.Navigation("Resource");
+
+ b.Navigation("SectionQuiz");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionEvent+MapAnnotation", b =>
+ {
+ b.HasOne("ManagerService.Data.Resource", "IconResource")
+ .WithMany()
+ .HasForeignKey("IconResourceId");
+
+ b.HasOne("ManagerService.Data.SubSection.SectionEvent+ProgrammeBlock", null)
+ .WithMany("MapAnnotations")
+ .HasForeignKey("ProgrammeBlockId");
+
+ b.Navigation("IconResource");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionEvent+ProgrammeBlock", b =>
+ {
+ b.HasOne("ManagerService.Data.SubSection.SectionEvent", null)
+ .WithMany("Programme")
+ .HasForeignKey("SectionEventId");
+ });
+
+ 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.ApplicationInstance", b =>
+ {
+ b.Navigation("Configurations");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.GuidedPath", b =>
+ {
+ b.Navigation("Steps");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.GuidedStep", b =>
+ {
+ b.Navigation("QuizQuestions");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionEvent+ProgrammeBlock", b =>
+ {
+ b.Navigation("MapAnnotations");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionAgenda", b =>
+ {
+ b.Navigation("EventAgendas");
+ });
+
+ modelBuilder.Entity("ManagerService.Data.SubSection.SectionEvent", b =>
+ {
+ b.Navigation("Programme");
+ });
+
+ 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/20250814194130_Updatedmisc0.cs b/ManagerService/Migrations/20250814194130_Updatedmisc0.cs
new file mode 100644
index 0000000..b1bf7d9
--- /dev/null
+++ b/ManagerService/Migrations/20250814194130_Updatedmisc0.cs
@@ -0,0 +1,28 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace ManagerService.Migrations
+{
+ ///
+ public partial class Updatedmisc0 : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.RenameColumn(
+ name: "isActive",
+ table: "Sections",
+ newName: "IsActive");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.RenameColumn(
+ name: "IsActive",
+ table: "Sections",
+ newName: "isActive");
+ }
+ }
+}
diff --git a/ManagerService/Migrations/MyInfoMateDbContextModelSnapshot.cs b/ManagerService/Migrations/MyInfoMateDbContextModelSnapshot.cs
index 0b50c24..f07f0d4 100644
--- a/ManagerService/Migrations/MyInfoMateDbContextModelSnapshot.cs
+++ b/ManagerService/Migrations/MyInfoMateDbContextModelSnapshot.cs
@@ -348,6 +348,9 @@ namespace ManagerService.Migrations
.IsRequired()
.HasColumnType("text");
+ b.Property("IsActive")
+ .HasColumnType("boolean");
+
b.Property("IsBeacon")
.HasColumnType("boolean");
@@ -383,9 +386,6 @@ namespace ManagerService.Migrations
b.Property("Type")
.HasColumnType("integer");
- b.Property("isActive")
- .HasColumnType("boolean");
-
b.HasKey("Id");
b.HasIndex("SectionMenuId");
diff --git a/ManagerService/Startup.cs b/ManagerService/Startup.cs
index da99d43..45e9ed7 100644
--- a/ManagerService/Startup.cs
+++ b/ManagerService/Startup.cs
@@ -188,7 +188,7 @@ namespace ManagerService
app.UseCors(
#if DEBUG
options => options
- .SetIsOriginAllowed(origin => string.IsNullOrEmpty(origin) || origin == "http://localhost:55628")
+ .SetIsOriginAllowed(origin => string.IsNullOrEmpty(origin) || origin == "http://localhost:52172")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials()