diff --git a/ManagerService/Controllers/ConfigurationController.cs b/ManagerService/Controllers/ConfigurationController.cs index aac6d30..a685637 100644 --- a/ManagerService/Controllers/ConfigurationController.cs +++ b/ManagerService/Controllers/ConfigurationController.cs @@ -237,9 +237,6 @@ namespace ManagerService.Controllers configuration.SecondaryColor = newConfiguration.secondaryColor; configuration.LoaderImageId = newConfiguration.loaderImageId; configuration.LoaderImageUrl = newConfiguration.loaderImageUrl; - configuration.WeatherCity = newConfiguration.weatherCity; - configuration.WeatherUpdatedDate = null; - configuration.WeatherResult = null; configuration.IsDate = newConfiguration.isDate; configuration.IsHour = newConfiguration.isHour; configuration.IsSectionImageBackground = true; @@ -315,12 +312,6 @@ namespace ManagerService.Controllers configuration.IsOffline = updatedConfiguration.isOffline; configuration.LoaderImageId = updatedConfiguration.loaderImageId; configuration.LoaderImageUrl = updatedConfiguration.loaderImageUrl; - configuration.WeatherCity = updatedConfiguration.weatherCity; - if (configuration.WeatherCity != updatedConfiguration.weatherCity) - { - configuration.WeatherUpdatedDate = null; - configuration.WeatherResult = null; - } configuration.IsDate = updatedConfiguration.isDate; configuration.IsHour = updatedConfiguration.isHour; configuration.IsSectionImageBackground = updatedConfiguration.isSectionImageBackground; @@ -682,7 +673,6 @@ namespace ManagerService.Controllers createResource(exportConfiguration.resources.Where(r => r.id == configuration.LoaderImageId).FirstOrDefault()); } - configuration.WeatherCity = exportConfiguration.weatherCity; configuration.IsDate = exportConfiguration.isDate; configuration.IsHour = exportConfiguration.isHour; configuration.IsSectionImageBackground = exportConfiguration.isSectionImageBackground; diff --git a/ManagerService/Controllers/UserController.cs b/ManagerService/Controllers/UserController.cs index 57d7ca1..9bbb032 100644 --- a/ManagerService/Controllers/UserController.cs +++ b/ManagerService/Controllers/UserController.cs @@ -6,6 +6,7 @@ using ManagerService.Data; using ManagerService.DTOs; using ManagerService.Helpers; using ManagerService.Service.Services; +using ManagerService.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; @@ -23,12 +24,16 @@ namespace ManagerService.Controllers private readonly ILogger _logger; private readonly ProfileLogic _profileLogic; - public UserController(ILogger logger, UserDatabaseService userService, TokensService tokenService, ProfileLogic profileLogic) + private readonly MyInfoMateDbContext _myInfoMateDbContext; + IHexIdGeneratorService idService = new HexIdGeneratorService(); + + public UserController(ILogger logger, UserDatabaseService userService, TokensService tokenService, ProfileLogic profileLogic, MyInfoMateDbContext myInfoMateDbContext) { _logger = logger; _userService = userService; _tokenService = tokenService; _profileLogic = profileLogic; + _myInfoMateDbContext = myInfoMateDbContext; } /// @@ -41,7 +46,8 @@ namespace ManagerService.Controllers { try { - List users = _userService.GetAll(); + //List users = _userService.GetAll(); + List users= _myInfoMateDbContext.Users.ToList(); return new OkObjectResult(users); } @@ -64,7 +70,8 @@ namespace ManagerService.Controllers { try { - OldUser user = _userService.GetById(id); + User user = _myInfoMateDbContext.Users.FirstOrDefault(i => i.Id == id); + //OldUser user = _userService.GetById(id); if (user == null) throw new KeyNotFoundException("This user was not found"); @@ -91,29 +98,39 @@ namespace ManagerService.Controllers [ProducesResponseType(typeof(string), 409)] [ProducesResponseType(typeof(string), 500)] [HttpPost] - public ObjectResult CreateUser([FromBody] OldUser newUser) + public ObjectResult CreateUser([FromBody] UserDetailDTO newUserDTO) { try { - if (newUser == null) + if (newUserDTO == null) throw new ArgumentNullException("User param is null"); - if (newUser.InstanceId == null) + if (newUserDTO.instanceId == null) throw new ArgumentNullException("InstanceId is null"); + User newUser = new User(); + newUser.InstanceId = newUserDTO.instanceId; + newUser.Email = newUserDTO.email; + newUser.FirstName = newUserDTO.firstName; + newUser.LastName = newUserDTO.lastName; newUser.Token = _tokenService.GenerateToken(newUser.Email).ToString(); - newUser.DateCreation = DateTime.Now; + newUser.DateCreation = DateTime.Now.ToUniversalTime(); + newUser.Id = idService.GenerateHexId(); - List users = _userService.GetAll(); + List users= _myInfoMateDbContext.Users.ToList(); + //List users = _userService.GetAll(); if (users.Select(u => u.Email).Contains(newUser.Email)) throw new InvalidOperationException("This Email is already used"); newUser.Password = _profileLogic.HashPassword(newUser.Password); - OldUser userCreated = _userService.Create(newUser); + //OldUser userCreated = _userService.Create(newUser); - return new OkObjectResult(userCreated.ToDTO()); + _myInfoMateDbContext.Add(newUser); + _myInfoMateDbContext.SaveChanges(); + + return new OkObjectResult(newUser.ToDTO()); } catch (ArgumentNullException ex) { @@ -139,21 +156,27 @@ namespace ManagerService.Controllers [ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 500)] [HttpPut] - public ObjectResult UpdateUser([FromBody] OldUser updatedUser) + public ObjectResult UpdateUser([FromBody] UserDetailDTO updatedUser) { try { if (updatedUser == null) throw new ArgumentNullException("User param is null"); - OldUser user = _userService.GetById(updatedUser.Id); + User user = _myInfoMateDbContext.Users.FirstOrDefault(u => u.Id == updatedUser.id); + //OldUser user = _userService.GetById(updatedUser.Id); if (user == null) throw new KeyNotFoundException("User does not exist"); - OldUser userModified = _userService.Update(updatedUser.Id, updatedUser); + //OldUser userModified = _userService.Update(updatedUser.Id, updatedUser); + user.FirstName = updatedUser.firstName; + user.LastName = updatedUser.lastName; + // TODO other field ? - return new OkObjectResult(userModified.ToDTO()); + _myInfoMateDbContext.SaveChanges(); + + return new OkObjectResult(user.ToDTO()); } catch (ArgumentNullException ex) { @@ -186,12 +209,15 @@ namespace ManagerService.Controllers if (id == null) throw new ArgumentNullException("User param is null"); - OldUser user = _userService.GetById(id); + User user = _myInfoMateDbContext.Users.FirstOrDefault(u => u.Id == id); + //OldUser user = _userService.GetById(id); if (user == null) throw new KeyNotFoundException("User does not exist"); - _userService.Remove(id); + //_userService.Remove(id); + _myInfoMateDbContext.Remove(user); + _myInfoMateDbContext.SaveChanges(); return new ObjectResult("The user has been deleted") { StatusCode = 202 }; diff --git a/ManagerService/DTOs/ConfigurationDTO.cs b/ManagerService/DTOs/ConfigurationDTO.cs index 72c52b6..c6b2470 100644 --- a/ManagerService/DTOs/ConfigurationDTO.cs +++ b/ManagerService/DTOs/ConfigurationDTO.cs @@ -23,16 +23,6 @@ namespace ManagerService.DTOs public List sectionIds { get; set; } public string loaderImageId { get; set; } // == ResourceId public string loaderImageUrl { get; set; } // == Image url - public string weatherCity { get; set; } // Weather City // TODO REMOVE - public DateTimeOffset? weatherUpdatedDate { get; set; } // Weather date update (to only refresh) // TODO REMOVE - public string weatherResult { get; set; } // Weather result // TODO REMOVE - public bool isWeather // TODO REMOVE - { - get - { - return weatherCity != null && weatherCity.Trim().Length > 0; - } - } public bool isDate { get; set; } public bool isHour { get; set; } diff --git a/ManagerService/DTOs/UserDetailDTO.cs b/ManagerService/DTOs/UserDetailDTO.cs index 44cf1a6..aab7a8d 100644 --- a/ManagerService/DTOs/UserDetailDTO.cs +++ b/ManagerService/DTOs/UserDetailDTO.cs @@ -6,5 +6,6 @@ public string email { get; set; } public string firstName { get; set; } public string lastName { get; set; } + public string instanceId { get; set; } } } diff --git a/ManagerService/Data/Configuration.cs b/ManagerService/Data/Configuration.cs index e43f230..89a67c1 100644 --- a/ManagerService/Data/Configuration.cs +++ b/ManagerService/Data/Configuration.cs @@ -70,15 +70,6 @@ namespace ManagerService.Data /*[BsonElement("LoaderImageUrl")]*/ public string LoaderImageUrl { get; set; } - /*[BsonElement("WeatherCity")]*/ - public string WeatherCity { get; set; } - - /*[BsonElement("WeatherUpdatedDate")]*/ - public DateTimeOffset? WeatherUpdatedDate { get; set; } - - /*[BsonElement("WeatherResult")]*/ - public string WeatherResult { get; set; } - /*[BsonElement("IsDate")]*/ public bool IsDate { get; set; } @@ -105,9 +96,6 @@ namespace ManagerService.Data imageSource = ImageSource, loaderImageId = LoaderImageId, loaderImageUrl = LoaderImageUrl, - weatherCity = WeatherCity, - weatherUpdatedDate = WeatherUpdatedDate, - weatherResult = WeatherResult, dateCreation = DateCreation, primaryColor = PrimaryColor, languages = Languages, @@ -135,7 +123,6 @@ namespace ManagerService.Data imageSource = ImageSource, loaderImageId = LoaderImageId, loaderImageUrl = LoaderImageUrl, - weatherCity = WeatherCity, dateCreation = DateCreation, primaryColor = PrimaryColor, languages = Languages, diff --git a/ManagerService/Data/OldConfiguration.cs b/ManagerService/Data/OldConfiguration.cs index 9408407..d45b1b5 100644 --- a/ManagerService/Data/OldConfiguration.cs +++ b/ManagerService/Data/OldConfiguration.cs @@ -95,9 +95,6 @@ namespace ManagerService.Data imageSource = ImageSource, loaderImageId = LoaderImageId, loaderImageUrl = LoaderImageUrl, - weatherCity = WeatherCity, - weatherUpdatedDate = WeatherUpdatedDate, - weatherResult = WeatherResult, dateCreation = DateCreation, primaryColor = PrimaryColor, languages = Languages, @@ -125,7 +122,6 @@ namespace ManagerService.Data imageSource = ImageSource, loaderImageId = LoaderImageId, loaderImageUrl = LoaderImageUrl, - weatherCity = WeatherCity, dateCreation = DateCreation, primaryColor = PrimaryColor, languages = Languages, diff --git a/ManagerService/Data/User.cs b/ManagerService/Data/User.cs index cf75539..0c90d47 100644 --- a/ManagerService/Data/User.cs +++ b/ManagerService/Data/User.cs @@ -55,6 +55,7 @@ namespace ManagerService.Data email = Email, firstName = FirstName, lastName = LastName, + instanceId = InstanceId, }; } diff --git a/ManagerService/Migrations/20250319134251_CleanWeatherInConfiguration.Designer.cs b/ManagerService/Migrations/20250319134251_CleanWeatherInConfiguration.Designer.cs new file mode 100644 index 0000000..13fdd0b --- /dev/null +++ b/ManagerService/Migrations/20250319134251_CleanWeatherInConfiguration.Designer.cs @@ -0,0 +1,826 @@ +// +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("20250319134251_CleanWeatherInConfiguration")] + partial class CleanWeatherInConfiguration + { + /// + 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") + .IsRequired() + .HasColumnType("text"); + + b.Property("IpAddressWLAN") + .IsRequired() + .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") + .IsRequired() + .HasColumnType("text"); + + b.Property("ImageSource") + .IsRequired() + .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.Categorie", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Icon") + .HasColumnType("text"); + + b.Property>("Label") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("Order") + .HasColumnType("integer"); + + b.Property("ResourceId") + .HasColumnType("text"); + + b.Property("SectionMapId") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("ResourceId"); + + b.HasIndex("SectionMapId"); + + b.ToTable("Categorie"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.Content", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property>("Description") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("Order") + .HasColumnType("integer"); + + b.Property("ResourceId") + .HasColumnType("text"); + + b.Property("SectionArticleId") + .HasColumnType("text"); + + b.Property("SectionSliderId") + .HasColumnType("text"); + + b.Property>("Title") + .IsRequired() + .HasColumnType("jsonb"); + + b.HasKey("Id"); + + b.HasIndex("ResourceId"); + + b.HasIndex("SectionArticleId"); + + b.HasIndex("SectionSliderId"); + + b.ToTable("Content"); + }); + + 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("GeoPoint"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.OrderedTranslationAndResource", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Order") + .HasColumnType("integer"); + + b.Property("SectionPdfId") + .HasColumnType("text"); + + b.Property>("TranslationAndResources") + .IsRequired() + .HasColumnType("jsonb"); + + b.HasKey("Id"); + + b.HasIndex("SectionPdfId"); + + b.ToTable("OrderedTranslationAndResource"); + }); + + 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("QuizQuestion"); + }); + + 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("mapProvider") + .HasColumnType("integer"); + + b.Property>("resourceIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.HasDiscriminator().HasValue("Agenda"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionArticle", b => + { + b.HasBaseType("ManagerService.Data.Section"); + + b.Property>("audioIds") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property>("content") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("isContentTop") + .HasColumnType("boolean"); + + b.Property("isReadAudioAuto") + .HasColumnType("boolean"); + + b.HasDiscriminator().HasValue("Article"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionMap", b => + { + b.HasBaseType("ManagerService.Data.Section"); + + b.Property("CenterLatitude") + .HasColumnType("text"); + + b.Property("CenterLongitude") + .HasColumnType("text"); + + b.Property("MapProvider") + .HasColumnType("integer"); + + b.Property("MapType") + .HasColumnType("integer"); + + b.Property("MapTypeMapbox") + .HasColumnType("integer"); + + b.Property("ResourceId") + .HasColumnType("text"); + + b.Property("Zoom") + .HasColumnType("integer"); + + b.HasIndex("ResourceId"); + + 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.HasDiscriminator().HasValue("PDF"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionPuzzle", b => + { + b.HasBaseType("ManagerService.Data.Section"); + + b.Property("Cols") + .HasColumnType("integer"); + + b.Property("ContentId") + .HasColumnType("text"); + + b.Property("ContentId1") + .HasColumnType("integer"); + + b.Property>("MessageDebut") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property>("MessageFin") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property("Rows") + .HasColumnType("integer"); + + b.HasIndex("ContentId1"); + + b.HasDiscriminator().HasValue("Puzzle"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionQuiz", b => + { + b.HasBaseType("ManagerService.Data.Section"); + + b.Property>("BadLevel") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property>("GoodLevel") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property>("GreatLevel") + .IsRequired() + .HasColumnType("jsonb"); + + b.Property>("MediumLevel") + .IsRequired() + .HasColumnType("jsonb"); + + b.HasDiscriminator().HasValue("Quiz"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionSlider", b => + { + b.HasBaseType("ManagerService.Data.Section"); + + b.HasDiscriminator().HasValue("Slider"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionVideo", b => + { + b.HasBaseType("ManagerService.Data.Section"); + + b.Property("Source") + .IsRequired() + .HasColumnType("text"); + + b.HasDiscriminator().HasValue("Video"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionWeather", b => + { + b.HasBaseType("ManagerService.Data.Section"); + + b.Property("City") + .HasColumnType("text"); + + b.Property("Result") + .HasColumnType("text"); + + b.Property("UpdatedDate") + .HasColumnType("timestamp with time zone"); + + b.HasDiscriminator().HasValue("Weather"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionWeb", b => + { + b.HasBaseType("ManagerService.Data.Section"); + + b.Property("Source") + .IsRequired() + .HasColumnType("text"); + + b.ToTable("Sections", t => + { + t.Property("Source") + .HasColumnName("SectionWeb_Source"); + }); + + 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("Sections") + .HasForeignKey("SectionMenuId"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.Categorie", b => + { + b.HasOne("ManagerService.Data.Resource", "Resource") + .WithMany() + .HasForeignKey("ResourceId"); + + b.HasOne("ManagerService.Data.SubSection.SectionMap", null) + .WithMany("Categories") + .HasForeignKey("SectionMapId"); + + b.Navigation("Resource"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.Content", b => + { + b.HasOne("ManagerService.Data.Resource", "Resource") + .WithMany() + .HasForeignKey("ResourceId"); + + b.HasOne("ManagerService.Data.SubSection.SectionArticle", null) + .WithMany("contents") + .HasForeignKey("SectionArticleId"); + + b.HasOne("ManagerService.Data.SubSection.SectionSlider", null) + .WithMany("Contents") + .HasForeignKey("SectionSliderId"); + + b.Navigation("Resource"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.GeoPoint", b => + { + b.HasOne("ManagerService.Data.SubSection.SectionMap", null) + .WithMany("Points") + .HasForeignKey("SectionMapId"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.OrderedTranslationAndResource", b => + { + b.HasOne("ManagerService.Data.SubSection.SectionPdf", null) + .WithMany("orderedTranslationAndResources") + .HasForeignKey("SectionPdfId"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.QuizQuestion", b => + { + b.HasOne("ManagerService.Data.Resource", "Resource") + .WithMany() + .HasForeignKey("ResourceId"); + + b.HasOne("ManagerService.Data.SubSection.SectionQuiz", null) + .WithMany("Questions") + .HasForeignKey("SectionQuizId"); + + b.Navigation("Resource"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionMap", b => + { + b.HasOne("ManagerService.Data.Resource", "Resource") + .WithMany() + .HasForeignKey("ResourceId"); + + b.Navigation("Resource"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionPuzzle", b => + { + b.HasOne("ManagerService.Data.SubSection.Content", "Content") + .WithMany() + .HasForeignKey("ContentId1"); + + b.Navigation("Content"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionArticle", b => + { + b.Navigation("contents"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionMap", b => + { + b.Navigation("Categories"); + + b.Navigation("Points"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionMenu", b => + { + b.Navigation("Sections"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionPdf", b => + { + b.Navigation("orderedTranslationAndResources"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionQuiz", b => + { + b.Navigation("Questions"); + }); + + modelBuilder.Entity("ManagerService.Data.SubSection.SectionSlider", b => + { + b.Navigation("Contents"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/ManagerService/Migrations/20250319134251_CleanWeatherInConfiguration.cs b/ManagerService/Migrations/20250319134251_CleanWeatherInConfiguration.cs new file mode 100644 index 0000000..9cf2e3d --- /dev/null +++ b/ManagerService/Migrations/20250319134251_CleanWeatherInConfiguration.cs @@ -0,0 +1,49 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace ManagerService.Migrations +{ + /// + public partial class CleanWeatherInConfiguration : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "WeatherCity", + table: "Configurations"); + + migrationBuilder.DropColumn( + name: "WeatherResult", + table: "Configurations"); + + migrationBuilder.DropColumn( + name: "WeatherUpdatedDate", + table: "Configurations"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "WeatherCity", + table: "Configurations", + type: "text", + nullable: true); + + migrationBuilder.AddColumn( + name: "WeatherResult", + table: "Configurations", + type: "text", + nullable: true); + + migrationBuilder.AddColumn( + name: "WeatherUpdatedDate", + table: "Configurations", + type: "timestamp with time zone", + nullable: true); + } + } +} diff --git a/ManagerService/Migrations/MyInfoMateDbContextModelSnapshot.cs b/ManagerService/Migrations/MyInfoMateDbContextModelSnapshot.cs index 7e8b869..0aa7f3e 100644 --- a/ManagerService/Migrations/MyInfoMateDbContextModelSnapshot.cs +++ b/ManagerService/Migrations/MyInfoMateDbContextModelSnapshot.cs @@ -91,15 +91,6 @@ namespace ManagerService.Migrations .IsRequired() .HasColumnType("jsonb"); - b.Property("WeatherCity") - .HasColumnType("text"); - - b.Property("WeatherResult") - .HasColumnType("text"); - - b.Property("WeatherUpdatedDate") - .HasColumnType("timestamp with time zone"); - b.HasKey("Id"); b.ToTable("Configurations");