diff --git a/Marechai.ApiClient/Models/NewsDto.cs b/Marechai.ApiClient/Models/NewsDto.cs
index 645569bf..833734b8 100644
--- a/Marechai.ApiClient/Models/NewsDto.cs
+++ b/Marechai.ApiClient/Models/NewsDto.cs
@@ -15,7 +15,7 @@ namespace Marechai.ApiClient.Models
/// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
public IDictionary AdditionalData { get; set; }
/// The affected_id property
- public int? AffectedId { get; set; }
+ public long? AffectedId { get; set; }
/// The controller property
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
@@ -33,6 +33,14 @@ namespace Marechai.ApiClient.Models
#nullable restore
#else
public string ItemName { get; set; }
+#endif
+ /// The name property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Name { get; set; }
+#nullable restore
+#else
+ public string Name { get; set; }
#endif
/// The text property
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
@@ -71,10 +79,11 @@ namespace Marechai.ApiClient.Models
{
return new Dictionary>
{
- { "affected_id", n => { AffectedId = n.GetIntValue(); } },
+ { "affected_id", n => { AffectedId = n.GetLongValue(); } },
{ "controller", n => { Controller = n.GetStringValue(); } },
{ "id", n => { Id = n.GetIntValue(); } },
{ "item_name", n => { ItemName = n.GetStringValue(); } },
+ { "name", n => { Name = n.GetStringValue(); } },
{ "text", n => { Text = n.GetStringValue(); } },
{ "timestamp", n => { Timestamp = n.GetDateTimeOffsetValue(); } },
{ "type", n => { Type = n.GetIntValue(); } },
@@ -87,10 +96,11 @@ namespace Marechai.ApiClient.Models
public virtual void Serialize(ISerializationWriter writer)
{
if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer));
- writer.WriteIntValue("affected_id", AffectedId);
+ writer.WriteLongValue("affected_id", AffectedId);
writer.WriteStringValue("controller", Controller);
writer.WriteIntValue("id", Id);
writer.WriteStringValue("item_name", ItemName);
+ writer.WriteStringValue("name", Name);
writer.WriteStringValue("text", Text);
writer.WriteDateTimeOffsetValue("timestamp", Timestamp);
writer.WriteIntValue("type", Type);
diff --git a/Marechai.ApiClient/kiota-lock.json b/Marechai.ApiClient/kiota-lock.json
index a47e581e..dca8f2fd 100644
--- a/Marechai.ApiClient/kiota-lock.json
+++ b/Marechai.ApiClient/kiota-lock.json
@@ -1,5 +1,5 @@
{
- "descriptionHash": "5FA86B439275E38EC7A0C23D1258AB8B9FE90EEE81BE82C55B8CA42C883D5B3A7A3706740519449FBF51C144142A70893B24BD7730FB51C2A104977412B86553",
+ "descriptionHash": "180C13118CC0FB9D7D20641B70174A8A6E9087183E8E28E0B4E9F58D8D72F75BCD8A178553461F31625ED679C9345769F48799D007D30D599D917A54D9142E62",
"descriptionLocation": "../../../../../tmp/openapi.json",
"lockFileVersion": "1.0.0",
"kiotaVersion": "1.31.1",
diff --git a/Marechai.App/Presentation/ViewModels/NewsViewModel.cs b/Marechai.App/Presentation/ViewModels/NewsViewModel.cs
index 1f005afb..ddd1406b 100644
--- a/Marechai.App/Presentation/ViewModels/NewsViewModel.cs
+++ b/Marechai.App/Presentation/ViewModels/NewsViewModel.cs
@@ -20,7 +20,7 @@ public class NewsItemViewModel
public required IAsyncRelayCommand NavigateToItemCommand { get; init; }
///
- /// Determines if this news item can be navigated to (only computers and consoles)
+ /// Determines if this news item can be navigated to
///
public bool CanNavigateToItem
{
@@ -36,7 +36,27 @@ public class NewsItemViewModel
or NewsType.NewComputerInCollection
or NewsType.NewConsoleInCollection
or NewsType.UpdatedComputerInCollection
- or NewsType.UpdatedConsoleInCollection;
+ or NewsType.UpdatedConsoleInCollection
+ or NewsType.NewBookInDb
+ or NewsType.UpdatedBookInDb
+ or NewsType.NewDocumentInDb
+ or NewsType.UpdatedDocumentInDb
+ or NewsType.NewMagazineInDb
+ or NewsType.UpdatedMagazineInDb
+ or NewsType.NewPersonInDb
+ or NewsType.UpdatedPersonInDb
+ or NewsType.NewSoftwareInDb
+ or NewsType.UpdatedSoftwareInDb
+ or NewsType.NewSoftwareVersionInDb
+ or NewsType.UpdatedSoftwareVersionInDb
+ or NewsType.NewSoftwareReleaseInDb
+ or NewsType.UpdatedSoftwareReleaseInDb
+ or NewsType.NewGpuInDb
+ or NewsType.UpdatedGpuInDb
+ or NewsType.NewSoundSynthInDb
+ or NewsType.UpdatedSoundSynthInDb
+ or NewsType.NewProcessorInDb
+ or NewsType.UpdatedProcessorInDb;
}
}
}
@@ -79,33 +99,83 @@ public partial class NewsViewModel : ObservableObject
var newsType = (NewsType)news.Type.Value;
- // Only navigate for computer and console news items
- bool isComputerOrConsole = newsType is NewsType.NewComputerInDb
- or NewsType.NewConsoleInDb
- or NewsType.UpdatedComputerInDb
- or NewsType.UpdatedConsoleInDb
- or NewsType.NewComputerInCollection
- or NewsType.NewConsoleInCollection
- or NewsType.UpdatedComputerInCollection
- or NewsType.UpdatedConsoleInCollection;
+ if(news.AffectedId is null or <= 0) return;
- if(!isComputerOrConsole) return;
+ int affectedId = (int)(news.AffectedId ?? 0);
+ string viewName;
+ var parameters = new NavigationParameters { { NavParamKeys.NavigationSource, nameof(NewsViewModel) } };
- // Extract the machine ID from AffectedId
- if(news.AffectedId is null) return;
-
- int machineId = news.AffectedId ?? 0;
-
- if(machineId <= 0) return;
-
- // Navigate to machine view with source information
- var parameters = new NavigationParameters
+ switch(newsType)
{
- { NavParamKeys.MachineId, machineId },
- { NavParamKeys.NavigationSource, nameof(NewsViewModel) }
- };
+ case NewsType.NewComputerInDb or NewsType.UpdatedComputerInDb
+ or NewsType.NewComputerInCollection or NewsType.UpdatedComputerInCollection
+ or NewsType.NewConsoleInDb or NewsType.UpdatedConsoleInDb
+ or NewsType.NewConsoleInCollection or NewsType.UpdatedConsoleInCollection:
+ viewName = nameof(MachineViewPage);
+ parameters.Add(NavParamKeys.MachineId, affectedId);
- _regionManager.RequestNavigate(RegionNames.Content, nameof(MachineViewPage), parameters);
+ break;
+
+ case NewsType.NewBookInDb or NewsType.UpdatedBookInDb:
+ viewName = nameof(BookViewPage);
+ parameters.Add(NavParamKeys.BookId, affectedId);
+
+ break;
+
+ case NewsType.NewDocumentInDb or NewsType.UpdatedDocumentInDb:
+ viewName = nameof(DocumentViewPage);
+ parameters.Add(NavParamKeys.DocumentId, affectedId);
+
+ break;
+
+ case NewsType.NewMagazineInDb or NewsType.UpdatedMagazineInDb:
+ viewName = nameof(MagazineViewPage);
+ parameters.Add(NavParamKeys.MagazineId, affectedId);
+
+ break;
+
+ case NewsType.NewPersonInDb or NewsType.UpdatedPersonInDb:
+ viewName = nameof(PersonViewPage);
+ parameters.Add(NavParamKeys.PersonId, affectedId);
+
+ break;
+
+ case NewsType.NewSoftwareInDb or NewsType.UpdatedSoftwareInDb
+ or NewsType.NewSoftwareVersionInDb or NewsType.UpdatedSoftwareVersionInDb:
+ viewName = nameof(SoftwareViewPage);
+ parameters.Add(NavParamKeys.SoftwareId, affectedId);
+
+ break;
+
+ case NewsType.NewSoftwareReleaseInDb or NewsType.UpdatedSoftwareReleaseInDb:
+ viewName = nameof(SoftwareReleaseViewPage);
+ parameters.Add(NavParamKeys.SoftwareReleaseId, affectedId);
+
+ break;
+
+ case NewsType.NewGpuInDb or NewsType.UpdatedGpuInDb:
+ viewName = nameof(GpuDetailPage);
+ parameters.Add(NavParamKeys.GpuId, affectedId);
+
+ break;
+
+ case NewsType.NewSoundSynthInDb or NewsType.UpdatedSoundSynthInDb:
+ viewName = nameof(SoundSynthDetailPage);
+ parameters.Add(NavParamKeys.SoundSynthId, affectedId);
+
+ break;
+
+ case NewsType.NewProcessorInDb or NewsType.UpdatedProcessorInDb:
+ viewName = nameof(ProcessorDetailPage);
+ parameters.Add(NavParamKeys.ProcessorId, affectedId);
+
+ break;
+
+ default:
+ return;
+ }
+
+ _regionManager.RequestNavigate(RegionNames.Content, viewName, parameters);
}
///
@@ -126,6 +196,26 @@ public partial class NewsViewModel : ObservableObject
NewsType.UpdatedConsoleInDb => _localizer["Updated console in database"].Value,
NewsType.UpdatedComputerInCollection => _localizer["Updated computer in collection"].Value,
NewsType.UpdatedConsoleInCollection => _localizer["Updated console in collection"].Value,
+ NewsType.NewBookInDb => _localizer["New book in database"].Value,
+ NewsType.UpdatedBookInDb => _localizer["Updated book in database"].Value,
+ NewsType.NewDocumentInDb => _localizer["New document in database"].Value,
+ NewsType.UpdatedDocumentInDb => _localizer["Updated document in database"].Value,
+ NewsType.NewMagazineInDb => _localizer["New magazine in database"].Value,
+ NewsType.UpdatedMagazineInDb => _localizer["Updated magazine in database"].Value,
+ NewsType.NewPersonInDb => _localizer["New person in database"].Value,
+ NewsType.UpdatedPersonInDb => _localizer["Updated person in database"].Value,
+ NewsType.NewSoftwareInDb => _localizer["New software in database"].Value,
+ NewsType.UpdatedSoftwareInDb => _localizer["Updated software in database"].Value,
+ NewsType.NewSoftwareVersionInDb => _localizer["New software version in database"].Value,
+ NewsType.UpdatedSoftwareVersionInDb => _localizer["Updated software version in database"].Value,
+ NewsType.NewSoftwareReleaseInDb => _localizer["New software release in database"].Value,
+ NewsType.UpdatedSoftwareReleaseInDb => _localizer["Updated software release in database"].Value,
+ NewsType.NewGpuInDb => _localizer["New GPU in database"].Value,
+ NewsType.UpdatedGpuInDb => _localizer["Updated GPU in database"].Value,
+ NewsType.NewSoundSynthInDb => _localizer["New sound synthesizer in database"].Value,
+ NewsType.UpdatedSoundSynthInDb => _localizer["Updated sound synthesizer in database"].Value,
+ NewsType.NewProcessorInDb => _localizer["New processor in database"].Value,
+ NewsType.UpdatedProcessorInDb => _localizer["Updated processor in database"].Value,
_ => string.Empty
};
}
diff --git a/Marechai.App/Resources/Resources.de.resx b/Marechai.App/Resources/Resources.de.resx
index 5a3d13e2..755841fc 100644
--- a/Marechai.App/Resources/Resources.de.resx
+++ b/Marechai.App/Resources/Resources.de.resx
@@ -510,6 +510,66 @@
Aktualisierte Konsole in der Sammlung
+
+ Neues Buch in der Datenbank
+
+
+ Aktualisiertes Buch in der Datenbank
+
+
+ Neues Dokument in der Datenbank
+
+
+ Aktualisiertes Dokument in der Datenbank
+
+
+ Neue Zeitschrift in der Datenbank
+
+
+ Aktualisierte Zeitschrift in der Datenbank
+
+
+ Neue Person in der Datenbank
+
+
+ Aktualisierte Person in der Datenbank
+
+
+ Neue Software in der Datenbank
+
+
+ Aktualisierte Software in der Datenbank
+
+
+ Neue Softwareversion in der Datenbank
+
+
+ Aktualisierte Softwareversion in der Datenbank
+
+
+ Neue Softwareveröffentlichung in der Datenbank
+
+
+ Aktualisierte Softwareveröffentlichung in der Datenbank
+
+
+ Neue GPU in der Datenbank
+
+
+ Aktualisierte GPU in der Datenbank
+
+
+ Neuer Soundsynthesizer in der Datenbank
+
+
+ Aktualisierter Soundsynthesizer in der Datenbank
+
+
+ Neuer Prozessor in der Datenbank
+
+
+ Aktualisierter Prozessor in der Datenbank
+
Keine Nachrichten verfügbar
diff --git a/Marechai.App/Resources/Resources.es.resx b/Marechai.App/Resources/Resources.es.resx
index e5642aaa..fd414bc4 100644
--- a/Marechai.App/Resources/Resources.es.resx
+++ b/Marechai.App/Resources/Resources.es.resx
@@ -510,6 +510,66 @@
Consola actualizada en la colección
+
+ Nuevo libro en la base de datos
+
+
+ Libro actualizado en la base de datos
+
+
+ Nuevo documento en la base de datos
+
+
+ Documento actualizado en la base de datos
+
+
+ Nueva revista en la base de datos
+
+
+ Revista actualizada en la base de datos
+
+
+ Nueva persona en la base de datos
+
+
+ Persona actualizada en la base de datos
+
+
+ Nuevo software en la base de datos
+
+
+ Software actualizado en la base de datos
+
+
+ Nueva versión de software en la base de datos
+
+
+ Versión de software actualizada en la base de datos
+
+
+ Nuevo lanzamiento de software en la base de datos
+
+
+ Lanzamiento de software actualizado en la base de datos
+
+
+ Nueva GPU en la base de datos
+
+
+ GPU actualizada en la base de datos
+
+
+ Nuevo sintetizador de sonido en la base de datos
+
+
+ Sintetizador de sonido actualizado en la base de datos
+
+
+ Nuevo procesador en la base de datos
+
+
+ Procesador actualizado en la base de datos
+
No hay noticias disponibles
diff --git a/Marechai.App/Resources/Resources.fr.resx b/Marechai.App/Resources/Resources.fr.resx
index 6aef7e0b..5bee42d1 100644
--- a/Marechai.App/Resources/Resources.fr.resx
+++ b/Marechai.App/Resources/Resources.fr.resx
@@ -510,6 +510,66 @@
Console mise à jour dans la collection
+
+ Nouveau livre dans la base de données
+
+
+ Livre mis à jour dans la base de données
+
+
+ Nouveau document dans la base de données
+
+
+ Document mis à jour dans la base de données
+
+
+ Nouveau magazine dans la base de données
+
+
+ Magazine mis à jour dans la base de données
+
+
+ Nouvelle personne dans la base de données
+
+
+ Personne mise à jour dans la base de données
+
+
+ Nouveau logiciel dans la base de données
+
+
+ Logiciel mis à jour dans la base de données
+
+
+ Nouvelle version de logiciel dans la base de données
+
+
+ Version de logiciel mise à jour dans la base de données
+
+
+ Nouvelle publication de logiciel dans la base de données
+
+
+ Publication de logiciel mise à jour dans la base de données
+
+
+ Nouveau GPU dans la base de données
+
+
+ GPU mis à jour dans la base de données
+
+
+ Nouveau synthétiseur sonore dans la base de données
+
+
+ Synthétiseur sonore mis à jour dans la base de données
+
+
+ Nouveau processeur dans la base de données
+
+
+ Processeur mis à jour dans la base de données
+
Aucune actualité disponible
diff --git a/Marechai.App/Resources/Resources.la.resx b/Marechai.App/Resources/Resources.la.resx
index b05c6efa..b9b767bc 100644
--- a/Marechai.App/Resources/Resources.la.resx
+++ b/Marechai.App/Resources/Resources.la.resx
@@ -510,6 +510,66 @@
Consola renovata in collectione
+
+ Liber novus in datorum basi
+
+
+ Liber renovatus in datorum basi
+
+
+ Documentum novum in datorum basi
+
+
+ Documentum renovatum in datorum basi
+
+
+ Ephemeris nova in datorum basi
+
+
+ Ephemeris renovata in datorum basi
+
+
+ Persona nova in datorum basi
+
+
+ Persona renovata in datorum basi
+
+
+ Programma novum in datorum basi
+
+
+ Programma renovatum in datorum basi
+
+
+ Versio programmatis nova in datorum basi
+
+
+ Versio programmatis renovata in datorum basi
+
+
+ Editio programmatis nova in datorum basi
+
+
+ Editio programmatis renovata in datorum basi
+
+
+ GPU novum in datorum basi
+
+
+ GPU renovatum in datorum basi
+
+
+ Synthesizer sonorum novus in datorum basi
+
+
+ Synthesizer sonorum renovatus in datorum basi
+
+
+ Processor novus in datorum basi
+
+
+ Processor renovatus in datorum basi
+
Nulli nuntii disponibiles
diff --git a/Marechai.App/Resources/Resources.pt-BR.resx b/Marechai.App/Resources/Resources.pt-BR.resx
index 8d7f671d..4917fde4 100644
--- a/Marechai.App/Resources/Resources.pt-BR.resx
+++ b/Marechai.App/Resources/Resources.pt-BR.resx
@@ -510,6 +510,66 @@
Console atualizado na coleção
+
+ Novo livro no banco de dados
+
+
+ Livro atualizado no banco de dados
+
+
+ Novo documento no banco de dados
+
+
+ Documento atualizado no banco de dados
+
+
+ Nova revista no banco de dados
+
+
+ Revista atualizada no banco de dados
+
+
+ Nova pessoa no banco de dados
+
+
+ Pessoa atualizada no banco de dados
+
+
+ Novo software no banco de dados
+
+
+ Software atualizado no banco de dados
+
+
+ Nova versão de software no banco de dados
+
+
+ Versão de software atualizada no banco de dados
+
+
+ Novo lançamento de software no banco de dados
+
+
+ Lançamento de software atualizado no banco de dados
+
+
+ Nova GPU no banco de dados
+
+
+ GPU atualizada no banco de dados
+
+
+ Novo sintetizador de som no banco de dados
+
+
+ Sintetizador de som atualizado no banco de dados
+
+
+ Novo processador no banco de dados
+
+
+ Processador atualizado no banco de dados
+
Nenhuma notícia disponível
diff --git a/Marechai.App/Resources/Resources.resx b/Marechai.App/Resources/Resources.resx
index 6f2b58df..e27c770f 100644
--- a/Marechai.App/Resources/Resources.resx
+++ b/Marechai.App/Resources/Resources.resx
@@ -510,6 +510,66 @@
Updated console in collection
+
+ New book in database
+
+
+ Updated book in database
+
+
+ New document in database
+
+
+ Updated document in database
+
+
+ New magazine in database
+
+
+ Updated magazine in database
+
+
+ New person in database
+
+
+ Updated person in database
+
+
+ New software in database
+
+
+ Updated software in database
+
+
+ New software version in database
+
+
+ Updated software version in database
+
+
+ New software release in database
+
+
+ Updated software release in database
+
+
+ New GPU in database
+
+
+ Updated GPU in database
+
+
+ New sound synthesizer in database
+
+
+ Updated sound synthesizer in database
+
+
+ New processor in database
+
+
+ Updated processor in database
+
No news available
diff --git a/Marechai.Data/Dtos/NewsDto.cs b/Marechai.Data/Dtos/NewsDto.cs
index 59e02de6..40cf4cdf 100644
--- a/Marechai.Data/Dtos/NewsDto.cs
+++ b/Marechai.Data/Dtos/NewsDto.cs
@@ -31,7 +31,8 @@ public sealed class NewsDto : BaseDto
{
public NewsDto() {}
- public NewsDto(int affectedId, string text, DateTime timestamp, string controller, string itemName, NewsType type)
+ public NewsDto(long affectedId, string text, DateTime timestamp, string controller, string itemName,
+ NewsType type, string? name = null)
{
AffectedId = affectedId;
Text = text;
@@ -39,12 +40,13 @@ public sealed class NewsDto : BaseDto
Controller = controller;
ItemName = itemName;
Type = type;
+ Name = name;
}
[JsonPropertyName("type")]
public NewsType Type { get; set; }
[JsonPropertyName("affected_id")]
- public int AffectedId { get; set; }
+ public long AffectedId { get; set; }
[JsonPropertyName("controller")]
public string Controller { get; set; }
[JsonPropertyName("item_name")]
@@ -53,4 +55,6 @@ public sealed class NewsDto : BaseDto
public string Text { get; set; }
[JsonPropertyName("timestamp")]
public DateTime Timestamp { get; set; }
+ [JsonPropertyName("name")]
+ public string? Name { get; set; }
}
\ No newline at end of file
diff --git a/Marechai.Data/Enums.cs b/Marechai.Data/Enums.cs
index 1b003bc2..c271bc5c 100644
--- a/Marechai.Data/Enums.cs
+++ b/Marechai.Data/Enums.cs
@@ -40,7 +40,27 @@ public enum NewsType
UpdatedConsoleInDb = 6,
UpdatedComputerInCollection = 7,
UpdatedConsoleInCollection = 8,
- NewMoneyDonation = 9
+ NewMoneyDonation = 9,
+ NewBookInDb = 10,
+ UpdatedBookInDb = 11,
+ NewDocumentInDb = 12,
+ UpdatedDocumentInDb = 13,
+ NewMagazineInDb = 14,
+ UpdatedMagazineInDb = 15,
+ NewPersonInDb = 16,
+ UpdatedPersonInDb = 17,
+ NewSoftwareInDb = 18,
+ UpdatedSoftwareInDb = 19,
+ NewSoftwareVersionInDb = 20,
+ UpdatedSoftwareVersionInDb = 21,
+ NewSoftwareReleaseInDb = 22,
+ UpdatedSoftwareReleaseInDb = 23,
+ NewGpuInDb = 24,
+ UpdatedGpuInDb = 25,
+ NewSoundSynthInDb = 26,
+ UpdatedSoundSynthInDb = 27,
+ NewProcessorInDb = 28,
+ UpdatedProcessorInDb = 29
}
public enum StatusType
diff --git a/Marechai.Database/Migrations/20260425085108_AddNewsNameAndLongAddedId.Designer.cs b/Marechai.Database/Migrations/20260425085108_AddNewsNameAndLongAddedId.Designer.cs
new file mode 100644
index 00000000..53c49240
--- /dev/null
+++ b/Marechai.Database/Migrations/20260425085108_AddNewsNameAndLongAddedId.Designer.cs
@@ -0,0 +1,8501 @@
+//
+using System;
+using Marechai.Database.Models;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace Marechai.Database.Migrations
+{
+ [DbContext(typeof(MarechaiContext))]
+ [Migration("20260425085108_AddNewsNameAndLongAddedId")]
+ partial class AddNewsNameAndLongAddedId
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "9.0.11")
+ .HasAnnotation("Proxies:ChangeTracking", false)
+ .HasAnnotation("Proxies:CheckEquality", false)
+ .HasAnnotation("Proxies:LazyLoading", true)
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
+
+ modelBuilder.Entity("Marechai.Database.Models.ApplicationRole", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("varchar(255)");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("longtext");
+
+ b.Property("Created")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Description")
+ .HasColumnType("longtext");
+
+ b.Property("Name")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("NormalizedName")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedName")
+ .IsUnique()
+ .HasDatabaseName("RoleNameIndex");
+
+ b.ToTable("AspNetRoles", (string)null);
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.ApplicationUser", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("varchar(255)");
+
+ b.Property("AccessFailedCount")
+ .HasColumnType("int");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("longtext");
+
+ b.Property("Email")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("EmailConfirmed")
+ .HasColumnType("bit(1)");
+
+ b.Property("LockoutEnabled")
+ .HasColumnType("bit(1)");
+
+ b.Property("LockoutEnd")
+ .HasColumnType("datetime(6)");
+
+ b.Property("NormalizedEmail")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("NormalizedUserName")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.Property("PasswordHash")
+ .HasColumnType("longtext");
+
+ b.Property("PhoneNumber")
+ .HasColumnType("longtext");
+
+ b.Property("PhoneNumberConfirmed")
+ .HasColumnType("bit(1)");
+
+ b.Property("SecurityStamp")
+ .HasColumnType("longtext");
+
+ b.Property("TwoFactorEnabled")
+ .HasColumnType("bit(1)");
+
+ b.Property("UserName")
+ .HasMaxLength(256)
+ .HasColumnType("varchar(256)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedEmail")
+ .HasDatabaseName("EmailIndex");
+
+ b.HasIndex("NormalizedUserName")
+ .IsUnique()
+ .HasDatabaseName("UserNameIndex");
+
+ b.ToTable("AspNetUsers", (string)null);
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.Audit", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("AffectedColumns")
+ .HasColumnType("json");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("Keys")
+ .HasColumnType("json");
+
+ b.Property("NewValues")
+ .HasColumnType("json");
+
+ b.Property("OldValues")
+ .HasColumnType("json");
+
+ b.Property("Table")
+ .HasColumnType("varchar(255)");
+
+ b.Property("Type")
+ .HasColumnType("tinyint unsigned");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.Property("UserId")
+ .IsRequired()
+ .HasColumnType("varchar(255)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Table");
+
+ b.HasIndex("Type");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("Audit");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.Book", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CountryId")
+ .HasColumnType("smallint(3)");
+
+ b.Property("CoverGuid")
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("Edition")
+ .HasColumnType("int");
+
+ b.Property("Isbn")
+ .HasMaxLength(13)
+ .HasColumnType("varchar(13)");
+
+ b.Property("NativeTitle")
+ .HasColumnType("varchar(255)");
+
+ b.Property("OriginalCoverExtension")
+ .HasColumnType("longtext");
+
+ b.Property("Pages")
+ .HasColumnType("smallint");
+
+ b.Property("PreviousId")
+ .HasColumnType("bigint");
+
+ b.Property("Published")
+ .HasColumnType("datetime(6)");
+
+ b.Property("SortTitle")
+ .HasColumnType("longtext");
+
+ b.Property("SourceId")
+ .HasColumnType("bigint");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("varchar(255)");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("CountryId");
+
+ b.HasIndex("Edition");
+
+ b.HasIndex("Isbn");
+
+ b.HasIndex("NativeTitle");
+
+ b.HasIndex("Pages");
+
+ b.HasIndex("PreviousId")
+ .IsUnique();
+
+ b.HasIndex("Published");
+
+ b.HasIndex("SourceId");
+
+ b.HasIndex("Title");
+
+ b.ToTable("Books");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.BookScan", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("Author")
+ .HasColumnType("varchar(255)");
+
+ b.Property("BookId")
+ .HasColumnType("bigint");
+
+ b.Property("ColorSpace")
+ .HasColumnType("smallint unsigned");
+
+ b.Property("Comments")
+ .HasColumnType("varchar(255)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ExifVersion")
+ .HasColumnType("varchar(255)");
+
+ b.Property("HorizontalResolution")
+ .HasColumnType("double");
+
+ b.Property("OriginalExtension")
+ .HasColumnType("longtext");
+
+ b.Property("Page")
+ .HasColumnType("int unsigned");
+
+ b.Property("ResolutionUnit")
+ .HasColumnType("smallint unsigned");
+
+ b.Property("ScannerManufacturer")
+ .HasColumnType("varchar(255)");
+
+ b.Property("ScannerModel")
+ .HasColumnType("varchar(255)");
+
+ b.Property("SoftwareUsed")
+ .HasColumnType("varchar(255)");
+
+ b.Property("Type")
+ .HasColumnType("int unsigned");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.Property("UploadDate")
+ .IsConcurrencyToken()
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ b.Property("UserId")
+ .HasColumnType("varchar(255)");
+
+ b.Property("VerticalResolution")
+ .HasColumnType("double");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Author");
+
+ b.HasIndex("BookId");
+
+ b.HasIndex("ColorSpace");
+
+ b.HasIndex("Comments");
+
+ b.HasIndex("CreationDate");
+
+ b.HasIndex("ExifVersion");
+
+ b.HasIndex("HorizontalResolution");
+
+ b.HasIndex("Page");
+
+ b.HasIndex("ResolutionUnit");
+
+ b.HasIndex("ScannerManufacturer");
+
+ b.HasIndex("ScannerModel");
+
+ b.HasIndex("SoftwareUsed");
+
+ b.HasIndex("Type");
+
+ b.HasIndex("UploadDate");
+
+ b.HasIndex("UserId");
+
+ b.HasIndex("VerticalResolution");
+
+ b.ToTable("BookScans");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.BookSynopsis", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("BookId")
+ .HasColumnType("bigint");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("LanguageCode")
+ .IsRequired()
+ .HasMaxLength(3)
+ .HasColumnType("char(3)");
+
+ b.Property("Text")
+ .IsRequired()
+ .HasMaxLength(262144)
+ .HasColumnType("longtext");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("LanguageCode");
+
+ b.HasIndex("Text")
+ .HasAnnotation("MySql:FullTextIndex", true);
+
+ b.HasIndex("BookId", "LanguageCode")
+ .IsUnique()
+ .HasDatabaseName("idx_book_synopses_book_language");
+
+ b.ToTable("BookSynopses");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.BooksByMachine", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("BookId")
+ .HasColumnType("bigint");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("MachineId")
+ .HasColumnType("int(11)");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("BookId");
+
+ b.HasIndex("MachineId");
+
+ b.ToTable("BooksByMachines");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.BooksByMachineFamily", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("BookId")
+ .HasColumnType("bigint");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("MachineFamilyId")
+ .HasColumnType("int(11)");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("BookId");
+
+ b.HasIndex("MachineFamilyId");
+
+ b.ToTable("BooksByMachineFamilies");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.BrowserTest", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int(11)")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Agif")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("agif");
+
+ b.Property("Browser")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(64)
+ .HasColumnType("varchar(64)")
+ .HasColumnName("browser")
+ .HasDefaultValueSql("''");
+
+ b.Property("Colors")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("colors");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("Flash")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("flash");
+
+ b.Property("Frames")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("frames");
+
+ b.Property("Gif87")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("gif87");
+
+ b.Property("Gif89")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("gif89");
+
+ b.Property("Jpeg")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("jpeg");
+
+ b.Property("Js")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("js");
+
+ b.Property("Os")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(32)
+ .HasColumnType("varchar(32)")
+ .HasColumnName("os")
+ .HasDefaultValueSql("''");
+
+ b.Property("Platform")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(8)
+ .HasColumnType("varchar(8)")
+ .HasColumnName("platform")
+ .HasDefaultValueSql("''");
+
+ b.Property("Png")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("png");
+
+ b.Property("Pngt")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("pngt");
+
+ b.Property("Table")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint(1)")
+ .HasDefaultValue((sbyte)0)
+ .HasColumnName("table");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.Property("UserAgent")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)")
+ .HasColumnName("user_agent")
+ .HasDefaultValueSql("''");
+
+ b.Property("Version")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(16)
+ .HasColumnType("varchar(16)")
+ .HasColumnName("version")
+ .HasDefaultValueSql("''");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Browser")
+ .HasDatabaseName("idx_browser_tests_browser");
+
+ b.HasIndex("Os")
+ .HasDatabaseName("idx_browser_tests_os");
+
+ b.HasIndex("Platform")
+ .HasDatabaseName("idx_browser_tests_platform");
+
+ b.HasIndex("UserAgent")
+ .HasDatabaseName("idx_browser_tests_user_agent");
+
+ b.HasIndex("Version")
+ .HasDatabaseName("idx_browser_tests_version");
+
+ b.ToTable("browser_tests", (string)null);
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CompaniesByBook", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("BookId")
+ .HasColumnType("bigint");
+
+ b.Property("CompanyId")
+ .HasColumnType("int(11)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("RoleId")
+ .IsRequired()
+ .HasColumnType("char(3)");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("BookId");
+
+ b.HasIndex("CompanyId");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("CompaniesByBooks");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CompaniesByDocument", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CompanyId")
+ .HasColumnType("int(11)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("DocumentId")
+ .HasColumnType("bigint");
+
+ b.Property("RoleId")
+ .IsRequired()
+ .HasColumnType("char(3)");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("CompanyId");
+
+ b.HasIndex("DocumentId");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("CompaniesByDocuments");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CompaniesByMagazine", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CompanyId")
+ .HasColumnType("int(11)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("MagazineId")
+ .HasColumnType("bigint");
+
+ b.Property("RoleId")
+ .IsRequired()
+ .HasColumnType("char(3)");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("CompanyId");
+
+ b.HasIndex("MagazineId");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("CompaniesByMagazines");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.Company", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int(11)")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("Address")
+ .HasMaxLength(80)
+ .HasColumnType("varchar(80)")
+ .HasColumnName("address");
+
+ b.Property("City")
+ .HasMaxLength(80)
+ .HasColumnType("varchar(80)")
+ .HasColumnName("city");
+
+ b.Property("CountryId")
+ .HasColumnType("smallint(3)")
+ .HasColumnName("country");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("Facebook")
+ .HasMaxLength(45)
+ .HasColumnType("varchar(45)")
+ .HasColumnName("facebook");
+
+ b.Property("Founded")
+ .HasColumnType("datetime")
+ .HasColumnName("founded");
+
+ b.Property("FoundedDayIsUnknown")
+ .HasColumnType("bit(1)");
+
+ b.Property("FoundedMonthIsUnknown")
+ .HasColumnType("bit(1)");
+
+ b.Property("LegalName")
+ .HasColumnType("longtext");
+
+ b.Property("Name")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasColumnType("varchar(128)")
+ .HasColumnName("name")
+ .HasDefaultValueSql("''");
+
+ b.Property("PostalCode")
+ .HasMaxLength(25)
+ .HasColumnType("varchar(25)")
+ .HasColumnName("postal_code");
+
+ b.Property("Province")
+ .HasMaxLength(80)
+ .HasColumnType("varchar(80)")
+ .HasColumnName("province");
+
+ b.Property("Sold")
+ .HasColumnType("datetime")
+ .HasColumnName("sold");
+
+ b.Property("SoldDayIsUnknown")
+ .HasColumnType("bit(1)");
+
+ b.Property("SoldMonthIsUnknown")
+ .HasColumnType("bit(1)");
+
+ b.Property("SoldToId")
+ .HasColumnType("int(11)")
+ .HasColumnName("sold_to");
+
+ b.Property("Status")
+ .HasColumnType("int(11)")
+ .HasColumnName("status");
+
+ b.Property("Twitter")
+ .HasMaxLength(45)
+ .HasColumnType("varchar(45)")
+ .HasColumnName("twitter");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.Property("Website")
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)")
+ .HasColumnName("website");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Address")
+ .HasDatabaseName("idx_companies_address");
+
+ b.HasIndex("City")
+ .HasDatabaseName("idx_companies_city");
+
+ b.HasIndex("CountryId")
+ .HasDatabaseName("idx_companies_country");
+
+ b.HasIndex("Facebook")
+ .HasDatabaseName("idx_companies_facebook");
+
+ b.HasIndex("Founded")
+ .HasDatabaseName("idx_companies_founded");
+
+ b.HasIndex("Name")
+ .HasDatabaseName("idx_companies_name");
+
+ b.HasIndex("PostalCode")
+ .HasDatabaseName("idx_companies_postal_code");
+
+ b.HasIndex("Province")
+ .HasDatabaseName("idx_companies_province");
+
+ b.HasIndex("Sold")
+ .HasDatabaseName("idx_companies_sold");
+
+ b.HasIndex("SoldToId")
+ .HasDatabaseName("idx_companies_sold_to");
+
+ b.HasIndex("Status")
+ .HasDatabaseName("idx_companies_status");
+
+ b.HasIndex("Twitter")
+ .HasDatabaseName("idx_companies_twitter");
+
+ b.HasIndex("Website")
+ .HasDatabaseName("idx_companies_website");
+
+ b.ToTable("companies", (string)null);
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CompanyBySoftwareFamily", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint unsigned");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CompanyId")
+ .HasColumnType("int(11)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("RoleId")
+ .IsRequired()
+ .HasColumnType("char(3)");
+
+ b.Property("SoftwareFamilyId")
+ .HasColumnType("bigint unsigned");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("CompanyId");
+
+ b.HasIndex("RoleId");
+
+ b.HasIndex("SoftwareFamilyId");
+
+ b.ToTable("CompaniesBySoftwareFamilies");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CompanyBySoftwareVariant", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint unsigned");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CompanyId")
+ .HasColumnType("int(11)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("RoleId")
+ .IsRequired()
+ .HasColumnType("char(3)");
+
+ b.Property("SoftwareVariantId")
+ .HasColumnType("bigint unsigned");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("CompanyId");
+
+ b.HasIndex("RoleId");
+
+ b.HasIndex("SoftwareVariantId");
+
+ b.ToTable("CompaniesBySoftwareVariants");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CompanyBySoftwareVersion", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint unsigned");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CompanyId")
+ .HasColumnType("int(11)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("RoleId")
+ .IsRequired()
+ .HasColumnType("char(3)");
+
+ b.Property("SoftwareVersionId")
+ .HasColumnType("bigint unsigned");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("CompanyId");
+
+ b.HasIndex("RoleId");
+
+ b.HasIndex("SoftwareVersionId");
+
+ b.ToTable("CompaniesBySoftwareVersions");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CompanyDescription", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CompanyId")
+ .HasColumnType("int(11)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("Html")
+ .HasMaxLength(262144)
+ .HasColumnType("longtext");
+
+ b.Property("LanguageCode")
+ .IsRequired()
+ .HasMaxLength(3)
+ .HasColumnType("char(3)");
+
+ b.Property("Text")
+ .IsRequired()
+ .HasMaxLength(262144)
+ .HasColumnType("longtext");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("LanguageCode");
+
+ b.HasIndex("Text")
+ .HasAnnotation("MySql:FullTextIndex", true);
+
+ b.HasIndex("CompanyId", "LanguageCode")
+ .IsUnique()
+ .HasDatabaseName("idx_company_descriptions_company_language");
+
+ b.ToTable("CompanyDescriptions");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CompanyLogo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int(11)")
+ .HasColumnName("id");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CompanyId")
+ .HasColumnType("int(11)")
+ .HasColumnName("company_id");
+
+ b.Property("Guid")
+ .HasColumnType("char(36)")
+ .HasColumnName("logo_guid");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.Property("Year")
+ .HasColumnType("int(4)")
+ .HasColumnName("year");
+
+ b.HasKey("Id", "CompanyId", "Guid");
+
+ b.HasIndex("CompanyId")
+ .HasDatabaseName("idx_company_id");
+
+ b.HasIndex("Guid")
+ .HasDatabaseName("idx_guid");
+
+ b.HasIndex("Id")
+ .IsUnique()
+ .HasDatabaseName("idx_id");
+
+ b.ToTable("company_logos", (string)null);
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CurrencyInflation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("CurrencyCode")
+ .IsRequired()
+ .HasColumnType("varchar(3)");
+
+ b.Property("Inflation")
+ .HasColumnType("float");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.Property("Year")
+ .HasColumnType("int unsigned");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CurrencyCode");
+
+ b.HasIndex("Year");
+
+ b.ToTable("CurrenciesInflation");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.CurrencyPegging", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("DestinationCode")
+ .IsRequired()
+ .HasColumnType("varchar(3)");
+
+ b.Property("End")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Ratio")
+ .HasColumnType("float");
+
+ b.Property("SourceCode")
+ .IsRequired()
+ .HasColumnType("varchar(3)");
+
+ b.Property("Start")
+ .HasColumnType("datetime(6)");
+
+ b.Property("UpdatedOn")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedOn"));
+
+ b.HasKey("Id");
+
+ b.HasIndex("DestinationCode");
+
+ b.HasIndex("End");
+
+ b.HasIndex("SourceCode");
+
+ b.HasIndex("Start");
+
+ b.ToTable("CurrenciesPegging");
+ });
+
+ modelBuilder.Entity("Marechai.Database.Models.DbFile", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint unsigned");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id"));
+
+ b.Property("AccoustId")
+ .HasColumnType("varchar(255)");
+
+ b.Property("CreatedOn")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("datetime(6)");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedOn"));
+
+ b.Property("Hack")
+ .HasColumnType("bit(1)");
+
+ b.Property("HackGroup")
+ .HasColumnType("varchar(255)");
+
+ b.Property("Infected")
+ .HasColumnType("bit(1)");
+
+ b.Property("Magic")
+ .HasColumnType("varchar(255)");
+
+ b.Property