Files
marechai/Marechai.Database/Migrations/20260625203648_RemoveIgdbExternalGames.Designer.cs
Natalia Portillo 3080d20cbf feat: Add IGDB mapping pipeline (Marechai.Igdb)
Adds a new console project that maps IGDB's catalog (platforms, game
types, companies, games, involved companies) to existing local
Company/Software/SoftwarePlatform records, without any enrichment or
record creation. This establishes the cross-reference table a future
IGDB enrichment phase will consume, the same way Marechai.MobyGames
already does for MobyGames.

Database (Marechai.Database):
- New mirror+mapping tables: IgdbPlatform, IgdbGameType, IgdbCompany,
  IgdbGame, IgdbInvolvedCompany. Each stores only the IGDB id, name,
  and the few relationship fields needed for matching/disambiguation
  (no descriptive fields) plus a nullable FK to the local entity and
  an IgdbMatchStatus (Pending/Matched/NoMatch/NeedsReview/Skipped/
  Error). No columns were added to Company/Software/SoftwarePlatform,
  consistent with the existing per-source mapping convention used by
  MobyGamesImportState/WwpcSoftware/OldDosSoftware.
- IgdbGame.GameTypeId is a nullable FK into the new IgdbGameType
  lookup table rather than a baked-in enum: IGDB's game_type is
  itself a dynamic lookup entity (game.category is deprecated in
  favor of it).
- An initial design mirrored IGDB's external_games/external_game_
  sources to bridge straight into the existing MobyGames->Software
  mapping. Verified directly against the live API that IGDB does not
  track MobyGames as an external source at all, so that table/service
  and the matcher's bridge step were removed again (see the two
  paired migrations).
- Migrations: AddIgdbMirrorAndMappingTables, RemoveIgdbExternalGames.

Shared helpers promoted to Marechai.Data/Helpers (pure, no EF Core
dependency, usable from a console exe without pulling in the Blazor
Marechai project or duplicating logic):
- Marechai/Helpers/JaroWinkler.cs -> Marechai.Data/Helpers/JaroWinkler.cs
- Marechai.MobyGames/Services/SoundexHelper.cs -> Marechai.Data/Helpers/SoundexHelper.cs
All consumers (Marechai's Razor pages, Marechai.MobyGames's matchers)
updated to the new namespace.

Marechai.Igdb console project:
- IgdbAuthService: Twitch OAuth2 client-credentials flow with a
  cached, auto-refreshed access token.
- IgdbHttpClient: Apicalypse requests rate-limited to the configured
  requests/second with bounded concurrency and retry-with-backoff on
  HTTP 429.
- ApicalypseQueryBuilder: small fluent query builder.
- Mirror services (platforms, game types, companies, games, involved
  companies): each run mirrors exactly one batch of up to
  --batch-size rows (clamped to IGDB's 500-row page limit) and stops,
  matching the one-batch-per-invocation convention already used by
  Marechai.MobyGames's import command. Pass --batch-size 0 to instead
  loop until the whole remaining catalog is mirrored in one
  invocation. Resumption is fully automatic: each run re-derives its
  own cursor from the database (MAX(IgdbId) already mirrored, or
  row count for the small offset-paginated lookups) - no manual
  bookkeeping - and the --batch-size 0 loop tracks its cursor in
  memory so --dry-run never gets stuck reading the same unchanged
  page forever.
- PlatformMatcher: exact -> normalized -> substring -> Jaro-Winkler
  matching against SoftwarePlatform. Local platform names follow
  MobyGames-style short/compound conventions ("Jaguar", "DOS, Windows
  and Windows 3.x") while IGDB uses one full canonical name per
  platform, so each local platform is expanded into name variants
  (the compound parts) before matching, plus a whole-word substring
  pass to bridge short-vs-full names ("Jaguar" <-> "Atari Jaguar").
- CompanyMatcher: exact name -> exact legal name -> suffix-stripped
  exact (ported from Marechai.MobyGames's CompanyMatcher) -> Soundex
  bucket confirmed by Jaro-Winkler -> full Jaro-Winkler sweep. Unlike
  the MobyGames matcher, ambiguity never prompts or auto-creates: it
  is recorded as NeedsReview (with candidates) or NoMatch, since this
  pass only establishes mapping and is meant to run unattended across
  the full catalog. Soundex-bucket candidates are filtered to a 0.90
  Jaro-Winkler floor before being considered at all - an early version
  without this floor surfaced 29,906 NeedsReview rows out of 71,210
  mirrored companies because a shared 4-character Soundex code alone
  is weak evidence and collides constantly between unrelated short
  names; with the floor and tightened accept thresholds the same
  catalog produces 2,602 matched / 139 needs-review / 68,469 no-match.
- GameMatcher: maps IGDB games to local Software (the umbrella title;
  per-platform SoftwareRelease mapping is left for a future enrichment
  phase). Edition/bundle/remaster/port-type games inherit their
  parent's SoftwareId directly instead of being matched or created
  independently, reflecting that Marechai models these as
  SoftwareRelease rows under one Software while IGDB models them as
  separate game rows linked via parent_game/version_parent. Exact name
  matches are disambiguated by platform overlap; fuzzy matches require
  platform corroboration when the candidate already has releases.
  Verified on a 1,000-game sample that this correctly avoids merging
  sequels into their base title (Quake/Quake II, DOOM II/Doom 3,
  Metal Gear/Metal Gear Solid V, etc. all left as NeedsReview rather
  than falsely matched).
- MatchStatsService / AmbiguousReviewService: stats command and an
  optional, non-blocking interactive triage command for NeedsReview
  rows.
- CLI: mirror-platforms, mirror-game-types, mirror-companies,
  mirror-games, mirror-involved-companies, match-platforms,
  match-companies, match-games, stats, review-ambiguous, reset.
  All mirror/match commands support --dry-run.

.gitignore: added Marechai.Igdb/state/ (OAuth token cache), mirroring
the existing Marechai.MobyGames/state/ entry.
2026-06-25 21:50:09 +01:00

12816 lines
467 KiB
C#

// <auto-generated />
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("20260625203648_RemoveIgdbExternalGames")]
partial class RemoveIgdbExternalGames
{
/// <inheritdoc />
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<string>("Id")
.HasColumnType("varchar(255)");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasColumnType("longtext");
b.Property<DateTime>("Created")
.HasColumnType("datetime(6)");
b.Property<string>("Description")
.HasColumnType("longtext");
b.Property<string>("Name")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<string>("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<string>("Id")
.HasColumnType("varchar(255)");
b.Property<int>("AccessFailedCount")
.HasColumnType("int");
b.Property<Guid?>("AvatarGuid")
.HasColumnType("char(36)");
b.Property<string>("Bio")
.HasMaxLength(2000)
.HasColumnType("varchar(2000)");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasColumnType("longtext");
b.Property<DateTime?>("DeletionRequestedAt")
.HasColumnType("datetime(6)");
b.Property<string>("DisplayName")
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property<string>("Email")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<bool>("EmailConfirmed")
.HasColumnType("bit(1)");
b.Property<string>("Facebook")
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.Property<string>("GitHub")
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property<bool>("IsSystemAccount")
.HasColumnType("bit(1)");
b.Property<string>("LastLanguageVisited")
.HasMaxLength(10)
.HasColumnType("varchar(10)");
b.Property<string>("LinkedIn")
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.Property<string>("Location")
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.Property<bool>("LockoutEnabled")
.HasColumnType("bit(1)");
b.Property<DateTimeOffset?>("LockoutEnd")
.HasColumnType("datetime(6)");
b.Property<string>("Mastodon")
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.Property<string>("NormalizedEmail")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<string>("NormalizedUserName")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<bool>("NotifyOnNewMessage")
.HasColumnType("bit(1)");
b.Property<string>("OriginalAvatarExtension")
.HasMaxLength(10)
.HasColumnType("varchar(10)");
b.Property<string>("PasswordHash")
.HasColumnType("longtext");
b.Property<string>("PhoneNumber")
.HasColumnType("longtext");
b.Property<bool>("PhoneNumberConfirmed")
.HasColumnType("bit(1)");
b.Property<string>("PreferredThemeId")
.HasMaxLength(50)
.HasColumnType("varchar(50)");
b.Property<string>("SecurityStamp")
.HasColumnType("longtext");
b.Property<string>("Twitter")
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property<bool>("TwoFactorEnabled")
.HasColumnType("bit(1)");
b.Property<bool>("TwoFactorViaAuthenticator")
.HasColumnType("bit(1)");
b.Property<bool>("TwoFactorViaEmail")
.HasColumnType("bit(1)");
b.Property<bool>("UseGravatar")
.HasColumnType("bit(1)");
b.Property<string>("UserName")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<string>("Website")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
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<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("AffectedColumns")
.HasColumnType("json");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Keys")
.HasColumnType("json");
b.Property<string>("NewValues")
.HasColumnType("json");
b.Property<string>("OldValues")
.HasColumnType("json");
b.Property<string>("Table")
.HasColumnType("varchar(255)");
b.Property<byte>("Type")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("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<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<short?>("CountryId")
.HasColumnType("smallint(3)");
b.Property<Guid?>("CoverGuid")
.HasColumnType("char(36)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int?>("Edition")
.HasColumnType("int");
b.Property<string>("InternetArchiveUrl")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<string>("Isbn")
.HasMaxLength(13)
.HasColumnType("varchar(13)");
b.Property<string>("NativeTitle")
.HasColumnType("varchar(255)");
b.Property<string>("OriginalCoverExtension")
.HasColumnType("longtext");
b.Property<short?>("Pages")
.HasColumnType("smallint");
b.Property<long?>("PreviousId")
.HasColumnType("bigint");
b.Property<DateTime?>("Published")
.HasColumnType("datetime(6)");
b.Property<byte>("PublishedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("SortTitle")
.HasColumnType("longtext");
b.Property<long?>("SourceId")
.HasColumnType("bigint");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("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.BookSynopsis", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("BookId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("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<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("BookId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineId")
.HasColumnType("int(11)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("BookId");
b.HasIndex("MachineId");
b.ToTable("BooksByMachines");
});
modelBuilder.Entity("Marechai.Database.Models.BooksByMachineFamily", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("BookId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineFamilyId")
.HasColumnType("int(11)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("BookId");
b.HasIndex("MachineFamilyId");
b.ToTable("BooksByMachineFamilies");
});
modelBuilder.Entity("Marechai.Database.Models.BrowserTest", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<sbyte>("Agif")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("agif");
b.Property<string>("Browser")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
.HasColumnName("browser")
.HasDefaultValueSql("''");
b.Property<sbyte>("Colors")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("colors");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<sbyte>("Flash")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("flash");
b.Property<sbyte>("Frames")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("frames");
b.Property<sbyte>("Gif87")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("gif87");
b.Property<sbyte>("Gif89")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("gif89");
b.Property<sbyte>("Jpeg")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("jpeg");
b.Property<sbyte>("Js")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("js");
b.Property<string>("Os")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(32)
.HasColumnType("varchar(32)")
.HasColumnName("os")
.HasDefaultValueSql("''");
b.Property<string>("Platform")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(8)
.HasColumnType("varchar(8)")
.HasColumnName("platform")
.HasDefaultValueSql("''");
b.Property<sbyte>("Png")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("png");
b.Property<sbyte>("Pngt")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("pngt");
b.Property<sbyte>("Table")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("table");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("UserAgent")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(128)
.HasColumnType("varchar(128)")
.HasColumnName("user_agent")
.HasDefaultValueSql("''");
b.Property<string>("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.CollectedBook", b =>
{
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<long>("BookId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.HasKey("UserId", "BookId");
b.HasIndex("BookId");
b.ToTable("CollectedBooks");
});
modelBuilder.Entity("Marechai.Database.Models.CollectedDocument", b =>
{
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<long>("DocumentId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.HasKey("UserId", "DocumentId");
b.HasIndex("DocumentId");
b.ToTable("CollectedDocuments");
});
modelBuilder.Entity("Marechai.Database.Models.CollectedMagazineIssue", b =>
{
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<long>("MagazineIssueId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.HasKey("UserId", "MagazineIssueId");
b.HasIndex("MagazineIssueId");
b.ToTable("CollectedMagazineIssues");
});
modelBuilder.Entity("Marechai.Database.Models.CollectedSoftwareRelease", b =>
{
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<ulong>("SoftwareReleaseId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.HasKey("UserId", "SoftwareReleaseId");
b.HasIndex("SoftwareReleaseId");
b.ToTable("CollectedSoftwareReleases");
});
modelBuilder.Entity("Marechai.Database.Models.CompaniesByBook", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("BookId")
.HasColumnType("bigint");
b.Property<int>("CompanyId")
.HasColumnType("int(11)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("RoleId")
.IsRequired()
.HasColumnType("char(3)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("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<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CompanyId")
.HasColumnType("int(11)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("DocumentId")
.HasColumnType("bigint");
b.Property<string>("RoleId")
.IsRequired()
.HasColumnType("char(3)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("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<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CompanyId")
.HasColumnType("int(11)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("MagazineId")
.HasColumnType("bigint");
b.Property<string>("RoleId")
.IsRequired()
.HasColumnType("char(3)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("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<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Address")
.HasMaxLength(80)
.HasColumnType("varchar(80)")
.HasColumnName("address");
b.Property<string>("City")
.HasMaxLength(80)
.HasColumnType("varchar(80)")
.HasColumnName("city");
b.Property<short?>("CountryId")
.HasColumnType("smallint(3)")
.HasColumnName("country");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Facebook")
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("facebook");
b.Property<DateTime?>("Founded")
.HasColumnType("datetime")
.HasColumnName("founded");
b.Property<byte>("FoundedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("LegalName")
.HasColumnType("longtext");
b.Property<string>("Name")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("varchar(128)")
.HasColumnName("name")
.HasDefaultValueSql("''");
b.Property<string>("PostalCode")
.HasMaxLength(25)
.HasColumnType("varchar(25)")
.HasColumnName("postal_code");
b.Property<string>("Province")
.HasMaxLength(80)
.HasColumnType("varchar(80)")
.HasColumnName("province");
b.Property<DateTime?>("Sold")
.HasColumnType("datetime")
.HasColumnName("sold");
b.Property<byte>("SoldPrecision")
.HasColumnType("tinyint unsigned");
b.Property<int?>("SoldToId")
.HasColumnType("int(11)")
.HasColumnName("sold_to");
b.Property<int>("Status")
.HasColumnType("int(11)")
.HasColumnName("status");
b.Property<string>("Twitter")
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("twitter");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("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<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<int>("CompanyId")
.HasColumnType("int(11)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("RoleId")
.IsRequired()
.HasColumnType("char(3)");
b.Property<ulong>("SoftwareFamilyId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CompanyId");
b.HasIndex("RoleId");
b.HasIndex("SoftwareFamilyId");
b.ToTable("CompaniesBySoftwareFamilies");
});
modelBuilder.Entity("Marechai.Database.Models.CompanyBySoftwareVersion", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<int>("CompanyId")
.HasColumnType("int(11)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("RoleId")
.IsRequired()
.HasColumnType("char(3)");
b.Property<ulong>("SoftwareVersionId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("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<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<int>("CompanyId")
.HasColumnType("int(11)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Html")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("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<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<int>("CompanyId")
.HasColumnType("int(11)")
.HasColumnName("company_id");
b.Property<Guid>("Guid")
.HasColumnType("char(36)")
.HasColumnName("logo_guid");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<int?>("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.Conversation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<bool>("IsSystemThread")
.HasColumnType("bit(1)");
b.Property<string>("Subject")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("IsSystemThread");
b.ToTable("Conversations");
});
modelBuilder.Entity("Marechai.Database.Models.ConversationParticipant", b =>
{
b.Property<long>("ConversationId")
.HasColumnType("bigint");
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<DateTime>("JoinedOn")
.HasColumnType("datetime(6)");
b.Property<DateTime?>("LeftOn")
.HasColumnType("datetime(6)");
b.HasKey("ConversationId", "UserId");
b.HasIndex("UserId");
b.ToTable("ConversationParticipants");
});
modelBuilder.Entity("Marechai.Database.Models.CurrencyInflation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("CurrencyCode")
.IsRequired()
.HasColumnType("varchar(3)");
b.Property<float>("Inflation")
.HasColumnType("float");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<uint>("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<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("DestinationCode")
.IsRequired()
.HasColumnType("varchar(3)");
b.Property<DateTime?>("End")
.HasColumnType("datetime(6)");
b.Property<float>("Ratio")
.HasColumnType("float");
b.Property<string>("SourceCode")
.IsRequired()
.HasColumnType("varchar(3)");
b.Property<DateTime>("Start")
.HasColumnType("datetime(6)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("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<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<string>("AccoustId")
.HasColumnType("varchar(255)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<bool>("Hack")
.HasColumnType("bit(1)");
b.Property<string>("HackGroup")
.HasColumnType("varchar(255)");
b.Property<bool>("Infected")
.HasColumnType("bit(1)");
b.Property<string>("Magic")
.HasColumnType("varchar(255)");
b.Property<string>("Malware")
.HasColumnType("varchar(255)");
b.Property<byte[]>("Md5")
.HasColumnType("binary(16)");
b.Property<string>("Mime")
.HasColumnType("varchar(255)");
b.Property<byte[]>("Sha1")
.HasColumnType("binary(20)");
b.Property<byte[]>("Sha256")
.HasColumnType("binary(32)");
b.Property<byte[]>("Sha3")
.HasColumnType("binary(64)");
b.Property<ulong>("Size")
.HasColumnType("bigint unsigned");
b.Property<string>("Spamsum")
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("AccoustId");
b.HasIndex("Hack");
b.HasIndex("HackGroup");
b.HasIndex("Infected");
b.HasIndex("Magic");
b.HasIndex("Malware");
b.HasIndex("Md5");
b.HasIndex("Mime");
b.HasIndex("Sha1");
b.HasIndex("Sha256");
b.HasIndex("Sha3");
b.HasIndex("Size");
b.HasIndex("Spamsum");
b.ToTable("Files");
});
modelBuilder.Entity("Marechai.Database.Models.Document", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<short?>("CountryId")
.HasColumnType("smallint(3)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("InternetArchiveUrl")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<string>("NativeTitle")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("Published")
.HasColumnType("datetime(6)");
b.Property<byte>("PublishedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("SortTitle")
.HasColumnType("longtext");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CountryId");
b.HasIndex("NativeTitle");
b.HasIndex("Published");
b.HasIndex("Title");
b.ToTable("Documents");
});
modelBuilder.Entity("Marechai.Database.Models.DocumentRole", b =>
{
b.Property<string>("Id")
.HasColumnType("char(3)");
b.Property<bool>("Enabled")
.ValueGeneratedOnAdd()
.HasColumnType("bit(1)")
.HasDefaultValue(true);
b.Property<string>("Name")
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("Enabled");
b.HasIndex("Name");
b.ToTable("DocumentRoles");
});
modelBuilder.Entity("Marechai.Database.Models.DocumentSynopsis", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("DocumentId")
.HasColumnType("bigint");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("Text")
.HasAnnotation("MySql:FullTextIndex", true);
b.HasIndex("DocumentId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_document_synopses_document_language");
b.ToTable("DocumentSynopses");
});
modelBuilder.Entity("Marechai.Database.Models.DocumentsByMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("DocumentId")
.HasColumnType("bigint");
b.Property<int>("MachineId")
.HasColumnType("int(11)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("DocumentId");
b.HasIndex("MachineId");
b.ToTable("DocumentsByMachines");
});
modelBuilder.Entity("Marechai.Database.Models.DocumentsByMachineFamily", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("DocumentId")
.HasColumnType("bigint");
b.Property<int>("MachineFamilyId")
.HasColumnType("int(11)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("DocumentId");
b.HasIndex("MachineFamilyId");
b.ToTable("DocumentsByMachineFamily", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.Dump", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("DumpDate")
.HasColumnType("datetime(6)");
b.Property<string>("Dumper")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<string>("DumpingGroup")
.HasColumnType("varchar(255)");
b.Property<ulong>("MediaDumpId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("MediaId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("DumpDate");
b.HasIndex("Dumper");
b.HasIndex("DumpingGroup");
b.HasIndex("MediaDumpId");
b.HasIndex("MediaId");
b.HasIndex("UserId");
b.ToTable("Dumps");
});
modelBuilder.Entity("Marechai.Database.Models.DumpHardware", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("DumpId")
.HasColumnType("bigint unsigned");
b.Property<string>("Extents")
.IsRequired()
.HasColumnType("json");
b.Property<string>("Firmware")
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<string>("Manufacturer")
.HasMaxLength(48)
.HasColumnType("varchar(48)");
b.Property<string>("Model")
.IsRequired()
.HasMaxLength(48)
.HasColumnType("varchar(48)");
b.Property<string>("Revision")
.HasMaxLength(48)
.HasColumnType("varchar(48)");
b.Property<string>("Serial")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("SoftwareName")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("SoftwareOperatingSystem")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("SoftwareVersion")
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("DumpId");
b.HasIndex("Firmware");
b.HasIndex("Manufacturer");
b.HasIndex("Model");
b.HasIndex("Revision");
b.HasIndex("Serial");
b.HasIndex("SoftwareName");
b.HasIndex("SoftwareOperatingSystem");
b.HasIndex("SoftwareVersion");
b.ToTable("DumpHardwares");
});
modelBuilder.Entity("Marechai.Database.Models.FileDataStream", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("FileId")
.HasColumnType("bigint unsigned");
b.Property<string>("Name")
.HasMaxLength(255)
.HasColumnType("varchar(255)");
b.Property<ulong>("Size")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("FileId");
b.HasIndex("Name");
b.HasIndex("Size");
b.ToTable("FileDataStreams");
});
modelBuilder.Entity("Marechai.Database.Models.FileDataStreamsByMediaFile", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("FileDataStreamId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("MediaFileId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("FileDataStreamId");
b.HasIndex("MediaFileId");
b.ToTable("FileDataStreamsByMediaFile");
});
modelBuilder.Entity("Marechai.Database.Models.FileDataStreamsByStandaloneFile", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("FileDataStreamId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("StandaloneFileId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("FileDataStreamId");
b.HasIndex("StandaloneFileId");
b.ToTable("FileDataStreamsByStandaloneFile");
});
modelBuilder.Entity("Marechai.Database.Models.FilesByFilesystem", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("FileId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("FilesystemId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("FileId");
b.HasIndex("FilesystemId");
b.ToTable("FilesByFilesystem");
});
modelBuilder.Entity("Marechai.Database.Models.Filesystem", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<string>("ApplicationIdentifier")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("BackupDate")
.HasColumnType("datetime(6)");
b.Property<bool>("Bootable")
.HasColumnType("bit(1)");
b.Property<int>("ClusterSize")
.HasColumnType("int");
b.Property<ulong>("Clusters")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("CreationDate")
.HasColumnType("datetime(6)");
b.Property<string>("DataPreparerIdentifier")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("EffectiveDate")
.HasColumnType("datetime(6)");
b.Property<DateTime?>("ExpirationDate")
.HasColumnType("datetime(6)");
b.Property<ulong?>("FilesCount")
.HasColumnType("bigint unsigned");
b.Property<ulong?>("FreeClusters")
.HasColumnType("bigint unsigned");
b.Property<string>("Label")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("ModificationDate")
.HasColumnType("datetime(6)");
b.Property<string>("PublisherIdentifier")
.HasColumnType("varchar(255)");
b.Property<string>("Serial")
.HasColumnType("varchar(255)");
b.Property<string>("SystemIdentifier")
.HasColumnType("varchar(255)");
b.Property<string>("Type")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VolumeSetIdentifier")
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("ApplicationIdentifier");
b.HasIndex("BackupDate");
b.HasIndex("CreationDate");
b.HasIndex("DataPreparerIdentifier");
b.HasIndex("Label");
b.HasIndex("ModificationDate");
b.HasIndex("PublisherIdentifier");
b.HasIndex("Serial");
b.HasIndex("SystemIdentifier");
b.HasIndex("Type");
b.HasIndex("VolumeSetIdentifier");
b.ToTable("Filesystems");
});
modelBuilder.Entity("Marechai.Database.Models.FilesystemsByLogicalPartition", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("FilesystemId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("PartitionId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("FilesystemId");
b.HasIndex("PartitionId");
b.ToTable("FilesystemsByLogicalPartition");
});
modelBuilder.Entity("Marechai.Database.Models.FilesystemsByMediaDumpFile", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("FilesystemId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("MediaDumpFileImageId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("FilesystemId");
b.HasIndex("MediaDumpFileImageId");
b.ToTable("FilesystemsByMediaDumpFile");
});
modelBuilder.Entity("Marechai.Database.Models.Forbidden", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Browser")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("char(128)")
.HasColumnName("browser")
.HasDefaultValueSql("''");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Date")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("char(20)")
.HasColumnName("date")
.HasDefaultValueSql("''");
b.Property<string>("Ip")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("char(16)")
.HasColumnName("ip")
.HasDefaultValueSql("''");
b.Property<string>("Referer")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("char(255)")
.HasColumnName("referer")
.HasDefaultValueSql("''");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Browser")
.HasDatabaseName("idx_forbidden_browser");
b.HasIndex("Date")
.HasDatabaseName("idx_forbidden_date");
b.HasIndex("Ip")
.HasDatabaseName("idx_forbidden_ip");
b.HasIndex("Referer")
.HasDatabaseName("idx_forbidden_referer");
b.ToTable("forbidden", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.GenreBySoftware", b =>
{
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<int>("GenreId")
.HasColumnType("int");
b.HasKey("SoftwareId", "GenreId");
b.HasIndex("GenreId")
.HasDatabaseName("idx_genres_by_software_genre");
b.ToTable("GenresBySoftware");
});
modelBuilder.Entity("Marechai.Database.Models.Gpu", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<int?>("CompanyId")
.HasColumnType("int(11)")
.HasColumnName("company");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<float?>("DieSize")
.HasColumnType("float")
.HasColumnName("die_size");
b.Property<DateTime?>("Introduced")
.HasColumnType("datetime")
.HasColumnName("introduced");
b.Property<byte>("IntroducedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("ModelCode")
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("model_code");
b.Property<string>("Name")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(128)
.HasColumnType("char(128)")
.HasColumnName("name")
.HasDefaultValueSql("''");
b.Property<string>("Package")
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("package");
b.Property<string>("Process")
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("process");
b.Property<float?>("ProcessNm")
.HasColumnType("float")
.HasColumnName("process_nm");
b.Property<long?>("Transistors")
.HasColumnType("bigint(20)")
.HasColumnName("transistors");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CompanyId")
.HasDatabaseName("idx_gpus_company");
b.HasIndex("DieSize")
.HasDatabaseName("idx_gpus_die_size");
b.HasIndex("Introduced")
.HasDatabaseName("idx_gpus_introduced");
b.HasIndex("ModelCode")
.HasDatabaseName("idx_gpus_model_code");
b.HasIndex("Name")
.HasDatabaseName("idx_gpus_name");
b.HasIndex("Package")
.HasDatabaseName("idx_gpus_package");
b.HasIndex("Process")
.HasDatabaseName("idx_gpus_process");
b.HasIndex("ProcessNm")
.HasDatabaseName("idx_gpus_process_nm");
b.HasIndex("Transistors")
.HasDatabaseName("idx_gpus_transistors");
b.ToTable("gpus", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.GpuDescription", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("GpuId")
.HasColumnType("int(11)");
b.Property<string>("Html")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)")
.UseCollation("utf8mb4_general_ci");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("Text")
.HasAnnotation("MySql:FullTextIndex", true);
b.HasIndex("GpuId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_gpu_descriptions_gpu_language");
b.ToTable("GpuDescriptions");
});
modelBuilder.Entity("Marechai.Database.Models.GpuPhoto", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<double?>("Aperture")
.HasColumnType("double");
b.Property<string>("Author")
.HasColumnType("varchar(255)");
b.Property<string>("CameraManufacturer")
.HasColumnType("varchar(255)");
b.Property<string>("CameraModel")
.HasColumnType("varchar(255)");
b.Property<ushort?>("ColorSpace")
.HasColumnType("smallint unsigned");
b.Property<string>("Comments")
.HasColumnType("longtext");
b.Property<ushort?>("Contrast")
.HasColumnType("smallint unsigned");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("CreationDate")
.HasColumnType("datetime(6)");
b.Property<double?>("DigitalZoomRatio")
.HasColumnType("double");
b.Property<string>("ExifVersion")
.HasColumnType("varchar(255)");
b.Property<ushort?>("ExposureMethod")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("ExposureProgram")
.HasColumnType("smallint unsigned");
b.Property<double?>("ExposureTime")
.HasColumnType("double");
b.Property<ushort?>("Flash")
.HasColumnType("smallint unsigned");
b.Property<double?>("Focal")
.HasColumnType("double");
b.Property<double?>("FocalLength")
.HasColumnType("double");
b.Property<double?>("FocalLengthEquivalent")
.HasColumnType("double");
b.Property<int>("GpuId")
.HasColumnType("int(11)");
b.Property<double?>("HorizontalResolution")
.HasColumnType("double");
b.Property<ushort?>("IsoRating")
.HasColumnType("smallint unsigned");
b.Property<string>("Lens")
.HasColumnType("varchar(255)");
b.Property<int>("LicenseId")
.HasColumnType("int");
b.Property<ushort?>("LightSource")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("MeteringMode")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Orientation")
.HasColumnType("smallint unsigned");
b.Property<string>("OriginalExtension")
.HasColumnType("longtext");
b.Property<ushort?>("ResolutionUnit")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Saturation")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("SceneCaptureType")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("SensingMethod")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Sharpness")
.HasColumnType("smallint unsigned");
b.Property<string>("SoftwareUsed")
.HasColumnType("varchar(255)");
b.Property<string>("Source")
.HasColumnType("longtext");
b.Property<ushort?>("SubjectDistanceRange")
.HasColumnType("smallint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<DateTime>("UploadDate")
.IsConcurrencyToken()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<double?>("VerticalResolution")
.HasColumnType("double");
b.Property<ushort?>("WhiteBalance")
.HasColumnType("smallint unsigned");
b.HasKey("Id");
b.HasIndex("Aperture");
b.HasIndex("Author");
b.HasIndex("CameraManufacturer");
b.HasIndex("CameraModel");
b.HasIndex("ColorSpace");
b.HasIndex("Contrast");
b.HasIndex("CreationDate");
b.HasIndex("DigitalZoomRatio");
b.HasIndex("ExifVersion");
b.HasIndex("ExposureMethod");
b.HasIndex("ExposureProgram");
b.HasIndex("ExposureTime");
b.HasIndex("Flash");
b.HasIndex("Focal");
b.HasIndex("FocalLength");
b.HasIndex("FocalLengthEquivalent");
b.HasIndex("GpuId")
.HasDatabaseName("idx_gpu_photos_gpu");
b.HasIndex("HorizontalResolution");
b.HasIndex("IsoRating");
b.HasIndex("Lens");
b.HasIndex("LicenseId");
b.HasIndex("LightSource");
b.HasIndex("MeteringMode");
b.HasIndex("Orientation");
b.HasIndex("ResolutionUnit");
b.HasIndex("Saturation");
b.HasIndex("SceneCaptureType");
b.HasIndex("SensingMethod");
b.HasIndex("Sharpness");
b.HasIndex("SoftwareUsed");
b.HasIndex("SubjectDistanceRange");
b.HasIndex("UploadDate");
b.HasIndex("UserId");
b.HasIndex("VerticalResolution");
b.HasIndex("WhiteBalance");
b.HasIndex("GpuId", "CreatedOn", "Id")
.HasDatabaseName("idx_gpu_photos_gpu_created");
b.ToTable("GpuPhotos");
});
modelBuilder.Entity("Marechai.Database.Models.GpuVideo", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("GpuId")
.HasColumnType("int(11)");
b.Property<string>("Provider")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<string>("Title")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VideoId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.HasKey("Id");
b.HasIndex("GpuId");
b.HasIndex("GpuId", "Provider", "VideoId")
.IsUnique();
b.ToTable("GpuVideos");
});
modelBuilder.Entity("Marechai.Database.Models.GpusByMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint(20)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("GpuId")
.HasColumnType("int(11)")
.HasColumnName("gpu");
b.Property<int>("MachineId")
.HasColumnType("int(11)")
.HasColumnName("machine");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("GpuId")
.HasDatabaseName("idx_gpus_by_machine_gpus");
b.HasIndex("MachineId")
.HasDatabaseName("idx_gpus_by_machine_machine");
b.ToTable("gpus_by_machine", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.IgdbCompany", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("BatchNumber")
.HasColumnType("int");
b.Property<string>("CandidatesJson")
.HasMaxLength(4096)
.HasColumnType("varchar(4096)");
b.Property<int?>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("ErrorMessage")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<long>("IgdbId")
.HasColumnType("bigint");
b.Property<double?>("MatchScore")
.HasColumnType("double");
b.Property<byte>("MatchStatus")
.HasColumnType("tinyint unsigned");
b.Property<string>("MatchType")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<DateTime?>("MatchedOn")
.HasColumnType("datetime(6)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CompanyId");
b.HasIndex("IgdbId")
.IsUnique();
b.HasIndex("MatchStatus");
b.HasIndex("Name");
b.ToTable("IgdbCompanies");
});
modelBuilder.Entity("Marechai.Database.Models.IgdbGame", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("BatchNumber")
.HasColumnType("int");
b.Property<string>("CandidatesJson")
.HasMaxLength(4096)
.HasColumnType("varchar(4096)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("ErrorMessage")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<int?>("GameTypeId")
.HasColumnType("int");
b.Property<long>("IgdbId")
.HasColumnType("bigint");
b.Property<double?>("MatchScore")
.HasColumnType("double");
b.Property<byte>("MatchStatus")
.HasColumnType("tinyint unsigned");
b.Property<string>("MatchType")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<DateTime?>("MatchedOn")
.HasColumnType("datetime(6)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("varchar(255)");
b.Property<long?>("ParentGameId")
.HasColumnType("bigint");
b.Property<string>("PlatformIdsJson")
.HasMaxLength(4096)
.HasColumnType("varchar(4096)");
b.Property<double?>("PlatformOverlapScore")
.HasColumnType("double");
b.Property<ulong?>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<long?>("VersionParentId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("GameTypeId");
b.HasIndex("IgdbId")
.IsUnique();
b.HasIndex("MatchStatus");
b.HasIndex("Name");
b.HasIndex("ParentGameId");
b.HasIndex("SoftwareId");
b.HasIndex("VersionParentId");
b.ToTable("IgdbGames");
});
modelBuilder.Entity("Marechai.Database.Models.IgdbGameType", b =>
{
b.Property<int>("Id")
.HasColumnType("int");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Type")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.ToTable("IgdbGameTypes");
});
modelBuilder.Entity("Marechai.Database.Models.IgdbInvolvedCompany", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("CompanyIgdbId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<bool>("Developer")
.HasColumnType("bit(1)");
b.Property<long>("GameIgdbId")
.HasColumnType("bigint");
b.Property<long>("IgdbId")
.HasColumnType("bigint");
b.Property<bool>("Publisher")
.HasColumnType("bit(1)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CompanyIgdbId");
b.HasIndex("GameIgdbId");
b.HasIndex("IgdbId")
.IsUnique();
b.ToTable("IgdbInvolvedCompanies");
});
modelBuilder.Entity("Marechai.Database.Models.IgdbPlatform", b =>
{
b.Property<int>("Id")
.HasColumnType("int");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<byte>("MatchStatus")
.HasColumnType("tinyint unsigned");
b.Property<string>("MatchType")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<DateTime?>("MatchedOn")
.HasColumnType("datetime(6)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("varchar(255)");
b.Property<ulong?>("SoftwarePlatformId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MatchStatus");
b.HasIndex("SoftwarePlatformId");
b.ToTable("IgdbPlatforms");
});
modelBuilder.Entity("Marechai.Database.Models.InstructionSet", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("instruction_set");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.ToTable("instruction_sets", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.InstructionSetExtension", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Extension")
.IsRequired()
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("extension");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.ToTable("instruction_set_extensions", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.InstructionSetExtensionsByProcessor", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<int>("ProcessorId")
.HasColumnType("int(11)")
.HasColumnName("processor_id");
b.Property<int>("ExtensionId")
.HasColumnType("int(11)")
.HasColumnName("extension_id");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id", "ProcessorId", "ExtensionId");
b.HasIndex("ExtensionId")
.HasDatabaseName("idx_setextension_extension");
b.HasIndex("ProcessorId")
.HasDatabaseName("idx_setextension_processor");
b.ToTable("instruction_set_extensions_by_processor", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.InvitationCode", b =>
{
b.Property<string>("Code")
.HasMaxLength(9)
.HasColumnType("varchar(9)");
b.Property<string>("CreatedById")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("CreatedOn")
.HasColumnType("datetime(6)");
b.Property<Guid>("RowVersion")
.IsConcurrencyToken()
.HasColumnType("char(36)");
b.Property<string>("UsedById")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("UsedOn")
.HasColumnType("datetime(6)");
b.HasKey("Code");
b.HasIndex("CreatedById");
b.HasIndex("CreatedOn");
b.HasIndex("UsedById");
b.ToTable("InvitationCodes");
});
modelBuilder.Entity("Marechai.Database.Models.Iso31661Numeric", b =>
{
b.Property<short>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("smallint(3)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<short>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)")
.HasColumnName("name");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Name")
.HasDatabaseName("idx_name");
b.ToTable("iso3166_1_numeric", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.Iso4217", b =>
{
b.Property<string>("Code")
.HasMaxLength(3)
.HasColumnType("varchar(3)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<byte?>("MinorUnits")
.HasColumnType("tinyint unsigned");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("varchar(150)");
b.Property<short>("Numeric")
.HasColumnType("smallint(3)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<DateTime?>("Withdrawn")
.HasColumnType("datetime(6)");
b.HasKey("Code");
b.HasIndex("Numeric");
b.HasIndex("Withdrawn");
b.ToTable("Iso4217");
});
modelBuilder.Entity("Marechai.Database.Models.Iso639", b =>
{
b.Property<string>("Id")
.HasColumnType("char(3)");
b.Property<string>("Comment")
.HasColumnType("varchar(150)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Part1")
.HasColumnType("char(2)");
b.Property<string>("Part2B")
.HasColumnType("char(3)");
b.Property<string>("Part2T")
.HasColumnType("char(3)");
b.Property<string>("ReferenceName")
.IsRequired()
.HasColumnType("varchar(150)")
.HasColumnName("Ref_Name");
b.Property<string>("Scope")
.IsRequired()
.HasColumnType("char(1)");
b.Property<string>("Type")
.IsRequired()
.HasColumnType("char(1)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Comment");
b.HasIndex("Part1");
b.HasIndex("Part2B");
b.HasIndex("Part2T");
b.HasIndex("ReferenceName");
b.HasIndex("Scope");
b.HasIndex("Type");
b.ToTable("ISO_639-3", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.LanguageBySoftwareRelease", b =>
{
b.Property<ulong>("SoftwareReleaseId")
.HasColumnType("bigint unsigned");
b.Property<string>("LanguageCode")
.HasMaxLength(3)
.HasColumnType("char(3)")
.UseCollation("utf8mb4_general_ci");
b.HasKey("SoftwareReleaseId", "LanguageCode");
b.HasIndex("LanguageCode");
b.ToTable("LanguageBySoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.License", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<bool>("FsfApproved")
.HasColumnType("bit(1)");
b.Property<string>("Link")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<bool>("OsiApproved")
.HasColumnType("bit(1)");
b.Property<string>("SPDX")
.HasColumnType("varchar(255)");
b.Property<string>("Text")
.HasMaxLength(131072)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("FsfApproved");
b.HasIndex("Name");
b.HasIndex("OsiApproved");
b.HasIndex("SPDX");
b.ToTable("Licenses");
});
modelBuilder.Entity("Marechai.Database.Models.Log", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Browser")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("char(128)")
.HasColumnName("browser")
.HasDefaultValueSql("''");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Date")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("char(20)")
.HasColumnName("date")
.HasDefaultValueSql("''");
b.Property<string>("Ip")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("char(16)")
.HasColumnName("ip")
.HasDefaultValueSql("''");
b.Property<string>("Referer")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("char(255)")
.HasColumnName("referer")
.HasDefaultValueSql("''");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Browser")
.HasDatabaseName("idx_log_browser");
b.HasIndex("Date")
.HasDatabaseName("idx_log_date");
b.HasIndex("Ip")
.HasDatabaseName("idx_log_ip");
b.HasIndex("Referer")
.HasDatabaseName("idx_log_referer");
b.ToTable("log", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.LogicalPartition", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Description")
.HasColumnType("varchar(255)");
b.Property<ulong>("FirstSector")
.HasColumnType("bigint unsigned");
b.Property<ulong>("LastSector")
.HasColumnType("bigint unsigned");
b.Property<string>("Name")
.HasColumnType("varchar(255)");
b.Property<string>("Scheme")
.HasColumnType("varchar(255)");
b.Property<uint>("Sequence")
.HasColumnType("int unsigned");
b.Property<ulong>("Size")
.HasColumnType("bigint unsigned");
b.Property<string>("Type")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Description");
b.HasIndex("FirstSector");
b.HasIndex("LastSector");
b.HasIndex("Name");
b.HasIndex("Scheme");
b.HasIndex("Type");
b.ToTable("LogicalPartitions");
});
modelBuilder.Entity("Marechai.Database.Models.LogicalPartitionsByMedia", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("MediaId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("PartitionId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MediaId");
b.HasIndex("PartitionId");
b.ToTable("LogicalPartitionsByMedia");
});
modelBuilder.Entity("Marechai.Database.Models.Machine", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<int>("CompanyId")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("company")
.HasDefaultValueSql("'0'");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int?>("FamilyId")
.HasColumnType("int(11)")
.HasColumnName("family");
b.Property<DateTime?>("Introduced")
.HasColumnType("datetime")
.HasColumnName("introduced");
b.Property<byte>("IntroducedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("Model")
.HasMaxLength(50)
.HasColumnType("varchar(50)")
.HasColumnName("model");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("varchar(255)")
.HasColumnName("name");
b.Property<bool>("Prototype")
.HasColumnType("bit(1)");
b.Property<int>("Type")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasDefaultValue(0)
.HasColumnName("type");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CompanyId")
.HasDatabaseName("idx_machines_company");
b.HasIndex("FamilyId")
.HasDatabaseName("idx_machines_family");
b.HasIndex("Introduced")
.HasDatabaseName("idx_machines_introduced");
b.HasIndex("Model")
.HasDatabaseName("idx_machines_model");
b.HasIndex("Name")
.HasDatabaseName("idx_machines_name");
b.HasIndex("Type")
.HasDatabaseName("idx_machines_type");
b.HasIndex("Type", "Introduced")
.HasDatabaseName("idx_machines_type_introduced");
b.ToTable("machines", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.MachineDescription", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Html")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)")
.UseCollation("utf8mb4_general_ci");
b.Property<int>("MachineId")
.HasColumnType("int(11)");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("Text")
.HasAnnotation("MySql:FullTextIndex", true);
b.HasIndex("MachineId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_machine_descriptions_machine_language");
b.ToTable("MachineDescriptions");
});
modelBuilder.Entity("Marechai.Database.Models.MachineFamily", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<int>("CompanyId")
.HasColumnType("int(11)")
.HasColumnName("company");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("varchar(255)")
.HasColumnName("name");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CompanyId")
.HasDatabaseName("idx_machine_families_company");
b.HasIndex("Name")
.HasDatabaseName("idx_machine_families_name");
b.ToTable("machine_families", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.MachinePhoto", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<double?>("Aperture")
.HasColumnType("double");
b.Property<string>("Author")
.HasColumnType("varchar(255)");
b.Property<string>("CameraManufacturer")
.HasColumnType("varchar(255)");
b.Property<string>("CameraModel")
.HasColumnType("varchar(255)");
b.Property<ushort?>("ColorSpace")
.HasColumnType("smallint unsigned");
b.Property<string>("Comments")
.HasColumnType("longtext");
b.Property<ushort?>("Contrast")
.HasColumnType("smallint unsigned");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("CreationDate")
.HasColumnType("datetime(6)");
b.Property<double?>("DigitalZoomRatio")
.HasColumnType("double");
b.Property<string>("ExifVersion")
.HasColumnType("varchar(255)");
b.Property<ushort?>("ExposureMethod")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("ExposureProgram")
.HasColumnType("smallint unsigned");
b.Property<double?>("ExposureTime")
.HasColumnType("double");
b.Property<ushort?>("Flash")
.HasColumnType("smallint unsigned");
b.Property<double?>("Focal")
.HasColumnType("double");
b.Property<double?>("FocalLength")
.HasColumnType("double");
b.Property<double?>("FocalLengthEquivalent")
.HasColumnType("double");
b.Property<double?>("HorizontalResolution")
.HasColumnType("double");
b.Property<ushort?>("IsoRating")
.HasColumnType("smallint unsigned");
b.Property<string>("Lens")
.HasColumnType("varchar(255)");
b.Property<int>("LicenseId")
.HasColumnType("int");
b.Property<ushort?>("LightSource")
.HasColumnType("smallint unsigned");
b.Property<int>("MachineId")
.HasColumnType("int(11)");
b.Property<ushort?>("MeteringMode")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Orientation")
.HasColumnType("smallint unsigned");
b.Property<string>("OriginalExtension")
.HasColumnType("longtext");
b.Property<ushort?>("ResolutionUnit")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Saturation")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("SceneCaptureType")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("SensingMethod")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Sharpness")
.HasColumnType("smallint unsigned");
b.Property<string>("SoftwareUsed")
.HasColumnType("varchar(255)");
b.Property<string>("Source")
.HasColumnType("longtext");
b.Property<ushort?>("SubjectDistanceRange")
.HasColumnType("smallint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<DateTime>("UploadDate")
.IsConcurrencyToken()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<double?>("VerticalResolution")
.HasColumnType("double");
b.Property<ushort?>("WhiteBalance")
.HasColumnType("smallint unsigned");
b.HasKey("Id");
b.HasIndex("Aperture");
b.HasIndex("Author");
b.HasIndex("CameraManufacturer");
b.HasIndex("CameraModel");
b.HasIndex("ColorSpace");
b.HasIndex("Contrast");
b.HasIndex("CreationDate");
b.HasIndex("DigitalZoomRatio");
b.HasIndex("ExifVersion");
b.HasIndex("ExposureMethod");
b.HasIndex("ExposureProgram");
b.HasIndex("ExposureTime");
b.HasIndex("Flash");
b.HasIndex("Focal");
b.HasIndex("FocalLength");
b.HasIndex("FocalLengthEquivalent");
b.HasIndex("HorizontalResolution");
b.HasIndex("IsoRating");
b.HasIndex("Lens");
b.HasIndex("LicenseId");
b.HasIndex("LightSource");
b.HasIndex("MachineId")
.HasDatabaseName("idx_machine_photos_machine");
b.HasIndex("MeteringMode");
b.HasIndex("Orientation");
b.HasIndex("ResolutionUnit");
b.HasIndex("Saturation");
b.HasIndex("SceneCaptureType");
b.HasIndex("SensingMethod");
b.HasIndex("Sharpness");
b.HasIndex("SoftwareUsed");
b.HasIndex("SubjectDistanceRange");
b.HasIndex("UploadDate");
b.HasIndex("UserId");
b.HasIndex("VerticalResolution");
b.HasIndex("WhiteBalance");
b.HasIndex("MachineId", "CreatedOn", "Id")
.HasDatabaseName("idx_machine_photos_machine_created");
b.ToTable("MachinePhotos");
});
modelBuilder.Entity("Marechai.Database.Models.MachinePromoArt", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<string>("Caption")
.HasColumnType("longtext");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("GroupId")
.HasColumnType("int");
b.Property<int>("MachineId")
.HasColumnType("int(11)");
b.Property<string>("OriginalExtension")
.IsRequired()
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("GroupId");
b.HasIndex("MachineId");
b.ToTable("MachinePromoArt");
});
modelBuilder.Entity("Marechai.Database.Models.MachineVideo", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineId")
.HasColumnType("int(11)");
b.Property<string>("Provider")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<string>("Title")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VideoId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.HasKey("Id");
b.HasIndex("MachineId");
b.HasIndex("MachineId", "Provider", "VideoId")
.IsUnique();
b.ToTable("MachineVideos");
});
modelBuilder.Entity("Marechai.Database.Models.Magazine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<short?>("CountryId")
.HasColumnType("smallint(3)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("FirstPublication")
.HasColumnType("datetime(6)");
b.Property<byte>("FirstPublicationPrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("Issn")
.HasMaxLength(8)
.HasColumnType("varchar(8)");
b.Property<string>("NativeTitle")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("Published")
.HasColumnType("datetime(6)");
b.Property<byte>("PublishedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("SortTitle")
.HasColumnType("longtext");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CountryId");
b.HasIndex("FirstPublication");
b.HasIndex("Issn");
b.HasIndex("NativeTitle");
b.HasIndex("Published");
b.HasIndex("Title");
b.ToTable("Magazines");
});
modelBuilder.Entity("Marechai.Database.Models.MagazineIssue", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Caption")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<Guid?>("CoverGuid")
.HasColumnType("char(36)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("InternetArchiveUrl")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<uint?>("IssueNumber")
.HasColumnType("int unsigned");
b.Property<long>("MagazineId")
.HasColumnType("bigint");
b.Property<string>("NativeCaption")
.HasColumnType("varchar(255)");
b.Property<string>("OriginalCoverExtension")
.HasColumnType("longtext");
b.Property<short?>("Pages")
.HasColumnType("smallint");
b.Property<string>("ProductCode")
.HasMaxLength(18)
.HasColumnType("varchar(18)");
b.Property<DateTime?>("Published")
.HasColumnType("datetime(6)");
b.Property<byte>("PublishedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Caption");
b.HasIndex("MagazineId");
b.HasIndex("NativeCaption");
b.HasIndex("Pages");
b.HasIndex("ProductCode");
b.HasIndex("Published");
b.ToTable("MagazineIssues");
});
modelBuilder.Entity("Marechai.Database.Models.MagazineSynopsis", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<long>("MagazineId")
.HasColumnType("bigint");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("Text")
.HasAnnotation("MySql:FullTextIndex", true);
b.HasIndex("MagazineId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_magazine_synopses_magazine_language");
b.ToTable("MagazineSynopses");
});
modelBuilder.Entity("Marechai.Database.Models.MagazinesByMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineId")
.HasColumnType("int(11)");
b.Property<long>("MagazineId")
.HasColumnType("bigint");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MachineId");
b.HasIndex("MagazineId");
b.ToTable("MagazinesByMachines");
});
modelBuilder.Entity("Marechai.Database.Models.MagazinesByMachineFamily", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineFamilyId")
.HasColumnType("int(11)");
b.Property<long>("MagazineId")
.HasColumnType("bigint");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MachineFamilyId");
b.HasIndex("MagazineId");
b.ToTable("MagazinesByMachinesFamilies");
});
modelBuilder.Entity("Marechai.Database.Models.MagazinesBySoftware", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("MagazineId")
.HasColumnType("bigint");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MagazineId");
b.HasIndex("SoftwareId");
b.ToTable("MagazinesBySoftware");
});
modelBuilder.Entity("Marechai.Database.Models.MarechaiDb", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTimeOffset?>("Updated")
.ValueGeneratedOnAdd()
.HasColumnType("datetime")
.HasColumnName("updated")
.HasDefaultValueSql("CURRENT_TIMESTAMP");
b.Property<int>("Version")
.HasColumnType("int(11)")
.HasColumnName("version");
b.HasKey("Id");
b.ToTable("marechai_db", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.MasteringText", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<short?>("Layer")
.HasColumnType("smallint");
b.Property<ulong>("MediaId")
.HasColumnType("bigint unsigned");
b.Property<short?>("Side")
.HasColumnType("smallint");
b.Property<string>("Text")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<byte>("Type")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MediaId");
b.HasIndex("Text");
b.HasIndex("Type");
b.ToTable("MasteringTexts");
});
modelBuilder.Entity("Marechai.Database.Models.Media", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<string>("Barcode")
.HasColumnType("varchar(255)");
b.Property<string>("BlockSizes")
.HasColumnType("json");
b.Property<string>("CatalogueNumber")
.HasColumnType("varchar(255)");
b.Property<string>("CopyProtection")
.HasColumnType("varchar(255)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Firmware")
.HasColumnType("varchar(255)");
b.Property<ushort?>("LastSequence")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Layers")
.HasColumnType("smallint unsigned");
b.Property<int?>("LogicalBlockSize")
.HasColumnType("int");
b.Property<long?>("MagazineIssueId")
.HasColumnType("bigint");
b.Property<string>("Manufacturer")
.HasColumnType("varchar(255)");
b.Property<string>("Model")
.HasColumnType("varchar(255)");
b.Property<string>("PartNumber")
.HasColumnType("varchar(255)");
b.Property<int?>("PhysicalBlockSize")
.HasColumnType("int");
b.Property<string>("Revision")
.HasColumnType("varchar(255)");
b.Property<ulong>("Sectors")
.HasColumnType("bigint unsigned");
b.Property<ushort?>("Sequence")
.HasColumnType("smallint unsigned");
b.Property<string>("SerialNumber")
.HasColumnType("varchar(255)");
b.Property<ushort?>("Sessions")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Sides")
.HasColumnType("smallint unsigned");
b.Property<ulong>("Size")
.HasColumnType("bigint unsigned");
b.Property<int?>("StorageInterface")
.HasColumnType("int");
b.Property<string>("TableOfContents")
.HasColumnType("json");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<ushort?>("Tracks")
.HasColumnType("smallint unsigned");
b.Property<uint>("Type")
.HasColumnType("int unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<int?>("WriteOffset")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("Barcode");
b.HasIndex("CatalogueNumber");
b.HasIndex("CopyProtection");
b.HasIndex("Firmware");
b.HasIndex("MagazineIssueId");
b.HasIndex("Manufacturer");
b.HasIndex("Model");
b.HasIndex("PartNumber");
b.HasIndex("Revision");
b.HasIndex("SerialNumber");
b.HasIndex("Title");
b.HasIndex("Type");
b.ToTable("Media");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDump", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Format")
.HasColumnType("varchar(255)");
b.Property<ulong>("MediaId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("Status")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Format");
b.HasIndex("MediaId");
b.HasIndex("Status");
b.ToTable("MediaDumps");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpFileImage", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("FileSequence")
.HasColumnType("bigint");
b.Property<byte[]>("Md5")
.HasColumnType("binary(16)");
b.Property<ulong>("MediaDumpId")
.HasColumnType("bigint unsigned");
b.Property<short>("PartitionSequence")
.HasColumnType("smallint");
b.Property<byte[]>("Sha1")
.HasColumnType("binary(20)");
b.Property<byte[]>("Sha256")
.HasColumnType("binary(32)");
b.Property<byte[]>("Sha3")
.HasColumnType("binary(64)");
b.Property<ulong>("Size")
.HasColumnType("bigint unsigned");
b.Property<string>("Spamsum")
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Md5");
b.HasIndex("MediaDumpId");
b.HasIndex("Sha1");
b.HasIndex("Sha256");
b.HasIndex("Sha3");
b.HasIndex("Size");
b.HasIndex("Spamsum");
b.ToTable("MediaDumpFileImages");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpImage", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<string>("AccoustId")
.HasColumnType("varchar(255)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<byte[]>("Md5")
.HasColumnType("binary(16)");
b.Property<ulong>("MediaDumpId")
.HasColumnType("bigint unsigned");
b.Property<byte[]>("Sha1")
.HasColumnType("binary(20)");
b.Property<byte[]>("Sha256")
.HasColumnType("binary(32)");
b.Property<byte[]>("Sha3")
.HasColumnType("binary(64)");
b.Property<ulong>("Size")
.HasColumnType("bigint unsigned");
b.Property<string>("Spamsum")
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("AccoustId");
b.HasIndex("Md5");
b.HasIndex("MediaDumpId")
.IsUnique();
b.HasIndex("Sha1");
b.HasIndex("Sha256");
b.HasIndex("Sha3");
b.HasIndex("Size");
b.HasIndex("Spamsum");
b.ToTable("MediaDumpImages");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpSubchannelImage", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<byte[]>("Md5")
.HasColumnType("binary(16)");
b.Property<ulong?>("MediaDumpId")
.HasColumnType("bigint unsigned");
b.Property<byte[]>("Sha1")
.HasColumnType("binary(20)");
b.Property<byte[]>("Sha256")
.HasColumnType("binary(32)");
b.Property<byte[]>("Sha3")
.HasColumnType("binary(64)");
b.Property<ulong>("Size")
.HasColumnType("bigint unsigned");
b.Property<string>("Spamsum")
.HasColumnType("varchar(255)");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<ulong?>("TrackId")
.HasColumnType("bigint unsigned");
b.Property<short>("TrackSequence")
.HasColumnType("smallint");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Md5");
b.HasIndex("MediaDumpId")
.IsUnique();
b.HasIndex("Sha1");
b.HasIndex("Sha256");
b.HasIndex("Sha3");
b.HasIndex("Size");
b.HasIndex("Spamsum");
b.HasIndex("TrackId")
.IsUnique();
b.ToTable("MediaDumpSubchannelImages");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpTrackImage", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Format")
.HasColumnType("varchar(255)");
b.Property<byte[]>("Md5")
.HasColumnType("binary(16)");
b.Property<ulong?>("MediaDumpId")
.HasColumnType("bigint unsigned");
b.Property<byte[]>("Sha1")
.HasColumnType("binary(20)");
b.Property<byte[]>("Sha256")
.HasColumnType("binary(32)");
b.Property<byte[]>("Sha3")
.HasColumnType("binary(64)");
b.Property<ulong>("Size")
.HasColumnType("bigint unsigned");
b.Property<string>("Spamsum")
.HasColumnType("varchar(255)");
b.Property<short>("TrackSequence")
.HasColumnType("smallint");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Format");
b.HasIndex("Md5");
b.HasIndex("MediaDumpId");
b.HasIndex("Sha1");
b.HasIndex("Sha256");
b.HasIndex("Sha3");
b.HasIndex("Size");
b.HasIndex("Spamsum");
b.ToTable("MediaDumpTrackImages");
});
modelBuilder.Entity("Marechai.Database.Models.MediaFile", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime?>("AccessDate")
.HasColumnType("datetime(6)");
b.Property<ulong>("Attributes")
.HasColumnType("bigint unsigned");
b.Property<DateTime?>("BackupDate")
.HasColumnType("datetime(6)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("CreationDate")
.HasColumnType("datetime(6)");
b.Property<uint?>("DeviceNumber")
.HasColumnType("int unsigned");
b.Property<ulong?>("GroupId")
.HasColumnType("bigint unsigned");
b.Property<ulong?>("Inode")
.HasColumnType("bigint unsigned");
b.Property<bool>("IsDirectory")
.HasColumnType("bit(1)");
b.Property<DateTime?>("LastWriteDate")
.HasColumnType("datetime(6)");
b.Property<ulong?>("Links")
.HasColumnType("bigint unsigned");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("varchar(255)");
b.Property<string>("Path")
.IsRequired()
.HasMaxLength(8192)
.HasColumnType("varchar(8192)");
b.Property<string>("PathSeparator")
.IsRequired()
.HasColumnType("varchar(1)");
b.Property<ushort?>("PosixMode")
.HasColumnType("smallint unsigned");
b.Property<DateTime?>("StatusChangeDate")
.HasColumnType("datetime(6)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<ulong?>("UserId")
.HasColumnType("bigint unsigned");
b.HasKey("Id");
b.HasIndex("AccessDate");
b.HasIndex("BackupDate");
b.HasIndex("CreationDate");
b.HasIndex("GroupId");
b.HasIndex("IsDirectory");
b.HasIndex("LastWriteDate");
b.HasIndex("Name");
b.HasIndex("Path");
b.HasIndex("StatusChangeDate");
b.HasIndex("UserId");
b.ToTable("MediaFiles");
});
modelBuilder.Entity("Marechai.Database.Models.MediaTagDump", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("FileId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("MediaDumpId")
.HasColumnType("bigint unsigned");
b.Property<int>("Type")
.HasColumnType("int");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("FileId");
b.HasIndex("MediaDumpId");
b.HasIndex("Type");
b.ToTable("MediaTagDumps");
});
modelBuilder.Entity("Marechai.Database.Models.MemoryByMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint(20)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineId")
.HasColumnType("int(11)")
.HasColumnName("machine");
b.Property<long?>("Size")
.HasColumnType("bigint(20)")
.HasColumnName("size");
b.Property<double?>("Speed")
.HasColumnType("double")
.HasColumnName("speed");
b.Property<int>("Type")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasDefaultValue(0)
.HasColumnName("type");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<int>("Usage")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasDefaultValue(0)
.HasColumnName("usage");
b.HasKey("Id");
b.HasIndex("MachineId")
.HasDatabaseName("idx_memory_by_machine_machine");
b.HasIndex("Size")
.HasDatabaseName("idx_memory_by_machine_size");
b.HasIndex("Speed")
.HasDatabaseName("idx_memory_by_machine_speed");
b.HasIndex("Type")
.HasDatabaseName("idx_memory_by_machine_type");
b.HasIndex("Usage")
.HasDatabaseName("idx_memory_by_machine_usage");
b.ToTable("memory_by_machine", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.Message", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Body")
.IsRequired()
.HasMaxLength(5000)
.HasColumnType("varchar(5000)");
b.Property<long>("ConversationId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<bool>("IsSystemAuthored")
.HasColumnType("bit(1)");
b.Property<long?>("ParentMessageId")
.HasColumnType("bigint");
b.Property<string>("SenderId")
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("ParentMessageId");
b.HasIndex("SenderId");
b.HasIndex("ConversationId", "CreatedOn");
b.ToTable("Messages");
});
modelBuilder.Entity("Marechai.Database.Models.MessageReport", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Explanation")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<bool>("IsResolved")
.HasColumnType("bit(1)");
b.Property<long?>("MessageId")
.HasColumnType("bigint");
b.Property<int>("Reason")
.HasColumnType("int");
b.Property<string>("ReporterId")
.HasColumnType("varchar(255)");
b.Property<string>("ResolvedByUserId")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("ResolvedOn")
.HasColumnType("datetime(6)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("IsResolved");
b.HasIndex("MessageId");
b.HasIndex("ReporterId");
b.HasIndex("ResolvedByUserId");
b.ToTable("MessageReports");
});
modelBuilder.Entity("Marechai.Database.Models.MessageState", b =>
{
b.Property<long>("MessageId")
.HasColumnType("bigint");
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("DeletedAt")
.HasColumnType("datetime(6)");
b.Property<bool>("IsRead")
.HasColumnType("bit(1)");
b.Property<DateTime?>("ReadAt")
.HasColumnType("datetime(6)");
b.HasKey("MessageId", "UserId");
b.HasIndex("UserId", "IsRead", "DeletedAt");
b.ToTable("MessageStates");
});
modelBuilder.Entity("Marechai.Database.Models.MinimumGpuBySoftwareRelease", b =>
{
b.Property<ulong>("ReleaseId")
.HasColumnType("bigint unsigned");
b.Property<int>("GpuId")
.HasColumnType("int(11)");
b.HasKey("ReleaseId", "GpuId");
b.HasIndex("GpuId");
b.ToTable("MinimumGpuBySoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.MobyGamesCoverDownloadState", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Countries")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<string>("CoverPageUrl")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<string>("CoverType")
.IsRequired()
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("ErrorMessage")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("GroupId")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("MobyGameId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("OriginalUrl")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("Platform")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime?>("ProcessedOn")
.HasColumnType("datetime(6)");
b.Property<Guid?>("SoftwareCoverId")
.HasColumnType("char(36)");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<ulong?>("SoftwareReleaseId")
.HasColumnType("bigint unsigned");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.ToTable("MobyGamesCoverDownloadStates");
});
modelBuilder.Entity("Marechai.Database.Models.MobyGamesDiscoveredGame", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Developer")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<int>("ErrorCount")
.HasColumnType("int");
b.Property<string>("FetchError")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<DateTime>("FirstDiscoveredAt")
.HasColumnType("datetime(6)");
b.Property<DateTime>("LastSeenAt")
.HasColumnType("datetime(6)");
b.Property<int>("NumericId")
.HasColumnType("int");
b.Property<DateTime?>("RawFetchedAt")
.HasColumnType("datetime(6)");
b.Property<int>("ReleaseYear")
.HasColumnType("int");
b.Property<string>("SkippedReason")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("Slug")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("varchar(255)");
b.Property<string>("Title")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("NumericId");
b.HasIndex("RawFetchedAt");
b.HasIndex("ReleaseYear");
b.HasIndex("Slug")
.IsUnique();
b.ToTable("MobyGamesDiscoveredGames");
});
modelBuilder.Entity("Marechai.Database.Models.MobyGamesImportState", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("BatchNumber")
.HasColumnType("int");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("ErrorMessage")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("MobyGameId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<int?>("MobyNumericId")
.HasColumnType("int");
b.Property<DateTime?>("ProcessedOn")
.HasColumnType("datetime(6)");
b.Property<ulong?>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MobyGameId")
.IsUnique();
b.HasIndex("Status");
b.ToTable("MobyGamesImportStates");
});
modelBuilder.Entity("Marechai.Database.Models.MobyGamesPromoArtDownloadState", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Caption")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("ErrorMessage")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("GroupName")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<string>("MobyGameId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("OriginalUrl")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<DateTime?>("ProcessedOn")
.HasColumnType("datetime(6)");
b.Property<string>("PromoPageUrl")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<Guid?>("SoftwarePromoArtId")
.HasColumnType("char(36)");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MobyGameId");
b.HasIndex("PromoPageUrl")
.IsUnique();
b.HasIndex("Status");
b.ToTable("MobyGamesPromoArtDownloadStates");
});
modelBuilder.Entity("Marechai.Database.Models.MobyGamesRejection", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("GameName")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<string>("MobyGameId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("Reason")
.IsRequired()
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<DateTime>("RejectedOn")
.HasColumnType("datetime(6)");
b.Property<byte>("ReviewAction")
.HasColumnType("tinyint unsigned");
b.Property<DateTime?>("ReviewedOn")
.HasColumnType("datetime(6)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MobyGameId");
b.HasIndex("ReviewAction");
b.ToTable("MobyGamesRejections");
});
modelBuilder.Entity("Marechai.Database.Models.MobyGamesReviewImportState", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("ErrorMessage")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("MobyGameId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<DateTime?>("ProcessedOn")
.HasColumnType("datetime(6)");
b.Property<int>("ReviewsImported")
.HasColumnType("int");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MobyGameId")
.IsUnique();
b.HasIndex("Status");
b.ToTable("MobyGamesReviewImportStates");
});
modelBuilder.Entity("Marechai.Database.Models.MobyGamesScreenshotDownloadState", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Caption")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("ErrorMessage")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("MobyGameId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("OriginalUrl")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("Platform")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime?>("ProcessedOn")
.HasColumnType("datetime(6)");
b.Property<string>("ScreenshotPageUrl")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<Guid?>("SoftwareScreenshotId")
.HasColumnType("char(36)");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MobyGameId");
b.HasIndex("ScreenshotPageUrl")
.IsUnique();
b.HasIndex("Status");
b.ToTable("MobyGamesScreenshotDownloadStates");
});
modelBuilder.Entity("Marechai.Database.Models.MobyGamesVideoImportState", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("ErrorMessage")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("ExtractedVideoId")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("MobyGameId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<DateTime?>("ProcessedOn")
.HasColumnType("datetime(6)");
b.Property<string>("Provider")
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<long?>("SoftwareVideoId")
.HasColumnType("bigint");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<string>("Title")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VideoUrl")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.HasKey("Id");
b.HasIndex("MobyGameId");
b.HasIndex("SoftwareId");
b.HasIndex("Status");
b.HasIndex("VideoUrl");
b.ToTable("MobyGamesVideoImportStates");
});
modelBuilder.Entity("Marechai.Database.Models.MoneyDonation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Donator")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("char(128)")
.HasColumnName("donator")
.HasDefaultValueSql("''");
b.Property<decimal>("Quantity")
.ValueGeneratedOnAdd()
.HasColumnType("decimal(11,2)")
.HasColumnName("quantity")
.HasDefaultValueSql("'0.00'");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Donator")
.HasDatabaseName("idx_money_donations_donator");
b.HasIndex("Quantity")
.HasDatabaseName("idx_money_donations_quantity");
b.ToTable("money_donations", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.News", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<long>("AddedId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint(20)")
.HasColumnName("added_id")
.HasDefaultValueSql("'0'");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime>("Date")
.HasColumnType("datetime")
.HasColumnName("date");
b.Property<string>("Name")
.HasColumnType("longtext")
.HasColumnName("name");
b.Property<int>("Type")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasDefaultValue(1)
.HasColumnName("type");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("AddedId")
.HasDatabaseName("idx_news_ip");
b.HasIndex("Date")
.HasDatabaseName("idx_news_date");
b.HasIndex("Type")
.HasDatabaseName("idx_news_type");
b.ToTable("news", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.OldDosCategory", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("EnglishName")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime?>("LastCrawledOn")
.HasColumnType("datetime(6)");
b.Property<int?>("ParentId")
.HasColumnType("int");
b.Property<string>("Path")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<string>("RussianName")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("ParentId");
b.ToTable("OldDosCategories");
});
modelBuilder.Entity("Marechai.Database.Models.OldDosOsPlatformMap", b =>
{
b.Property<string>("OsName")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<bool>("IgnoreOnPromote")
.HasColumnType("bit(1)");
b.Property<ulong?>("SoftwarePlatformId")
.HasColumnType("bigint unsigned");
b.HasKey("OsName");
b.HasIndex("SoftwarePlatformId");
b.ToTable("OldDosOsPlatformMaps");
});
modelBuilder.Entity("Marechai.Database.Models.OldDosSoftware", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CrawledOn")
.HasColumnType("datetime(6)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("DeveloperName")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<string>("EnglishDescriptionLiteral")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("EnglishDescriptionMuseum")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("LastError")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<int>("MuseumDescriptionPromptVersion")
.HasColumnType("int");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<int?>("OldDosCategoryId")
.HasColumnType("int");
b.Property<string>("OsName")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<ulong?>("PromotedSoftwareId")
.HasColumnType("bigint unsigned");
b.Property<string>("ReviewedBy")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime?>("ReviewedOn")
.HasColumnType("datetime(6)");
b.Property<string>("RussianCategoryPath")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<string>("RussianDescription")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<int>("SourceId")
.HasColumnType("int");
b.Property<string>("SourceUrl")
.IsRequired()
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<string>("SuggestedGenreIdsJson")
.HasMaxLength(4096)
.HasColumnType("varchar(4096)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("OldDosCategoryId");
b.HasIndex("SourceId")
.IsUnique();
b.HasIndex("SourceUrl")
.IsUnique();
b.HasIndex("Status");
b.ToTable("OldDosSoftwares");
});
modelBuilder.Entity("Marechai.Database.Models.OldDosVersion", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("DownloadUrl")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<string>("FileName")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<bool>("IsEnabledByDefault")
.HasColumnType("bit(1)");
b.Property<string>("Notes")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<long>("OldDosSoftwareId")
.HasColumnType("bigint");
b.Property<string>("OsHint")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<ulong?>("PromotedSoftwareVersionId")
.HasColumnType("bigint unsigned");
b.Property<DateTime?>("ReleaseDate")
.HasColumnType("datetime(6)");
b.Property<byte>("ReleaseDatePrecision")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VersionString")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.HasKey("Id");
b.HasIndex("OldDosSoftwareId");
b.ToTable("OldDosVersions");
});
modelBuilder.Entity("Marechai.Database.Models.OwnedMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("AcquisitionDate")
.HasColumnType("datetime(6)");
b.Property<byte>("AcquisitionDatePrecision")
.HasColumnType("tinyint unsigned");
b.Property<bool>("Boxed")
.HasColumnType("bit(1)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("LastStatusDate")
.HasColumnType("datetime(6)");
b.Property<byte>("LastStatusDatePrecision")
.HasColumnType("tinyint unsigned");
b.Property<DateTime?>("LostDate")
.HasColumnType("datetime(6)");
b.Property<byte>("LostDatePrecision")
.HasColumnType("tinyint unsigned");
b.Property<int>("MachineId")
.HasColumnType("int(11)");
b.Property<bool>("Manuals")
.HasColumnType("bit(1)");
b.Property<string>("SerialNumber")
.HasColumnType("varchar(255)");
b.Property<bool>("SerialNumberVisible")
.ValueGeneratedOnAdd()
.HasColumnType("bit(1)")
.HasDefaultValue(true);
b.Property<int>("Status")
.HasColumnType("int");
b.Property<bool>("Trade")
.HasColumnType("bit(1)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("AcquisitionDate");
b.HasIndex("Boxed");
b.HasIndex("LastStatusDate");
b.HasIndex("LostDate");
b.HasIndex("MachineId");
b.HasIndex("Manuals");
b.HasIndex("SerialNumber");
b.HasIndex("SerialNumberVisible");
b.HasIndex("Status");
b.HasIndex("Trade");
b.HasIndex("UserId");
b.ToTable("OwnedMachines");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleByBook", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("BookId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("PersonId")
.HasColumnType("int");
b.Property<string>("RoleId")
.IsRequired()
.HasColumnType("char(3)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("BookId");
b.HasIndex("PersonId");
b.HasIndex("RoleId");
b.ToTable("PeopleByBooks");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleByCompany", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CompanyId")
.HasColumnType("int(11)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("End")
.HasColumnType("datetime(6)");
b.Property<byte>("EndPrecision")
.HasColumnType("tinyint unsigned");
b.Property<bool>("Ongoing")
.HasColumnType("bit(1)");
b.Property<int>("PersonId")
.HasColumnType("int");
b.Property<string>("Position")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("Start")
.HasColumnType("datetime(6)");
b.Property<byte>("StartPrecision")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CompanyId");
b.HasIndex("End");
b.HasIndex("PersonId");
b.HasIndex("Position");
b.HasIndex("Start");
b.ToTable("PeopleByCompany", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.PeopleByDocument", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("DocumentId")
.HasColumnType("bigint");
b.Property<int>("PersonId")
.HasColumnType("int");
b.Property<string>("RoleId")
.IsRequired()
.HasColumnType("char(3)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("DocumentId");
b.HasIndex("PersonId");
b.HasIndex("RoleId");
b.ToTable("PeopleByDocuments");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleByMagazine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("MagazineId")
.HasColumnType("bigint");
b.Property<int>("PersonId")
.HasColumnType("int");
b.Property<string>("RoleId")
.IsRequired()
.HasColumnType("char(3)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MagazineId");
b.HasIndex("PersonId");
b.HasIndex("RoleId");
b.ToTable("PeopleByMagazines");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleBySoftware", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("PersonId")
.HasColumnType("int");
b.Property<string>("Role")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<string>("RoleId")
.HasColumnType("char(3)");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("PersonId")
.HasDatabaseName("idx_people_by_software_person");
b.HasIndex("RoleId")
.HasDatabaseName("idx_people_by_software_role");
b.HasIndex("SoftwareId", "PersonId", "Role")
.IsUnique();
b.ToTable("PeopleBySoftware");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleBySoftwareRoleTranslation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<string>("RoleText")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<string>("Translation")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("RoleText")
.HasDatabaseName("idx_people_by_software_role_translations_text");
b.HasIndex("RoleText", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_people_by_software_role_translations_text_language");
b.ToTable("PeopleBySoftwareRoleTranslations");
});
modelBuilder.Entity("Marechai.Database.Models.Person", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Alias")
.HasColumnType("varchar(255)");
b.Property<DateTime>("BirthDate")
.HasColumnType("datetime(6)");
b.Property<byte>("BirthDatePrecision")
.HasColumnType("tinyint unsigned");
b.Property<short?>("CountryOfBirthId")
.HasColumnType("smallint(3)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("DeathDate")
.HasColumnType("datetime(6)");
b.Property<byte>("DeathDatePrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("DisplayName")
.HasColumnType("varchar(255)");
b.Property<string>("Facebook")
.HasColumnType("varchar(255)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<string>("OriginalPhotoExtension")
.HasColumnType("longtext");
b.Property<Guid>("Photo")
.HasColumnType("char(36)");
b.Property<string>("Surname")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<string>("Twitter")
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("Webpage")
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("Alias");
b.HasIndex("BirthDate");
b.HasIndex("CountryOfBirthId");
b.HasIndex("DeathDate");
b.HasIndex("DisplayName");
b.HasIndex("Facebook");
b.HasIndex("Name");
b.HasIndex("Photo");
b.HasIndex("Surname");
b.HasIndex("Twitter");
b.HasIndex("Webpage");
b.ToTable("People");
});
modelBuilder.Entity("Marechai.Database.Models.PersonDescription", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Html")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)")
.UseCollation("utf8mb4_general_ci");
b.Property<int>("PersonId")
.HasColumnType("int");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("Text")
.HasAnnotation("MySql:FullTextIndex", true);
b.HasIndex("PersonId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_person_descriptions_person_language");
b.ToTable("PersonDescriptions");
});
modelBuilder.Entity("Marechai.Database.Models.Processor", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<int?>("AddrBus")
.HasColumnType("int(11)")
.HasColumnName("addr_bus");
b.Property<int?>("CompanyId")
.HasColumnType("int(11)")
.HasColumnName("company");
b.Property<int?>("Cores")
.HasColumnType("int(11)")
.HasColumnName("cores");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int?>("DataBus")
.HasColumnType("int(11)")
.HasColumnName("data_bus");
b.Property<float?>("DieSize")
.HasColumnType("float")
.HasColumnName("die_size");
b.Property<int?>("FprSize")
.HasColumnType("int(11)")
.HasColumnName("FPR_size");
b.Property<int?>("Fprs")
.HasColumnType("int(11)")
.HasColumnName("FPRs");
b.Property<int?>("GprSize")
.HasColumnType("int(11)")
.HasColumnName("GPR_size");
b.Property<int?>("Gprs")
.HasColumnType("int(11)")
.HasColumnName("GPRs");
b.Property<int?>("InstructionSetId")
.HasColumnType("int(11)")
.HasColumnName("instruction_set");
b.Property<DateTime?>("Introduced")
.HasColumnType("datetime")
.HasColumnName("introduced");
b.Property<byte>("IntroducedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<float?>("L1Data")
.HasColumnType("float")
.HasColumnName("L1_data");
b.Property<float?>("L1Instruction")
.HasColumnType("float")
.HasColumnName("L1_instruction");
b.Property<float?>("L2")
.HasColumnType("float");
b.Property<float?>("L3")
.HasColumnType("float");
b.Property<string>("ModelCode")
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("model_code");
b.Property<string>("Name")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(50)
.HasColumnType("char(50)")
.HasColumnName("name")
.HasDefaultValueSql("''");
b.Property<string>("Package")
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("package");
b.Property<string>("Process")
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("process");
b.Property<float?>("ProcessNm")
.HasColumnType("float")
.HasColumnName("process_nm");
b.Property<int?>("SimdRegisters")
.HasColumnType("int(11)")
.HasColumnName("SIMD_registers");
b.Property<int?>("SimdSize")
.HasColumnType("int(11)")
.HasColumnName("SIMD_size");
b.Property<double?>("Speed")
.HasColumnType("double")
.HasColumnName("speed");
b.Property<int?>("ThreadsPerCore")
.HasColumnType("int(11)")
.HasColumnName("threads_per_core");
b.Property<long?>("Transistors")
.HasColumnType("bigint(20)")
.HasColumnName("transistors");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("AddrBus")
.HasDatabaseName("idx_processors_addr_bus");
b.HasIndex("CompanyId")
.HasDatabaseName("idx_processors_company");
b.HasIndex("Cores")
.HasDatabaseName("idx_processors_cores");
b.HasIndex("DataBus")
.HasDatabaseName("idx_processors_data_bus");
b.HasIndex("DieSize")
.HasDatabaseName("idx_processors_die_size");
b.HasIndex("FprSize")
.HasDatabaseName("idx_processors_FPR_size");
b.HasIndex("Fprs")
.HasDatabaseName("idx_processors_FPRs");
b.HasIndex("GprSize")
.HasDatabaseName("idx_processors_GPR_size");
b.HasIndex("Gprs")
.HasDatabaseName("idx_processors_GPRs");
b.HasIndex("InstructionSetId")
.HasDatabaseName("idx_processors_instruction_set");
b.HasIndex("Introduced")
.HasDatabaseName("idx_processors_introduced");
b.HasIndex("L1Data")
.HasDatabaseName("idx_processors_L1_data");
b.HasIndex("L1Instruction")
.HasDatabaseName("idx_processors_L1_instruction");
b.HasIndex("L2")
.HasDatabaseName("idx_processors_L2");
b.HasIndex("L3")
.HasDatabaseName("idx_processors_L3");
b.HasIndex("ModelCode")
.HasDatabaseName("idx_processors_model_code");
b.HasIndex("Name")
.HasDatabaseName("idx_processors_name");
b.HasIndex("Package")
.HasDatabaseName("idx_processors_package");
b.HasIndex("Process")
.HasDatabaseName("idx_processors_process");
b.HasIndex("ProcessNm")
.HasDatabaseName("idx_processors_process_nm");
b.HasIndex("SimdRegisters")
.HasDatabaseName("idx_processors_SIMD_registers");
b.HasIndex("SimdSize")
.HasDatabaseName("idx_processors_SIMD_size");
b.HasIndex("Speed")
.HasDatabaseName("idx_processors_speed");
b.HasIndex("ThreadsPerCore")
.HasDatabaseName("idx_processors_threads_per_core");
b.HasIndex("Transistors")
.HasDatabaseName("idx_processors_transistors");
b.ToTable("processors", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.ProcessorDescription", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Html")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)")
.UseCollation("utf8mb4_general_ci");
b.Property<int>("ProcessorId")
.HasColumnType("int(11)");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("Text")
.HasAnnotation("MySql:FullTextIndex", true);
b.HasIndex("ProcessorId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_processor_descriptions_processor_language");
b.ToTable("ProcessorDescriptions");
});
modelBuilder.Entity("Marechai.Database.Models.ProcessorPhoto", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<double?>("Aperture")
.HasColumnType("double");
b.Property<string>("Author")
.HasColumnType("varchar(255)");
b.Property<string>("CameraManufacturer")
.HasColumnType("varchar(255)");
b.Property<string>("CameraModel")
.HasColumnType("varchar(255)");
b.Property<ushort?>("ColorSpace")
.HasColumnType("smallint unsigned");
b.Property<string>("Comments")
.HasColumnType("longtext");
b.Property<ushort?>("Contrast")
.HasColumnType("smallint unsigned");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("CreationDate")
.HasColumnType("datetime(6)");
b.Property<double?>("DigitalZoomRatio")
.HasColumnType("double");
b.Property<string>("ExifVersion")
.HasColumnType("varchar(255)");
b.Property<ushort?>("ExposureMethod")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("ExposureProgram")
.HasColumnType("smallint unsigned");
b.Property<double?>("ExposureTime")
.HasColumnType("double");
b.Property<ushort?>("Flash")
.HasColumnType("smallint unsigned");
b.Property<double?>("Focal")
.HasColumnType("double");
b.Property<double?>("FocalLength")
.HasColumnType("double");
b.Property<double?>("FocalLengthEquivalent")
.HasColumnType("double");
b.Property<double?>("HorizontalResolution")
.HasColumnType("double");
b.Property<ushort?>("IsoRating")
.HasColumnType("smallint unsigned");
b.Property<string>("Lens")
.HasColumnType("varchar(255)");
b.Property<int>("LicenseId")
.HasColumnType("int");
b.Property<ushort?>("LightSource")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("MeteringMode")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Orientation")
.HasColumnType("smallint unsigned");
b.Property<string>("OriginalExtension")
.HasColumnType("longtext");
b.Property<int>("ProcessorId")
.HasColumnType("int(11)");
b.Property<ushort?>("ResolutionUnit")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Saturation")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("SceneCaptureType")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("SensingMethod")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Sharpness")
.HasColumnType("smallint unsigned");
b.Property<string>("SoftwareUsed")
.HasColumnType("varchar(255)");
b.Property<string>("Source")
.HasColumnType("longtext");
b.Property<ushort?>("SubjectDistanceRange")
.HasColumnType("smallint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<DateTime>("UploadDate")
.IsConcurrencyToken()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<double?>("VerticalResolution")
.HasColumnType("double");
b.Property<ushort?>("WhiteBalance")
.HasColumnType("smallint unsigned");
b.HasKey("Id");
b.HasIndex("Aperture");
b.HasIndex("Author");
b.HasIndex("CameraManufacturer");
b.HasIndex("CameraModel");
b.HasIndex("ColorSpace");
b.HasIndex("Contrast");
b.HasIndex("CreationDate");
b.HasIndex("DigitalZoomRatio");
b.HasIndex("ExifVersion");
b.HasIndex("ExposureMethod");
b.HasIndex("ExposureProgram");
b.HasIndex("ExposureTime");
b.HasIndex("Flash");
b.HasIndex("Focal");
b.HasIndex("FocalLength");
b.HasIndex("FocalLengthEquivalent");
b.HasIndex("HorizontalResolution");
b.HasIndex("IsoRating");
b.HasIndex("Lens");
b.HasIndex("LicenseId");
b.HasIndex("LightSource");
b.HasIndex("MeteringMode");
b.HasIndex("Orientation");
b.HasIndex("ProcessorId")
.HasDatabaseName("idx_processor_photos_processor");
b.HasIndex("ResolutionUnit");
b.HasIndex("Saturation");
b.HasIndex("SceneCaptureType");
b.HasIndex("SensingMethod");
b.HasIndex("Sharpness");
b.HasIndex("SoftwareUsed");
b.HasIndex("SubjectDistanceRange");
b.HasIndex("UploadDate");
b.HasIndex("UserId");
b.HasIndex("VerticalResolution");
b.HasIndex("WhiteBalance");
b.HasIndex("ProcessorId", "CreatedOn", "Id")
.HasDatabaseName("idx_processor_photos_processor_created");
b.ToTable("ProcessorPhotos");
});
modelBuilder.Entity("Marechai.Database.Models.ProcessorVideo", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("ProcessorId")
.HasColumnType("int(11)");
b.Property<string>("Provider")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<string>("Title")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VideoId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.HasKey("Id");
b.HasIndex("ProcessorId");
b.HasIndex("ProcessorId", "Provider", "VideoId")
.IsUnique();
b.ToTable("ProcessorVideos");
});
modelBuilder.Entity("Marechai.Database.Models.ProcessorsByMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint(20)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineId")
.HasColumnType("int(11)")
.HasColumnName("machine");
b.Property<int>("ProcessorId")
.HasColumnType("int(11)")
.HasColumnName("processor");
b.Property<float?>("Speed")
.HasColumnType("float")
.HasColumnName("speed");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MachineId")
.HasDatabaseName("idx_processors_by_machine_machine");
b.HasIndex("ProcessorId")
.HasDatabaseName("idx_processors_by_machine_processor");
b.HasIndex("Speed")
.HasDatabaseName("idx_processors_by_machine_speed");
b.ToTable("processors_by_machine", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.RankingDefinition", b =>
{
b.Property<uint>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<uint>("Id"));
b.Property<DateTime>("ComputedAt")
.HasColumnType("datetime(6)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<byte>("Dimension")
.HasColumnType("tinyint unsigned");
b.Property<long?>("DimensionId")
.HasColumnType("bigint");
b.Property<int>("EntryCount")
.HasColumnType("int");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Dimension", "DimensionId")
.IsUnique();
b.ToTable("RankingDefinitions");
});
modelBuilder.Entity("Marechai.Database.Models.RankingEntry", b =>
{
b.Property<uint>("RankingDefinitionId")
.HasColumnType("int unsigned");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<int>("Rank")
.HasColumnType("int");
b.Property<double>("Score")
.HasColumnType("double");
b.HasKey("RankingDefinitionId", "SoftwareId");
b.HasIndex("SoftwareId")
.HasDatabaseName("idx_ranking_entries_software");
b.HasIndex("RankingDefinitionId", "Rank")
.HasDatabaseName("idx_ranking_entries_definition_rank");
b.ToTable("RankingEntries");
});
modelBuilder.Entity("Marechai.Database.Models.RecommendedGpuBySoftwareRelease", b =>
{
b.Property<ulong>("ReleaseId")
.HasColumnType("bigint unsigned");
b.Property<int>("GpuId")
.HasColumnType("int(11)");
b.HasKey("ReleaseId", "GpuId");
b.HasIndex("GpuId");
b.ToTable("RecommendedGpuBySoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.Resolution", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<sbyte>("Chars")
.ValueGeneratedOnAdd()
.HasColumnType("tinyint(1)")
.HasDefaultValue((sbyte)0)
.HasColumnName("chars");
b.Property<long?>("Colors")
.HasColumnType("bigint(20)")
.HasColumnName("colors");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<bool>("Grayscale")
.HasColumnType("bit(1)");
b.Property<int>("Height")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("height")
.HasDefaultValueSql("'0'");
b.Property<long?>("Palette")
.HasColumnType("bigint(20)")
.HasColumnName("palette");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<int>("Width")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("width")
.HasDefaultValueSql("'0'");
b.HasKey("Id");
b.HasIndex("Colors")
.HasDatabaseName("idx_resolutions_colors");
b.HasIndex("Height")
.HasDatabaseName("idx_resolutions_height");
b.HasIndex("Palette")
.HasDatabaseName("idx_resolutions_palette");
b.HasIndex("Width")
.HasDatabaseName("idx_resolutions_width");
b.HasIndex("Width", "Height")
.HasDatabaseName("idx_resolutions_resolution");
b.HasIndex("Width", "Height", "Colors")
.HasDatabaseName("idx_resolutions_resolution_with_color");
b.HasIndex("Width", "Height", "Colors", "Palette")
.HasDatabaseName("idx_resolutions_resolution_with_color_and_palette");
b.ToTable("resolutions", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.ResolutionsByGpu", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint(20)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("GpuId")
.HasColumnType("int(11)")
.HasColumnName("gpu");
b.Property<int>("ResolutionId")
.HasColumnType("int(11)")
.HasColumnName("resolution");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("GpuId")
.HasDatabaseName("idx_resolutions_by_gpu_gpu");
b.HasIndex("ResolutionId")
.HasDatabaseName("idx_resolutions_by_gpu_resolution");
b.ToTable("resolutions_by_gpu", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.ResolutionsByScreen", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("ResolutionId")
.HasColumnType("int(11)");
b.Property<int>("ScreenId")
.HasColumnType("int");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("ResolutionId");
b.HasIndex("ScreenId");
b.ToTable("ResolutionsByScreen");
});
modelBuilder.Entity("Marechai.Database.Models.ReviewReport", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Explanation")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<bool>("IsResolved")
.HasColumnType("bit(1)");
b.Property<int>("Reason")
.HasColumnType("int");
b.Property<string>("ReporterId")
.HasColumnType("varchar(255)");
b.Property<string>("ResolvedByUserId")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("ResolvedOn")
.HasColumnType("datetime(6)");
b.Property<long>("ReviewId")
.HasColumnType("bigint");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("IsResolved");
b.HasIndex("ResolvedByUserId");
b.HasIndex("ReviewId");
b.HasIndex("ReporterId", "ReviewId")
.IsUnique();
b.ToTable("ReviewReports");
});
modelBuilder.Entity("Marechai.Database.Models.Screen", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<double>("Diagonal")
.HasColumnType("double");
b.Property<long?>("EffectiveColors")
.HasColumnType("bigint");
b.Property<double?>("Height")
.HasColumnType("double");
b.Property<int>("NativeResolutionId")
.HasColumnType("int(11)");
b.Property<string>("Type")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<double?>("Width")
.HasColumnType("double");
b.HasKey("Id");
b.HasIndex("Diagonal");
b.HasIndex("EffectiveColors");
b.HasIndex("Height");
b.HasIndex("NativeResolutionId");
b.HasIndex("Type");
b.HasIndex("Width");
b.ToTable("Screens");
});
modelBuilder.Entity("Marechai.Database.Models.ScreensByMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineId")
.HasColumnType("int(11)");
b.Property<int>("ScreenId")
.HasColumnType("int");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MachineId");
b.HasIndex("ScreenId");
b.ToTable("ScreensByMachine");
});
modelBuilder.Entity("Marechai.Database.Models.SearchEntry", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("AltName")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<int?>("CompanyId")
.HasColumnType("int");
b.Property<short?>("CountryId")
.HasColumnType("smallint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("DisplayName")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<long>("EntityId")
.HasColumnType("bigint");
b.Property<byte>("EntityType")
.HasColumnType("tinyint unsigned");
b.Property<bool>("HasImage")
.HasColumnType("bit(1)");
b.Property<byte?>("Kind")
.HasColumnType("tinyint unsigned");
b.Property<string>("NormalizedName")
.IsRequired()
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("Soundex")
.HasMaxLength(10)
.HasColumnType("varchar(10)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<int?>("Year")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("Soundex");
b.HasIndex("EntityType", "CompanyId");
b.HasIndex("EntityType", "CountryId");
b.HasIndex("EntityType", "EntityId")
.IsUnique();
b.HasIndex("EntityType", "Kind");
b.HasIndex("EntityType", "Year");
b.ToTable("SearchEntries", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.Software", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<ulong?>("BaseSoftwareId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong?>("FamilyId")
.HasColumnType("bigint unsigned");
b.Property<int>("Kind")
.HasColumnType("int");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<ulong?>("PredecessorId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("BaseSoftwareId");
b.HasIndex("FamilyId");
b.HasIndex("Name");
b.HasIndex("PredecessorId");
b.ToTable("Softwares");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareAttribute", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Category")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Key")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<ulong>("SoftwareReleaseId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("Value")
.IsRequired()
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.HasKey("Id");
b.HasIndex("SoftwareReleaseId", "Category", "Key");
b.ToTable("SoftwareAttributes");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareAttributeString", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Text")
.IsUnique()
.HasDatabaseName("idx_software_attribute_strings_text");
b.ToTable("SoftwareAttributeStrings");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareAttributeStringTranslation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<int>("StringId")
.HasColumnType("int");
b.Property<string>("Translation")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("StringId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_software_attribute_string_translations_string_language");
b.ToTable("SoftwareAttributeStringTranslations");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareBarcode", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<string>("Code")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<ulong>("ReleaseId")
.HasColumnType("bigint unsigned");
b.Property<byte>("Type")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Code")
.IsUnique();
b.HasIndex("ReleaseId");
b.ToTable("SoftwareBarcodes");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareBySoftwareRelease", b =>
{
b.Property<ulong>("ReleaseId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.HasKey("ReleaseId", "SoftwareId");
b.HasIndex("SoftwareId");
b.ToTable("SoftwareBySoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareCompanyRole", b =>
{
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<int>("CompanyId")
.HasColumnType("int(11)");
b.Property<string>("RoleId")
.HasColumnType("char(3)");
b.HasKey("SoftwareId", "CompanyId", "RoleId");
b.HasIndex("CompanyId");
b.HasIndex("RoleId");
b.ToTable("SoftwareCompanyRoles");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareCover", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<string>("Caption")
.HasColumnType("longtext");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("GroupId")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("OriginalExtension")
.IsRequired()
.HasColumnType("longtext");
b.Property<ulong?>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<ulong?>("SoftwareReleaseId")
.HasColumnType("bigint unsigned");
b.Property<byte>("Type")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("GroupId");
b.HasIndex("SoftwareId");
b.HasIndex("SoftwareReleaseId");
b.HasIndex("Type", "SoftwareReleaseId")
.HasDatabaseName("idx_software_covers_type_release");
b.ToTable("SoftwareCovers");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareCoverCaptionTranslation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<string>("CaptionText")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<string>("Translation")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("CaptionText")
.HasDatabaseName("idx_software_cover_caption_translations_text");
b.HasIndex("LanguageCode");
b.HasIndex("CaptionText", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_software_cover_caption_translations_text_language");
b.ToTable("SoftwareCoverCaptionTranslations");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareCriticReview", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long>("MagazineId")
.HasColumnType("bigint");
b.Property<int?>("NormalizedScore")
.HasColumnType("int");
b.Property<float?>("OriginalScore")
.HasColumnType("float");
b.Property<float?>("OriginalScoreMaximum")
.HasColumnType("float");
b.Property<ulong?>("PlatformId")
.HasColumnType("bigint unsigned");
b.Property<DateTime?>("ReviewDate")
.HasColumnType("datetime(6)");
b.Property<byte>("ReviewDatePrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("ReviewText")
.HasColumnType("longtext");
b.Property<string>("ReviewUrl")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MagazineId");
b.HasIndex("PlatformId");
b.HasIndex("SoftwareId");
b.HasIndex("SoftwareId", "MagazineId", "PlatformId")
.IsUnique();
b.ToTable("SoftwareCriticReviews");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareDescription", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Html")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)")
.UseCollation("utf8mb4_general_ci");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("Text")
.HasAnnotation("MySql:FullTextIndex", true);
b.HasIndex("SoftwareId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_software_descriptions_software_language");
b.ToTable("SoftwareDescriptions");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareFamily", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("Introduced")
.HasColumnType("datetime(6)");
b.Property<byte>("IntroducedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<ulong?>("ParentId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Introduced");
b.HasIndex("Name");
b.HasIndex("ParentId");
b.ToTable("SoftwareFamilies");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareGenre", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<byte>("Type")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Name", "Type")
.IsUnique();
b.ToTable("SoftwareGenres");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareGenreTranslation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("GenreId")
.HasColumnType("int");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("GenreId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_software_genre_translations_genre_language");
b.ToTable("SoftwareGenreTranslations");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareOSCompatibility", b =>
{
b.Property<ulong>("SoftwareVersionId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("OSVersionId")
.HasColumnType("bigint unsigned");
b.HasKey("SoftwareVersionId", "OSVersionId");
b.HasIndex("OSVersionId");
b.ToTable("SoftwareOSCompatibility");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePlatform", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Name")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("SoftwarePlatforms");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePlatformsByMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint(20)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineId")
.HasColumnType("int(11)")
.HasColumnName("machine");
b.Property<ulong>("SoftwarePlatformId")
.HasColumnType("bigint(20) unsigned")
.HasColumnName("software_platform");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MachineId")
.HasDatabaseName("idx_software_platforms_by_machine_machine");
b.HasIndex("SoftwarePlatformId")
.HasDatabaseName("idx_software_platforms_by_machine_software_platform");
b.ToTable("software_platforms_by_machine", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareProductCode", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<string>("Code")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<byte>("Issuer")
.HasColumnType("tinyint unsigned");
b.Property<ulong>("ReleaseId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("ReleaseId");
b.HasIndex("Issuer", "Code")
.IsUnique();
b.ToTable("SoftwareProductCodes");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePromoArt", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<string>("Caption")
.HasColumnType("longtext");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("GroupId")
.HasColumnType("int");
b.Property<string>("OriginalExtension")
.IsRequired()
.HasColumnType("longtext");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("GroupId");
b.HasIndex("SoftwareId");
b.ToTable("SoftwarePromoArt");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePromoArtGroup", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("SoftwarePromoArtGroups");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePromoArtGroupTranslation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("GroupId")
.HasColumnType("int");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("GroupId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_software_promo_art_group_translations_group_language");
b.ToTable("SoftwarePromoArtGroupTranslations");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareRelease", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<bool>("IsCompilation")
.HasColumnType("bit(1)");
b.Property<ulong?>("PlatformId")
.HasColumnType("bigint unsigned");
b.Property<int>("PublisherId")
.HasColumnType("int(11)");
b.Property<DateTime?>("ReleaseDate")
.HasColumnType("datetime(6)");
b.Property<byte>("ReleaseDatePrecision")
.HasColumnType("tinyint unsigned");
b.Property<ulong?>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<ulong?>("SoftwareVersionId")
.HasColumnType("bigint unsigned");
b.Property<string>("Title")
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("PlatformId");
b.HasIndex("PublisherId");
b.HasIndex("SoftwareId");
b.HasIndex("SoftwareVersionId", "PlatformId");
b.ToTable("SoftwareReleases");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareRequirement", b =>
{
b.Property<ulong>("SoftwareVersionId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("RequiredSoftwareVersionId")
.HasColumnType("bigint unsigned");
b.Property<byte>("RequirementType")
.HasColumnType("tinyint unsigned");
b.HasKey("SoftwareVersionId", "RequiredSoftwareVersionId", "RequirementType");
b.HasIndex("RequiredSoftwareVersionId");
b.ToTable("SoftwareRequirements");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareRole", b =>
{
b.Property<string>("Id")
.HasColumnType("char(3)");
b.Property<bool>("Enabled")
.ValueGeneratedOnAdd()
.HasColumnType("bit(1)")
.HasDefaultValue(true);
b.Property<string>("Name")
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("Enabled");
b.HasIndex("Name");
b.ToTable("SoftwareRoles");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScore", b =>
{
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("ComputedAt")
.HasColumnType("datetime(6)");
b.Property<double?>("CriticAverage")
.HasColumnType("double");
b.Property<int>("CriticReviewCount")
.HasColumnType("int");
b.Property<int>("GlobalRank")
.HasColumnType("int");
b.Property<double>("Score")
.HasColumnType("double");
b.Property<int>("UserRatingCount")
.HasColumnType("int");
b.Property<double?>("UserStarAverage")
.HasColumnType("double");
b.HasKey("SoftwareId");
b.HasIndex("GlobalRank")
.HasDatabaseName("idx_software_scores_global_rank");
b.ToTable("SoftwareScores");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScreenshot", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<string>("Caption")
.HasColumnType("longtext");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int?>("GroupId")
.HasColumnType("int");
b.Property<string>("OriginalExtension")
.IsRequired()
.HasColumnType("longtext");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<ulong?>("SoftwarePlatformId")
.HasColumnType("bigint unsigned");
b.Property<ulong?>("SoftwareVersionId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("GroupId");
b.HasIndex("SoftwareId");
b.HasIndex("SoftwarePlatformId");
b.HasIndex("SoftwareVersionId");
b.ToTable("SoftwareScreenshots");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScreenshotCaptionTranslation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Caption")
.IsRequired()
.HasColumnType("longtext");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<Guid>("ScreenshotId")
.HasColumnType("char(36)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("ScreenshotId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_software_screenshot_caption_translations_screenshot_language");
b.ToTable("SoftwareScreenshotCaptionTranslations");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScreenshotGroup", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Name")
.IsUnique();
b.ToTable("SoftwareScreenshotGroups");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScreenshotGroupTranslation", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("GroupId")
.HasColumnType("int");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("GroupId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_software_screenshot_group_translations_group_language");
b.ToTable("SoftwareScreenshotGroupTranslations");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareUserRating", b =>
{
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<float>("Rating")
.HasColumnType("float");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("UserId", "SoftwareId");
b.HasIndex("SoftwareId");
b.ToTable("SoftwareUserRatings");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareUserReview", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<bool>("IsAnonymous")
.HasColumnType("bit(1)");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<string>("TheBad")
.HasColumnType("text");
b.Property<string>("TheGood")
.HasColumnType("text");
b.Property<string>("TheUgly")
.HasColumnType("text");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("SoftwareId");
b.HasIndex("UserId");
b.HasIndex("UserId", "SoftwareId")
.IsUnique();
b.ToTable("SoftwareUserReviews");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareUserReviewVote", b =>
{
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<long>("ReviewId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<bool>("IsUpvote")
.HasColumnType("bit(1)");
b.HasKey("UserId", "ReviewId");
b.HasIndex("ReviewId");
b.ToTable("SoftwareUserReviewVotes");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareVersion", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<string>("Codename")
.HasColumnType("longtext");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int?>("LicenseId")
.HasColumnType("int");
b.Property<ulong?>("ParentVersionId")
.HasColumnType("bigint unsigned");
b.Property<string>("PublicVersion")
.HasColumnType("longtext");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VersionString")
.IsRequired()
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("LicenseId");
b.HasIndex("ParentVersionId");
b.HasIndex("SoftwareId");
b.HasIndex("VersionString");
b.ToTable("SoftwareVersions");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareVersionBySoftwareRelease", b =>
{
b.Property<ulong>("ReleaseId")
.HasColumnType("bigint unsigned");
b.Property<ulong>("SoftwareVersionId")
.HasColumnType("bigint unsigned");
b.HasKey("ReleaseId", "SoftwareVersionId");
b.HasIndex("SoftwareVersionId");
b.ToTable("SoftwareVersionBySoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareVideo", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Provider")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<ulong>("SoftwareId")
.HasColumnType("bigint unsigned");
b.Property<string>("Title")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VideoId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.HasKey("Id");
b.HasIndex("SoftwareId");
b.HasIndex("SoftwareId", "Provider", "VideoId")
.IsUnique();
b.ToTable("SoftwareVideos");
});
modelBuilder.Entity("Marechai.Database.Models.SoundByMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint(20)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("MachineId")
.HasColumnType("int(11)")
.HasColumnName("machine");
b.Property<int>("SoundSynthId")
.HasColumnType("int(11)")
.HasColumnName("sound_synth");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("MachineId")
.HasDatabaseName("idx_sound_by_machine_machine");
b.HasIndex("SoundSynthId")
.HasDatabaseName("idx_sound_by_machine_sound_synth");
b.ToTable("sound_by_machine", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynth", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<int?>("CompanyId")
.HasColumnType("int(11)")
.HasColumnName("company");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int?>("Depth")
.HasColumnType("int(11)")
.HasColumnName("depth");
b.Property<double?>("Frequency")
.HasColumnType("double")
.HasColumnName("frequency");
b.Property<DateTime?>("Introduced")
.HasColumnType("datetime")
.HasColumnName("introduced");
b.Property<byte>("IntroducedPrecision")
.HasColumnType("tinyint unsigned");
b.Property<string>("ModelCode")
.HasMaxLength(45)
.HasColumnType("varchar(45)")
.HasColumnName("model_code");
b.Property<string>("Name")
.IsRequired()
.ValueGeneratedOnAdd()
.HasMaxLength(50)
.HasColumnType("char(50)")
.HasColumnName("name")
.HasDefaultValueSql("''");
b.Property<int?>("SquareWave")
.HasColumnType("int(11)")
.HasColumnName("square_wave");
b.Property<int?>("Type")
.HasColumnType("int(11)")
.HasColumnName("type");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<int?>("Voices")
.HasColumnType("int(11)")
.HasColumnName("voices");
b.Property<int?>("WhiteNoise")
.HasColumnType("int(11)")
.HasColumnName("white_noise");
b.HasKey("Id");
b.HasIndex("CompanyId")
.HasDatabaseName("idx_sound_synths_company");
b.HasIndex("Depth")
.HasDatabaseName("idx_sound_synths_depth");
b.HasIndex("Frequency")
.HasDatabaseName("idx_sound_synths_frequency");
b.HasIndex("Introduced")
.HasDatabaseName("idx_sound_synths_introduced");
b.HasIndex("ModelCode")
.HasDatabaseName("idx_sound_synths_model_code");
b.HasIndex("Name")
.HasDatabaseName("idx_sound_synths_name");
b.HasIndex("SquareWave")
.HasDatabaseName("idx_sound_synths_square_wave");
b.HasIndex("Type")
.HasDatabaseName("idx_sound_synths_type");
b.HasIndex("Voices")
.HasDatabaseName("idx_sound_synths_voices");
b.HasIndex("WhiteNoise")
.HasDatabaseName("idx_sound_synths_white_noise");
b.ToTable("sound_synths", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynthBySoftwareRelease", b =>
{
b.Property<ulong>("ReleaseId")
.HasColumnType("bigint unsigned");
b.Property<int>("SoundSynthId")
.HasColumnType("int(11)");
b.HasKey("ReleaseId", "SoundSynthId");
b.HasIndex("SoundSynthId");
b.ToTable("SoundSynthBySoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynthDescription", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Html")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("LanguageCode")
.IsRequired()
.HasMaxLength(3)
.HasColumnType("char(3)")
.UseCollation("utf8mb4_general_ci");
b.Property<int>("SoundSynthId")
.HasColumnType("int(11)");
b.Property<string>("Text")
.IsRequired()
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("LanguageCode");
b.HasIndex("Text")
.HasAnnotation("MySql:FullTextIndex", true);
b.HasIndex("SoundSynthId", "LanguageCode")
.IsUnique()
.HasDatabaseName("idx_sound_synth_descriptions_sound_synth_language");
b.ToTable("SoundSynthDescriptions");
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynthPhoto", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property<double?>("Aperture")
.HasColumnType("double");
b.Property<string>("Author")
.HasColumnType("varchar(255)");
b.Property<string>("CameraManufacturer")
.HasColumnType("varchar(255)");
b.Property<string>("CameraModel")
.HasColumnType("varchar(255)");
b.Property<ushort?>("ColorSpace")
.HasColumnType("smallint unsigned");
b.Property<string>("Comments")
.HasColumnType("longtext");
b.Property<ushort?>("Contrast")
.HasColumnType("smallint unsigned");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("CreationDate")
.HasColumnType("datetime(6)");
b.Property<double?>("DigitalZoomRatio")
.HasColumnType("double");
b.Property<string>("ExifVersion")
.HasColumnType("varchar(255)");
b.Property<ushort?>("ExposureMethod")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("ExposureProgram")
.HasColumnType("smallint unsigned");
b.Property<double?>("ExposureTime")
.HasColumnType("double");
b.Property<ushort?>("Flash")
.HasColumnType("smallint unsigned");
b.Property<double?>("Focal")
.HasColumnType("double");
b.Property<double?>("FocalLength")
.HasColumnType("double");
b.Property<double?>("FocalLengthEquivalent")
.HasColumnType("double");
b.Property<double?>("HorizontalResolution")
.HasColumnType("double");
b.Property<ushort?>("IsoRating")
.HasColumnType("smallint unsigned");
b.Property<string>("Lens")
.HasColumnType("varchar(255)");
b.Property<int>("LicenseId")
.HasColumnType("int");
b.Property<ushort?>("LightSource")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("MeteringMode")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Orientation")
.HasColumnType("smallint unsigned");
b.Property<string>("OriginalExtension")
.HasColumnType("longtext");
b.Property<ushort?>("ResolutionUnit")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Saturation")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("SceneCaptureType")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("SensingMethod")
.HasColumnType("smallint unsigned");
b.Property<ushort?>("Sharpness")
.HasColumnType("smallint unsigned");
b.Property<string>("SoftwareUsed")
.HasColumnType("varchar(255)");
b.Property<int>("SoundSynthId")
.HasColumnType("int(11)");
b.Property<string>("Source")
.HasColumnType("longtext");
b.Property<ushort?>("SubjectDistanceRange")
.HasColumnType("smallint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<DateTime>("UploadDate")
.IsConcurrencyToken()
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<double?>("VerticalResolution")
.HasColumnType("double");
b.Property<ushort?>("WhiteBalance")
.HasColumnType("smallint unsigned");
b.HasKey("Id");
b.HasIndex("Aperture");
b.HasIndex("Author");
b.HasIndex("CameraManufacturer");
b.HasIndex("CameraModel");
b.HasIndex("ColorSpace");
b.HasIndex("Contrast");
b.HasIndex("CreationDate");
b.HasIndex("DigitalZoomRatio");
b.HasIndex("ExifVersion");
b.HasIndex("ExposureMethod");
b.HasIndex("ExposureProgram");
b.HasIndex("ExposureTime");
b.HasIndex("Flash");
b.HasIndex("Focal");
b.HasIndex("FocalLength");
b.HasIndex("FocalLengthEquivalent");
b.HasIndex("HorizontalResolution");
b.HasIndex("IsoRating");
b.HasIndex("Lens");
b.HasIndex("LicenseId");
b.HasIndex("LightSource");
b.HasIndex("MeteringMode");
b.HasIndex("Orientation");
b.HasIndex("ResolutionUnit");
b.HasIndex("Saturation");
b.HasIndex("SceneCaptureType");
b.HasIndex("SensingMethod");
b.HasIndex("Sharpness");
b.HasIndex("SoftwareUsed");
b.HasIndex("SoundSynthId")
.HasDatabaseName("idx_sound_synth_photos_sound_synth");
b.HasIndex("SubjectDistanceRange");
b.HasIndex("UploadDate");
b.HasIndex("UserId");
b.HasIndex("VerticalResolution");
b.HasIndex("WhiteBalance");
b.HasIndex("SoundSynthId", "CreatedOn", "Id")
.HasDatabaseName("idx_sound_synth_photos_sound_synth_created");
b.ToTable("SoundSynthPhotos");
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynthVideo", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Provider")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<int>("SoundSynthId")
.HasColumnType("int(11)");
b.Property<string>("Title")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VideoId")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.HasKey("Id");
b.HasIndex("SoundSynthId");
b.HasIndex("SoundSynthId", "Provider", "VideoId")
.IsUnique();
b.ToTable("SoundSynthVideos");
});
modelBuilder.Entity("Marechai.Database.Models.StandaloneFile", b =>
{
b.Property<ulong>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint unsigned");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("Id"));
b.Property<DateTime?>("AccessDate")
.HasColumnType("datetime(6)");
b.Property<ulong>("Attributes")
.HasColumnType("bigint unsigned");
b.Property<DateTime?>("BackupDate")
.HasColumnType("datetime(6)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("CreationDate")
.HasColumnType("datetime(6)");
b.Property<uint?>("DeviceNumber")
.HasColumnType("int unsigned");
b.Property<ulong?>("GroupId")
.HasColumnType("bigint unsigned");
b.Property<ulong?>("Inode")
.HasColumnType("bigint unsigned");
b.Property<bool>("IsDirectory")
.HasColumnType("bit(1)");
b.Property<DateTime?>("LastWriteDate")
.HasColumnType("datetime(6)");
b.Property<ulong?>("Links")
.HasColumnType("bigint unsigned");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(255)
.HasColumnType("varchar(255)");
b.Property<string>("Path")
.IsRequired()
.HasMaxLength(8192)
.HasColumnType("varchar(8192)");
b.Property<string>("PathSeparator")
.IsRequired()
.HasColumnType("varchar(1)");
b.Property<ushort?>("PosixMode")
.HasColumnType("smallint unsigned");
b.Property<ulong>("SoftwareReleaseId")
.HasColumnType("bigint unsigned");
b.Property<DateTime?>("StatusChangeDate")
.HasColumnType("datetime(6)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<ulong?>("UserId")
.HasColumnType("bigint unsigned");
b.HasKey("Id");
b.HasIndex("AccessDate");
b.HasIndex("BackupDate");
b.HasIndex("CreationDate");
b.HasIndex("GroupId");
b.HasIndex("IsDirectory");
b.HasIndex("LastWriteDate");
b.HasIndex("Name");
b.HasIndex("Path");
b.HasIndex("SoftwareReleaseId");
b.HasIndex("StatusChangeDate");
b.HasIndex("UserId");
b.ToTable("StandaloneFiles");
});
modelBuilder.Entity("Marechai.Database.Models.StorageByMachine", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint(20)")
.HasColumnName("id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long?>("Capacity")
.HasColumnType("bigint(20)")
.HasColumnName("capacity");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<int>("Interface")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasDefaultValue(0)
.HasColumnName("interface");
b.Property<int>("MachineId")
.HasColumnType("int(11)")
.HasColumnName("machine");
b.Property<int>("Type")
.ValueGeneratedOnAdd()
.HasColumnType("int(11)")
.HasDefaultValue(0)
.HasColumnName("type");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("Capacity")
.HasDatabaseName("idx_storage_capacity");
b.HasIndex("Interface")
.HasDatabaseName("idx_storage_interface");
b.HasIndex("MachineId")
.HasDatabaseName("idx_storage_machine");
b.HasIndex("Type")
.HasDatabaseName("idx_storage_type");
b.ToTable("storage_by_machine", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.Suggestion", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("AdminReviewComment")
.HasMaxLength(2000)
.HasColumnType("varchar(2000)");
b.Property<string>("AppliedFields")
.HasColumnType("json");
b.Property<string>("CreatedById")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<long?>("EntityId")
.HasColumnType("bigint");
b.Property<byte>("EntityType")
.HasColumnType("tinyint unsigned");
b.Property<string>("ReviewedById")
.HasColumnType("varchar(255)");
b.Property<DateTime?>("ReviewedOn")
.HasColumnType("datetime(6)");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<string>("Subkey")
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<string>("SuggestedValues")
.HasColumnType("json");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("UserComment")
.HasMaxLength(2000)
.HasColumnType("varchar(2000)");
b.HasKey("Id");
b.HasIndex("CreatedById");
b.HasIndex("ReviewedById");
b.HasIndex("Status", "CreatedOn");
b.HasIndex("EntityType", "EntityId", "Subkey", "Status");
b.ToTable("Suggestions", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.UnM49", b =>
{
b.Property<short>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("smallint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<short>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<short?>("ParentId")
.HasColumnType("smallint");
b.Property<byte>("Type")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("ParentId");
b.HasIndex("Type");
b.ToTable("UnM49");
});
modelBuilder.Entity("Marechai.Database.Models.UnM49BySoftwareRelease", b =>
{
b.Property<ulong>("SoftwareReleaseId")
.HasColumnType("bigint unsigned");
b.Property<short>("UnM49Id")
.HasColumnType("smallint");
b.HasKey("SoftwareReleaseId", "UnM49Id");
b.HasIndex("UnM49Id");
b.ToTable("UnM49BySoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.WwpcCategory", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<DateTime?>("LastCrawledOn")
.HasColumnType("datetime(6)");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<byte>("ProductType")
.HasColumnType("tinyint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.HasKey("Id");
b.HasIndex("ProductType", "Name")
.IsUnique();
b.ToTable("WwpcCategories");
});
modelBuilder.Entity("Marechai.Database.Models.WwpcScreenshot", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Caption")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<DateTime>("CrawledOn")
.HasColumnType("datetime(6)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("ImageUrl")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<bool>("IsEnabledByDefault")
.HasColumnType("bit(1)");
b.Property<string>("MajorRelease")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<Guid?>("PromotedSoftwareScreenshotId")
.HasColumnType("char(36)");
b.Property<string>("SourceUrl")
.IsRequired()
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<ulong?>("SuggestedSoftwarePlatformId")
.HasColumnType("bigint unsigned");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<long>("WwpcSoftwareId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("SourceUrl")
.IsUnique();
b.HasIndex("WwpcSoftwareId");
b.ToTable("WwpcScreenshots");
});
modelBuilder.Entity("Marechai.Database.Models.WwpcSoftware", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CrawledOn")
.HasColumnType("datetime(6)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("EnglishDescriptionMuseum")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("LastError")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<int>("MuseumDescriptionPromptVersion")
.HasColumnType("int");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<string>("PlatformsCsv")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<byte>("ProductType")
.HasColumnType("tinyint unsigned");
b.Property<ulong?>("PromotedSoftwareId")
.HasColumnType("bigint unsigned");
b.Property<string>("RawCategoriesCsv")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("RawDescription")
.HasMaxLength(262144)
.HasColumnType("longtext");
b.Property<string>("ReleaseDateText")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("ReviewedBy")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<DateTime?>("ReviewedOn")
.HasColumnType("datetime(6)");
b.Property<string>("Slug")
.IsRequired()
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.Property<string>("SourceUrl")
.IsRequired()
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<byte>("Status")
.HasColumnType("tinyint unsigned");
b.Property<string>("SuggestedGenreIdsJson")
.HasMaxLength(4096)
.HasColumnType("varchar(4096)");
b.Property<int?>("SuggestedVendorCompanyId")
.HasColumnType("int");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("UserInterface")
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<string>("VendorName")
.HasMaxLength(512)
.HasColumnType("varchar(512)");
b.Property<string>("VendorUrl")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<int?>("WwpcCategoryId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProductType");
b.HasIndex("Slug");
b.HasIndex("SourceUrl")
.IsUnique();
b.HasIndex("Status");
b.HasIndex("SuggestedVendorCompanyId");
b.HasIndex("WwpcCategoryId");
b.ToTable("WwpcSoftwares");
});
modelBuilder.Entity("Marechai.Database.Models.WwpcVersion", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Architecture")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<DateTime>("CreatedOn")
.ValueGeneratedOnAdd()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<DateTime>("CreatedOn"));
b.Property<string>("DownloadUrl")
.HasMaxLength(2048)
.HasColumnType("varchar(2048)");
b.Property<bool>("IsEnabledByDefault")
.HasColumnType("bit(1)");
b.Property<string>("Language")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("MajorRelease")
.IsRequired()
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("MajorReleaseUrl")
.HasMaxLength(1024)
.HasColumnType("varchar(1024)");
b.Property<string>("MediaKind")
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<ulong?>("PromotedSoftwareVersionId")
.HasColumnType("bigint unsigned");
b.Property<string>("SizeText")
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property<DateTime>("UpdatedOn")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("datetime(6)");
MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property<DateTime>("UpdatedOn"));
b.Property<string>("VersionString")
.IsRequired()
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<long>("WwpcSoftwareId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("WwpcSoftwareId");
b.HasIndex("WwpcSoftwareId", "MajorRelease", "VersionString");
b.ToTable("WwpcVersions");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<string>("ClaimType")
.HasColumnType("longtext");
b.Property<string>("ClaimValue")
.HasColumnType("longtext");
b.Property<string>("RoleId")
.IsRequired()
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("RoleId");
b.ToTable("AspNetRoleClaims", (string)null);
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
b.Property<string>("ClaimType")
.HasColumnType("longtext");
b.Property<string>("ClaimValue")
.HasColumnType("longtext");
b.Property<string>("UserId")
.IsRequired()
.HasColumnType("varchar(255)");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("AspNetUserClaims", (string)null);
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
{
b.Property<string>("LoginProvider")
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<string>("ProviderKey")
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<string>("ProviderDisplayName")
.HasColumnType("longtext");
b.Property<string>("UserId")
.IsRequired()
.HasColumnType("varchar(255)");
b.HasKey("LoginProvider", "ProviderKey");
b.HasIndex("UserId");
b.ToTable("AspNetUserLogins", (string)null);
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
{
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<string>("RoleId")
.HasColumnType("varchar(255)");
b.HasKey("UserId", "RoleId");
b.HasIndex("RoleId");
b.ToTable("AspNetUserRoles", (string)null);
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
{
b.Property<string>("UserId")
.HasColumnType("varchar(255)");
b.Property<string>("LoginProvider")
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<string>("Name")
.HasMaxLength(128)
.HasColumnType("varchar(128)");
b.Property<string>("Value")
.HasColumnType("longtext");
b.HasKey("UserId", "LoginProvider", "Name");
b.ToTable("AspNetUserTokens", (string)null);
});
modelBuilder.Entity("Marechai.Database.Models.Audit", b =>
{
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.Book", b =>
{
b.HasOne("Marechai.Database.Models.Iso31661Numeric", "Country")
.WithMany("Books")
.HasForeignKey("CountryId");
b.HasOne("Marechai.Database.Models.Book", "Previous")
.WithOne("Next")
.HasForeignKey("Marechai.Database.Models.Book", "PreviousId");
b.HasOne("Marechai.Database.Models.Book", "Source")
.WithMany("Derivates")
.HasForeignKey("SourceId");
b.Navigation("Country");
b.Navigation("Previous");
b.Navigation("Source");
});
modelBuilder.Entity("Marechai.Database.Models.BookSynopsis", b =>
{
b.HasOne("Marechai.Database.Models.Book", "Book")
.WithMany("Synopses")
.HasForeignKey("BookId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_book_synopses_language");
b.Navigation("Book");
b.Navigation("Language");
});
modelBuilder.Entity("Marechai.Database.Models.BooksByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Book", "Book")
.WithMany("Machines")
.HasForeignKey("BookId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Books")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Book");
b.Navigation("Machine");
});
modelBuilder.Entity("Marechai.Database.Models.BooksByMachineFamily", b =>
{
b.HasOne("Marechai.Database.Models.Book", "Book")
.WithMany("MachineFamilies")
.HasForeignKey("BookId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.MachineFamily", "MachineFamily")
.WithMany("Books")
.HasForeignKey("MachineFamilyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Book");
b.Navigation("MachineFamily");
});
modelBuilder.Entity("Marechai.Database.Models.CollectedBook", b =>
{
b.HasOne("Marechai.Database.Models.Book", "Book")
.WithMany("CollectedBy")
.HasForeignKey("BookId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("CollectedBooks")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Book");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.CollectedDocument", b =>
{
b.HasOne("Marechai.Database.Models.Document", "Document")
.WithMany("CollectedBy")
.HasForeignKey("DocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("CollectedDocuments")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Document");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.CollectedMagazineIssue", b =>
{
b.HasOne("Marechai.Database.Models.MagazineIssue", "MagazineIssue")
.WithMany("CollectedBy")
.HasForeignKey("MagazineIssueId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("CollectedMagazineIssues")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("MagazineIssue");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.CollectedSoftwareRelease", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareRelease", "SoftwareRelease")
.WithMany("CollectedBy")
.HasForeignKey("SoftwareReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("CollectedSoftwareReleases")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("SoftwareRelease");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.CompaniesByBook", b =>
{
b.HasOne("Marechai.Database.Models.Book", "Book")
.WithMany("Companies")
.HasForeignKey("BookId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("Books")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.DocumentRole", "Role")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Book");
b.Navigation("Company");
b.Navigation("Role");
});
modelBuilder.Entity("Marechai.Database.Models.CompaniesByDocument", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("Documents")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Document", "Document")
.WithMany("Companies")
.HasForeignKey("DocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.DocumentRole", "Role")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Company");
b.Navigation("Document");
b.Navigation("Role");
});
modelBuilder.Entity("Marechai.Database.Models.CompaniesByMagazine", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("Magazines")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Magazine", "Magazine")
.WithMany("Companies")
.HasForeignKey("MagazineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.DocumentRole", "Role")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Company");
b.Navigation("Magazine");
b.Navigation("Role");
});
modelBuilder.Entity("Marechai.Database.Models.Company", b =>
{
b.HasOne("Marechai.Database.Models.Iso31661Numeric", "Country")
.WithMany("Companies")
.HasForeignKey("CountryId")
.HasConstraintName("fk_companies_country");
b.HasOne("Marechai.Database.Models.Company", "SoldTo")
.WithMany("InverseSoldToNavigation")
.HasForeignKey("SoldToId")
.HasConstraintName("fk_companies_sold_to");
b.Navigation("Country");
b.Navigation("SoldTo");
});
modelBuilder.Entity("Marechai.Database.Models.CompanyBySoftwareFamily", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("SoftwareFamilies2")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareRole", "Role")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareFamily", "SoftwareFamily")
.WithMany("Companies")
.HasForeignKey("SoftwareFamilyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Company");
b.Navigation("Role");
b.Navigation("SoftwareFamily");
});
modelBuilder.Entity("Marechai.Database.Models.CompanyBySoftwareVersion", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("SoftwareVersions")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareRole", "Role")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareVersion", "SoftwareVersion")
.WithMany("Companies")
.HasForeignKey("SoftwareVersionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Company");
b.Navigation("Role");
b.Navigation("SoftwareVersion");
});
modelBuilder.Entity("Marechai.Database.Models.CompanyDescription", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("Descriptions")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_company_descriptions_language");
b.Navigation("Company");
b.Navigation("Language");
});
modelBuilder.Entity("Marechai.Database.Models.CompanyLogo", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("Logos")
.HasForeignKey("CompanyId")
.IsRequired()
.HasConstraintName("fk_company_logos_company1");
b.Navigation("Company");
});
modelBuilder.Entity("Marechai.Database.Models.ConversationParticipant", b =>
{
b.HasOne("Marechai.Database.Models.Conversation", "Conversation")
.WithMany("Participants")
.HasForeignKey("ConversationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Conversation");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.CurrencyInflation", b =>
{
b.HasOne("Marechai.Database.Models.Iso4217", "Currency")
.WithMany()
.HasForeignKey("CurrencyCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Currency");
});
modelBuilder.Entity("Marechai.Database.Models.CurrencyPegging", b =>
{
b.HasOne("Marechai.Database.Models.Iso4217", "Destination")
.WithMany()
.HasForeignKey("DestinationCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Iso4217", "Source")
.WithMany()
.HasForeignKey("SourceCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Destination");
b.Navigation("Source");
});
modelBuilder.Entity("Marechai.Database.Models.Document", b =>
{
b.HasOne("Marechai.Database.Models.Iso31661Numeric", "Country")
.WithMany("Documents")
.HasForeignKey("CountryId");
b.Navigation("Country");
});
modelBuilder.Entity("Marechai.Database.Models.DocumentSynopsis", b =>
{
b.HasOne("Marechai.Database.Models.Document", "Document")
.WithMany("Synopses")
.HasForeignKey("DocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_document_synopses_language");
b.Navigation("Document");
b.Navigation("Language");
});
modelBuilder.Entity("Marechai.Database.Models.DocumentsByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Document", "Document")
.WithMany("Machines")
.HasForeignKey("DocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Documents")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Document");
b.Navigation("Machine");
});
modelBuilder.Entity("Marechai.Database.Models.DocumentsByMachineFamily", b =>
{
b.HasOne("Marechai.Database.Models.Document", "Document")
.WithMany("MachineFamilies")
.HasForeignKey("DocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.MachineFamily", "MachineFamily")
.WithMany("Documents")
.HasForeignKey("MachineFamilyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Document");
b.Navigation("MachineFamily");
});
modelBuilder.Entity("Marechai.Database.Models.Dump", b =>
{
b.HasOne("Marechai.Database.Models.MediaDump", "MediaDump")
.WithMany("Dumps")
.HasForeignKey("MediaDumpId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Media", "Media")
.WithMany("Dumps")
.HasForeignKey("MediaId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("Dumps")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("Media");
b.Navigation("MediaDump");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.DumpHardware", b =>
{
b.HasOne("Marechai.Database.Models.Dump", "Dump")
.WithMany("DumpHardware")
.HasForeignKey("DumpId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Dump");
});
modelBuilder.Entity("Marechai.Database.Models.FileDataStream", b =>
{
b.HasOne("Marechai.Database.Models.DbFile", "File")
.WithMany()
.HasForeignKey("FileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("File");
});
modelBuilder.Entity("Marechai.Database.Models.FileDataStreamsByMediaFile", b =>
{
b.HasOne("Marechai.Database.Models.FileDataStream", "FileDataStream")
.WithMany()
.HasForeignKey("FileDataStreamId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.MediaFile", "MediaFile")
.WithMany("DataStreams")
.HasForeignKey("MediaFileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("FileDataStream");
b.Navigation("MediaFile");
});
modelBuilder.Entity("Marechai.Database.Models.FileDataStreamsByStandaloneFile", b =>
{
b.HasOne("Marechai.Database.Models.FileDataStream", "FileDataStream")
.WithMany()
.HasForeignKey("FileDataStreamId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.StandaloneFile", "StandaloneFile")
.WithMany("DataStreams")
.HasForeignKey("StandaloneFileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("FileDataStream");
b.Navigation("StandaloneFile");
});
modelBuilder.Entity("Marechai.Database.Models.FilesByFilesystem", b =>
{
b.HasOne("Marechai.Database.Models.MediaFile", "File")
.WithMany()
.HasForeignKey("FileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Filesystem", "Filesystem")
.WithMany("Files")
.HasForeignKey("FilesystemId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("File");
b.Navigation("Filesystem");
});
modelBuilder.Entity("Marechai.Database.Models.FilesystemsByLogicalPartition", b =>
{
b.HasOne("Marechai.Database.Models.Filesystem", "Filesystem")
.WithMany("Partitions")
.HasForeignKey("FilesystemId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.LogicalPartition", "Partition")
.WithMany("Filesystems")
.HasForeignKey("PartitionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Filesystem");
b.Navigation("Partition");
});
modelBuilder.Entity("Marechai.Database.Models.FilesystemsByMediaDumpFile", b =>
{
b.HasOne("Marechai.Database.Models.Filesystem", "Filesystem")
.WithMany("MediaDumpFileImages")
.HasForeignKey("FilesystemId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.MediaDumpFileImage", "MediaDumpFileImage")
.WithMany("Filesystems")
.HasForeignKey("MediaDumpFileImageId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Filesystem");
b.Navigation("MediaDumpFileImage");
});
modelBuilder.Entity("Marechai.Database.Models.GenreBySoftware", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareGenre", "Genre")
.WithMany("Softwares")
.HasForeignKey("GenreId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("Genres")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Genre");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.Gpu", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("Gpus")
.HasForeignKey("CompanyId")
.HasConstraintName("fk_gpus_company");
b.Navigation("Company");
});
modelBuilder.Entity("Marechai.Database.Models.GpuDescription", b =>
{
b.HasOne("Marechai.Database.Models.Gpu", "Gpu")
.WithMany("Descriptions")
.HasForeignKey("GpuId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_gpu_descriptions_language");
b.Navigation("Gpu");
b.Navigation("Language");
});
modelBuilder.Entity("Marechai.Database.Models.GpuPhoto", b =>
{
b.HasOne("Marechai.Database.Models.Gpu", "Gpu")
.WithMany("Photos")
.HasForeignKey("GpuId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.License", "License")
.WithMany()
.HasForeignKey("LicenseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("Gpu");
b.Navigation("License");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.GpuVideo", b =>
{
b.HasOne("Marechai.Database.Models.Gpu", "Gpu")
.WithMany("Videos")
.HasForeignKey("GpuId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Gpu");
});
modelBuilder.Entity("Marechai.Database.Models.GpusByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Gpu", "Gpu")
.WithMany("GpusByMachine")
.HasForeignKey("GpuId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_gpus_by_machine_gpu");
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Gpus")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_gpus_by_machine_machine");
b.Navigation("Gpu");
b.Navigation("Machine");
});
modelBuilder.Entity("Marechai.Database.Models.InstructionSetExtensionsByProcessor", b =>
{
b.HasOne("Marechai.Database.Models.InstructionSetExtension", "Extension")
.WithMany("InstructionSetExtensionsByProcessor")
.HasForeignKey("ExtensionId")
.IsRequired()
.HasConstraintName("fk_extension_extension_id");
b.HasOne("Marechai.Database.Models.Processor", "Processor")
.WithMany("InstructionSetExtensions")
.HasForeignKey("ProcessorId")
.IsRequired()
.HasConstraintName("fk_extension_processor_id");
b.Navigation("Extension");
b.Navigation("Processor");
});
modelBuilder.Entity("Marechai.Database.Models.InvitationCode", b =>
{
b.HasOne("Marechai.Database.Models.ApplicationUser", "CreatedBy")
.WithMany()
.HasForeignKey("CreatedById")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "UsedBy")
.WithMany()
.HasForeignKey("UsedById")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("CreatedBy");
b.Navigation("UsedBy");
});
modelBuilder.Entity("Marechai.Database.Models.LanguageBySoftwareRelease", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareRelease", "SoftwareRelease")
.WithMany("Languages")
.HasForeignKey("SoftwareReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Language");
b.Navigation("SoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.LogicalPartitionsByMedia", b =>
{
b.HasOne("Marechai.Database.Models.Media", "Media")
.WithMany("LogicalPartitions")
.HasForeignKey("MediaId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.LogicalPartition", "Partition")
.WithMany("Media")
.HasForeignKey("PartitionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Media");
b.Navigation("Partition");
});
modelBuilder.Entity("Marechai.Database.Models.Machine", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("Machines")
.HasForeignKey("CompanyId")
.IsRequired()
.HasConstraintName("fk_machines_company");
b.HasOne("Marechai.Database.Models.MachineFamily", "Family")
.WithMany("Machines")
.HasForeignKey("FamilyId")
.HasConstraintName("fk_machines_family");
b.Navigation("Company");
b.Navigation("Family");
});
modelBuilder.Entity("Marechai.Database.Models.MachineDescription", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_machine_descriptions_language");
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Descriptions")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Language");
b.Navigation("Machine");
});
modelBuilder.Entity("Marechai.Database.Models.MachineFamily", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("MachineFamilies")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_machine_families_company");
b.Navigation("Company");
});
modelBuilder.Entity("Marechai.Database.Models.MachinePhoto", b =>
{
b.HasOne("Marechai.Database.Models.License", "License")
.WithMany("Photos")
.HasForeignKey("LicenseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Photos")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("Photos")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("License");
b.Navigation("Machine");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.MachinePromoArt", b =>
{
b.HasOne("Marechai.Database.Models.SoftwarePromoArtGroup", "Group")
.WithMany()
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("PromoArt")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
b.Navigation("Machine");
});
modelBuilder.Entity("Marechai.Database.Models.MachineVideo", b =>
{
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Videos")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Machine");
});
modelBuilder.Entity("Marechai.Database.Models.Magazine", b =>
{
b.HasOne("Marechai.Database.Models.Iso31661Numeric", "Country")
.WithMany("Magazines")
.HasForeignKey("CountryId");
b.Navigation("Country");
});
modelBuilder.Entity("Marechai.Database.Models.MagazineIssue", b =>
{
b.HasOne("Marechai.Database.Models.Magazine", "Magazine")
.WithMany("Issues")
.HasForeignKey("MagazineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Magazine");
});
modelBuilder.Entity("Marechai.Database.Models.MagazineSynopsis", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_magazine_synopses_language");
b.HasOne("Marechai.Database.Models.Magazine", "Magazine")
.WithMany("Synopses")
.HasForeignKey("MagazineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Language");
b.Navigation("Magazine");
});
modelBuilder.Entity("Marechai.Database.Models.MagazinesByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Magazines")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.MagazineIssue", "Magazine")
.WithMany("Machines")
.HasForeignKey("MagazineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Machine");
b.Navigation("Magazine");
});
modelBuilder.Entity("Marechai.Database.Models.MagazinesByMachineFamily", b =>
{
b.HasOne("Marechai.Database.Models.MachineFamily", "MachineFamily")
.WithMany("Magazines")
.HasForeignKey("MachineFamilyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.MagazineIssue", "Magazine")
.WithMany("MachineFamilies")
.HasForeignKey("MagazineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("MachineFamily");
b.Navigation("Magazine");
});
modelBuilder.Entity("Marechai.Database.Models.MagazinesBySoftware", b =>
{
b.HasOne("Marechai.Database.Models.MagazineIssue", "Magazine")
.WithMany("Software")
.HasForeignKey("MagazineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("Magazines")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Magazine");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.MasteringText", b =>
{
b.HasOne("Marechai.Database.Models.Media", "Media")
.WithMany("MasteringTexts")
.HasForeignKey("MediaId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Media");
});
modelBuilder.Entity("Marechai.Database.Models.Media", b =>
{
b.HasOne("Marechai.Database.Models.MagazineIssue", "MagazineIssue")
.WithMany("Coverdiscs")
.HasForeignKey("MagazineIssueId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("MagazineIssue");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDump", b =>
{
b.HasOne("Marechai.Database.Models.Media", "Media")
.WithMany("MediaDumps")
.HasForeignKey("MediaId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Media");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpFileImage", b =>
{
b.HasOne("Marechai.Database.Models.MediaDump", "MediaDump")
.WithMany("Files")
.HasForeignKey("MediaDumpId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("MediaDump");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpImage", b =>
{
b.HasOne("Marechai.Database.Models.MediaDump", "MediaDump")
.WithOne("Image")
.HasForeignKey("Marechai.Database.Models.MediaDumpImage", "MediaDumpId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("MediaDump");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpSubchannelImage", b =>
{
b.HasOne("Marechai.Database.Models.MediaDump", "MediaDump")
.WithOne("Subchannel")
.HasForeignKey("Marechai.Database.Models.MediaDumpSubchannelImage", "MediaDumpId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("Marechai.Database.Models.MediaDumpTrackImage", "Track")
.WithOne("Subchannel")
.HasForeignKey("Marechai.Database.Models.MediaDumpSubchannelImage", "TrackId")
.OnDelete(DeleteBehavior.Cascade);
b.Navigation("MediaDump");
b.Navigation("Track");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpTrackImage", b =>
{
b.HasOne("Marechai.Database.Models.MediaDump", "MediaDump")
.WithMany("Tracks")
.HasForeignKey("MediaDumpId")
.OnDelete(DeleteBehavior.Cascade);
b.Navigation("MediaDump");
});
modelBuilder.Entity("Marechai.Database.Models.MediaTagDump", b =>
{
b.HasOne("Marechai.Database.Models.DbFile", "File")
.WithMany()
.HasForeignKey("FileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.MediaDump", "MediaDump")
.WithMany("Tags")
.HasForeignKey("MediaDumpId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("File");
b.Navigation("MediaDump");
});
modelBuilder.Entity("Marechai.Database.Models.MemoryByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Memory")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_memory_by_machine_machine");
b.Navigation("Machine");
});
modelBuilder.Entity("Marechai.Database.Models.Message", b =>
{
b.HasOne("Marechai.Database.Models.Conversation", "Conversation")
.WithMany("Messages")
.HasForeignKey("ConversationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Message", "ParentMessage")
.WithMany()
.HasForeignKey("ParentMessageId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.ApplicationUser", "Sender")
.WithMany()
.HasForeignKey("SenderId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("Conversation");
b.Navigation("ParentMessage");
b.Navigation("Sender");
});
modelBuilder.Entity("Marechai.Database.Models.MessageReport", b =>
{
b.HasOne("Marechai.Database.Models.Message", "Message")
.WithMany()
.HasForeignKey("MessageId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.ApplicationUser", "Reporter")
.WithMany()
.HasForeignKey("ReporterId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.ApplicationUser", "ResolvedBy")
.WithMany()
.HasForeignKey("ResolvedByUserId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("Message");
b.Navigation("Reporter");
b.Navigation("ResolvedBy");
});
modelBuilder.Entity("Marechai.Database.Models.MessageState", b =>
{
b.HasOne("Marechai.Database.Models.Message", "Message")
.WithMany("States")
.HasForeignKey("MessageId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Message");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.MinimumGpuBySoftwareRelease", b =>
{
b.HasOne("Marechai.Database.Models.Gpu", "Gpu")
.WithMany("MinimumForSoftwareReleases")
.HasForeignKey("GpuId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareRelease", "Release")
.WithMany("MinimumGpus")
.HasForeignKey("ReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Gpu");
b.Navigation("Release");
});
modelBuilder.Entity("Marechai.Database.Models.OldDosCategory", b =>
{
b.HasOne("Marechai.Database.Models.OldDosCategory", "Parent")
.WithMany("Children")
.HasForeignKey("ParentId")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("Parent");
});
modelBuilder.Entity("Marechai.Database.Models.OldDosOsPlatformMap", b =>
{
b.HasOne("Marechai.Database.Models.SoftwarePlatform", "SoftwarePlatform")
.WithMany()
.HasForeignKey("SoftwarePlatformId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("SoftwarePlatform");
});
modelBuilder.Entity("Marechai.Database.Models.OldDosSoftware", b =>
{
b.HasOne("Marechai.Database.Models.OldDosCategory", "OldDosCategory")
.WithMany("Softwares")
.HasForeignKey("OldDosCategoryId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("OldDosCategory");
});
modelBuilder.Entity("Marechai.Database.Models.OldDosVersion", b =>
{
b.HasOne("Marechai.Database.Models.OldDosSoftware", "OldDosSoftware")
.WithMany("Versions")
.HasForeignKey("OldDosSoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OldDosSoftware");
});
modelBuilder.Entity("Marechai.Database.Models.OwnedMachine", b =>
{
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany()
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("OwnedMachines")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade);
b.Navigation("Machine");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleByBook", b =>
{
b.HasOne("Marechai.Database.Models.Book", "Book")
.WithMany("People")
.HasForeignKey("BookId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Person", "Person")
.WithMany("Books")
.HasForeignKey("PersonId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.DocumentRole", "Role")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Book");
b.Navigation("Person");
b.Navigation("Role");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleByCompany", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("People")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Person", "Person")
.WithMany("Companies")
.HasForeignKey("PersonId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Company");
b.Navigation("Person");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleByDocument", b =>
{
b.HasOne("Marechai.Database.Models.Document", "Document")
.WithMany("People")
.HasForeignKey("DocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Person", "Person")
.WithMany("Documents")
.HasForeignKey("PersonId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.DocumentRole", "Role")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Document");
b.Navigation("Person");
b.Navigation("Role");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleByMagazine", b =>
{
b.HasOne("Marechai.Database.Models.MagazineIssue", "Magazine")
.WithMany("People")
.HasForeignKey("MagazineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Person", "Person")
.WithMany("Magazines")
.HasForeignKey("PersonId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.DocumentRole", "Role")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Magazine");
b.Navigation("Person");
b.Navigation("Role");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleBySoftware", b =>
{
b.HasOne("Marechai.Database.Models.Person", "Person")
.WithMany()
.HasForeignKey("PersonId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.DocumentRole", "DocumentRole")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("Credits")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DocumentRole");
b.Navigation("Person");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.PeopleBySoftwareRoleTranslation", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_people_by_software_role_translations_language");
b.Navigation("Language");
});
modelBuilder.Entity("Marechai.Database.Models.Person", b =>
{
b.HasOne("Marechai.Database.Models.Iso31661Numeric", "CountryOfBirth")
.WithMany("People")
.HasForeignKey("CountryOfBirthId");
b.Navigation("CountryOfBirth");
});
modelBuilder.Entity("Marechai.Database.Models.PersonDescription", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_person_descriptions_language");
b.HasOne("Marechai.Database.Models.Person", "Person")
.WithMany("Descriptions")
.HasForeignKey("PersonId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Language");
b.Navigation("Person");
});
modelBuilder.Entity("Marechai.Database.Models.Processor", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("Processors")
.HasForeignKey("CompanyId")
.HasConstraintName("fk_processors_company");
b.HasOne("Marechai.Database.Models.InstructionSet", "InstructionSet")
.WithMany("Processors")
.HasForeignKey("InstructionSetId")
.HasConstraintName("fk_processors_instruction_set");
b.Navigation("Company");
b.Navigation("InstructionSet");
});
modelBuilder.Entity("Marechai.Database.Models.ProcessorDescription", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_processor_descriptions_language");
b.HasOne("Marechai.Database.Models.Processor", "Processor")
.WithMany("Descriptions")
.HasForeignKey("ProcessorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Language");
b.Navigation("Processor");
});
modelBuilder.Entity("Marechai.Database.Models.ProcessorPhoto", b =>
{
b.HasOne("Marechai.Database.Models.License", "License")
.WithMany()
.HasForeignKey("LicenseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Processor", "Processor")
.WithMany("Photos")
.HasForeignKey("ProcessorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("License");
b.Navigation("Processor");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.ProcessorVideo", b =>
{
b.HasOne("Marechai.Database.Models.Processor", "Processor")
.WithMany("Videos")
.HasForeignKey("ProcessorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Processor");
});
modelBuilder.Entity("Marechai.Database.Models.ProcessorsByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Processors")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_processors_by_machine_machine");
b.HasOne("Marechai.Database.Models.Processor", "Processor")
.WithMany("ProcessorsByMachine")
.HasForeignKey("ProcessorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_processors_by_machine_processor");
b.Navigation("Machine");
b.Navigation("Processor");
});
modelBuilder.Entity("Marechai.Database.Models.RankingEntry", b =>
{
b.HasOne("Marechai.Database.Models.RankingDefinition", "RankingDefinition")
.WithMany("Entries")
.HasForeignKey("RankingDefinitionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany()
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RankingDefinition");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.RecommendedGpuBySoftwareRelease", b =>
{
b.HasOne("Marechai.Database.Models.Gpu", "Gpu")
.WithMany("RecommendedForSoftwareReleases")
.HasForeignKey("GpuId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareRelease", "Release")
.WithMany("RecommendedGpus")
.HasForeignKey("ReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Gpu");
b.Navigation("Release");
});
modelBuilder.Entity("Marechai.Database.Models.ResolutionsByGpu", b =>
{
b.HasOne("Marechai.Database.Models.Gpu", "Gpu")
.WithMany("ResolutionsByGpu")
.HasForeignKey("GpuId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_resolutions_by_gpu_gpu");
b.HasOne("Marechai.Database.Models.Resolution", "Resolution")
.WithMany("ResolutionsByGpu")
.HasForeignKey("ResolutionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_resolutions_by_gpu_resolution");
b.Navigation("Gpu");
b.Navigation("Resolution");
});
modelBuilder.Entity("Marechai.Database.Models.ResolutionsByScreen", b =>
{
b.HasOne("Marechai.Database.Models.Resolution", "Resolution")
.WithMany("ResolutionsByScreen")
.HasForeignKey("ResolutionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Screen", "Screen")
.WithMany("Resolutions")
.HasForeignKey("ScreenId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Resolution");
b.Navigation("Screen");
});
modelBuilder.Entity("Marechai.Database.Models.ReviewReport", b =>
{
b.HasOne("Marechai.Database.Models.ApplicationUser", "Reporter")
.WithMany("ReviewReports")
.HasForeignKey("ReporterId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.ApplicationUser", "ResolvedBy")
.WithMany()
.HasForeignKey("ResolvedByUserId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.SoftwareUserReview", "Review")
.WithMany("Reports")
.HasForeignKey("ReviewId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Reporter");
b.Navigation("ResolvedBy");
b.Navigation("Review");
});
modelBuilder.Entity("Marechai.Database.Models.Screen", b =>
{
b.HasOne("Marechai.Database.Models.Resolution", "NativeResolution")
.WithMany("Screens")
.HasForeignKey("NativeResolutionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("NativeResolution");
});
modelBuilder.Entity("Marechai.Database.Models.ScreensByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Screens")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Screen", "Screen")
.WithMany("ScreensByMachines")
.HasForeignKey("ScreenId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Machine");
b.Navigation("Screen");
});
modelBuilder.Entity("Marechai.Database.Models.Software", b =>
{
b.HasOne("Marechai.Database.Models.Software", "BaseSoftware")
.WithMany("Addons")
.HasForeignKey("BaseSoftwareId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.SoftwareFamily", "Family")
.WithMany("Softwares")
.HasForeignKey("FamilyId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.Software", "Predecessor")
.WithMany("Successors")
.HasForeignKey("PredecessorId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("BaseSoftware");
b.Navigation("Family");
b.Navigation("Predecessor");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareAttribute", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareRelease", "SoftwareRelease")
.WithMany("Attributes")
.HasForeignKey("SoftwareReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("SoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareAttributeStringTranslation", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_attribute_string_translations_language");
b.HasOne("Marechai.Database.Models.SoftwareAttributeString", "String")
.WithMany()
.HasForeignKey("StringId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_attribute_string_translations_string");
b.Navigation("Language");
b.Navigation("String");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareBarcode", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareRelease", "Release")
.WithMany("Barcodes")
.HasForeignKey("ReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Release");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareBySoftwareRelease", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareRelease", "Release")
.WithMany("IncludedSoftware")
.HasForeignKey("ReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("CompilationReleases")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Release");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareCompanyRole", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("SoftwareRoles")
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareRole", "Role")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("CompanyRoles")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Company");
b.Navigation("Role");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareCover", b =>
{
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("Covers")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade);
b.HasOne("Marechai.Database.Models.SoftwareRelease", "Release")
.WithMany("Covers")
.HasForeignKey("SoftwareReleaseId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("Release");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareCoverCaptionTranslation", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_cover_caption_translations_language");
b.Navigation("Language");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareCriticReview", b =>
{
b.HasOne("Marechai.Database.Models.Magazine", "Magazine")
.WithMany()
.HasForeignKey("MagazineId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwarePlatform", "Platform")
.WithMany()
.HasForeignKey("PlatformId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("CriticReviews")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Magazine");
b.Navigation("Platform");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareDescription", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_descriptions_language");
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("Descriptions")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Language");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareFamily", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareFamily", "Parent")
.WithMany("Children")
.HasForeignKey("ParentId")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("Parent");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareGenreTranslation", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareGenre", "Genre")
.WithMany()
.HasForeignKey("GenreId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_genre_translations_genre");
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_genre_translations_language");
b.Navigation("Genre");
b.Navigation("Language");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareOSCompatibility", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareVersion", "OSVersion")
.WithMany()
.HasForeignKey("OSVersionId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareVersion", "SoftwareVersion")
.WithMany("OSCompatibility")
.HasForeignKey("SoftwareVersionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OSVersion");
b.Navigation("SoftwareVersion");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePlatformsByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("SoftwarePlatforms")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_platforms_by_machine_machine");
b.HasOne("Marechai.Database.Models.SoftwarePlatform", "SoftwarePlatform")
.WithMany("Machines")
.HasForeignKey("SoftwarePlatformId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_platforms_by_machine_software_platform");
b.Navigation("Machine");
b.Navigation("SoftwarePlatform");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareProductCode", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareRelease", "Release")
.WithMany("ProductCodes")
.HasForeignKey("ReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Release");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePromoArt", b =>
{
b.HasOne("Marechai.Database.Models.SoftwarePromoArtGroup", "Group")
.WithMany("PromoArt")
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("PromoArt")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Group");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePromoArtGroupTranslation", b =>
{
b.HasOne("Marechai.Database.Models.SoftwarePromoArtGroup", "Group")
.WithMany()
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_promo_art_group_translations_group");
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_promo_art_group_translations_language");
b.Navigation("Group");
b.Navigation("Language");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareRelease", b =>
{
b.HasOne("Marechai.Database.Models.SoftwarePlatform", "Platform")
.WithMany("SoftwareReleases")
.HasForeignKey("PlatformId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.Company", "Publisher")
.WithMany("SoftwareReleases")
.HasForeignKey("PublisherId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("DirectReleases")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("Marechai.Database.Models.SoftwareVersion", "SoftwareVersion")
.WithMany("Releases")
.HasForeignKey("SoftwareVersionId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("Platform");
b.Navigation("Publisher");
b.Navigation("Software");
b.Navigation("SoftwareVersion");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareRequirement", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareVersion", "RequiredSoftwareVersion")
.WithMany()
.HasForeignKey("RequiredSoftwareVersionId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareVersion", "SoftwareVersion")
.WithMany("Requirements")
.HasForeignKey("SoftwareVersionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RequiredSoftwareVersion");
b.Navigation("SoftwareVersion");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScore", b =>
{
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany()
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScreenshot", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareScreenshotGroup", "Group")
.WithMany("Screenshots")
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.SetNull);
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("Screenshots")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwarePlatform", "Platform")
.WithMany("Screenshots")
.HasForeignKey("SoftwarePlatformId");
b.HasOne("Marechai.Database.Models.SoftwareVersion", "Version")
.WithMany("Screenshots")
.HasForeignKey("SoftwareVersionId");
b.Navigation("Group");
b.Navigation("Platform");
b.Navigation("Software");
b.Navigation("Version");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScreenshotCaptionTranslation", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_screenshot_caption_translations_language");
b.HasOne("Marechai.Database.Models.SoftwareScreenshot", "Screenshot")
.WithMany()
.HasForeignKey("ScreenshotId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_screenshot_caption_translations_screenshot");
b.Navigation("Language");
b.Navigation("Screenshot");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScreenshotGroupTranslation", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareScreenshotGroup", "Group")
.WithMany()
.HasForeignKey("GroupId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_screenshot_group_translations_group");
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_software_screenshot_group_translations_language");
b.Navigation("Group");
b.Navigation("Language");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareUserRating", b =>
{
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("UserRatings")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("SoftwareRatings")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Software");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareUserReview", b =>
{
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("UserReviews")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("SoftwareReviews")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("Software");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareUserReviewVote", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareUserReview", "Review")
.WithMany("Votes")
.HasForeignKey("ReviewId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany("ReviewVotes")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Review");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareVersion", b =>
{
b.HasOne("Marechai.Database.Models.License", "License")
.WithMany()
.HasForeignKey("LicenseId");
b.HasOne("Marechai.Database.Models.SoftwareVersion", "ParentVersion")
.WithMany("Children")
.HasForeignKey("ParentVersionId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("Versions")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("License");
b.Navigation("ParentVersion");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareVersionBySoftwareRelease", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareRelease", "Release")
.WithMany("IncludedVersions")
.HasForeignKey("ReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoftwareVersion", "SoftwareVersion")
.WithMany("CompilationReleases")
.HasForeignKey("SoftwareVersionId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Release");
b.Navigation("SoftwareVersion");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareVideo", b =>
{
b.HasOne("Marechai.Database.Models.Software", "Software")
.WithMany("Videos")
.HasForeignKey("SoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.SoundByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Sound")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_sound_by_machine_machine");
b.HasOne("Marechai.Database.Models.SoundSynth", "SoundSynth")
.WithMany("SoundByMachine")
.HasForeignKey("SoundSynthId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_sound_by_machine_sound_synth");
b.Navigation("Machine");
b.Navigation("SoundSynth");
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynth", b =>
{
b.HasOne("Marechai.Database.Models.Company", "Company")
.WithMany("SoundSynths")
.HasForeignKey("CompanyId")
.HasConstraintName("fk_sound_synths_company");
b.Navigation("Company");
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynthBySoftwareRelease", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareRelease", "Release")
.WithMany("SupportedSoundSynths")
.HasForeignKey("ReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoundSynth", "SoundSynth")
.WithMany("SupportedBySoftwareReleases")
.HasForeignKey("SoundSynthId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Release");
b.Navigation("SoundSynth");
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynthDescription", b =>
{
b.HasOne("Marechai.Database.Models.Iso639", "Language")
.WithMany()
.HasForeignKey("LanguageCode")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_sound_synth_descriptions_language");
b.HasOne("Marechai.Database.Models.SoundSynth", "SoundSynth")
.WithMany("Descriptions")
.HasForeignKey("SoundSynthId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Language");
b.Navigation("SoundSynth");
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynthPhoto", b =>
{
b.HasOne("Marechai.Database.Models.License", "License")
.WithMany()
.HasForeignKey("LicenseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.SoundSynth", "SoundSynth")
.WithMany("Photos")
.HasForeignKey("SoundSynthId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("License");
b.Navigation("SoundSynth");
b.Navigation("User");
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynthVideo", b =>
{
b.HasOne("Marechai.Database.Models.SoundSynth", "SoundSynth")
.WithMany("Videos")
.HasForeignKey("SoundSynthId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("SoundSynth");
});
modelBuilder.Entity("Marechai.Database.Models.StandaloneFile", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareRelease", "SoftwareRelease")
.WithMany()
.HasForeignKey("SoftwareReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("SoftwareRelease");
});
modelBuilder.Entity("Marechai.Database.Models.StorageByMachine", b =>
{
b.HasOne("Marechai.Database.Models.Machine", "Machine")
.WithMany("Storage")
.HasForeignKey("MachineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_storage_by_machine_machine");
b.Navigation("Machine");
});
modelBuilder.Entity("Marechai.Database.Models.Suggestion", b =>
{
b.HasOne("Marechai.Database.Models.ApplicationUser", "CreatedBy")
.WithMany()
.HasForeignKey("CreatedById")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", "ReviewedBy")
.WithMany()
.HasForeignKey("ReviewedById")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("CreatedBy");
b.Navigation("ReviewedBy");
});
modelBuilder.Entity("Marechai.Database.Models.UnM49", b =>
{
b.HasOne("Marechai.Database.Models.UnM49", "Parent")
.WithMany("Children")
.HasForeignKey("ParentId")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("Parent");
});
modelBuilder.Entity("Marechai.Database.Models.UnM49BySoftwareRelease", b =>
{
b.HasOne("Marechai.Database.Models.SoftwareRelease", "SoftwareRelease")
.WithMany("Regions")
.HasForeignKey("SoftwareReleaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.UnM49", "UnM49")
.WithMany("SoftwareReleases")
.HasForeignKey("UnM49Id")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("SoftwareRelease");
b.Navigation("UnM49");
});
modelBuilder.Entity("Marechai.Database.Models.WwpcScreenshot", b =>
{
b.HasOne("Marechai.Database.Models.WwpcSoftware", "WwpcSoftware")
.WithMany("Screenshots")
.HasForeignKey("WwpcSoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("WwpcSoftware");
});
modelBuilder.Entity("Marechai.Database.Models.WwpcSoftware", b =>
{
b.HasOne("Marechai.Database.Models.WwpcCategory", "WwpcCategory")
.WithMany("Softwares")
.HasForeignKey("WwpcCategoryId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("WwpcCategory");
});
modelBuilder.Entity("Marechai.Database.Models.WwpcVersion", b =>
{
b.HasOne("Marechai.Database.Models.WwpcSoftware", "WwpcSoftware")
.WithMany("Versions")
.HasForeignKey("WwpcSoftwareId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("WwpcSoftware");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
{
b.HasOne("Marechai.Database.Models.ApplicationRole", null)
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
{
b.HasOne("Marechai.Database.Models.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
{
b.HasOne("Marechai.Database.Models.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
{
b.HasOne("Marechai.Database.Models.ApplicationRole", null)
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Marechai.Database.Models.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
{
b.HasOne("Marechai.Database.Models.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("Marechai.Database.Models.ApplicationUser", b =>
{
b.Navigation("CollectedBooks");
b.Navigation("CollectedDocuments");
b.Navigation("CollectedMagazineIssues");
b.Navigation("CollectedSoftwareReleases");
b.Navigation("Dumps");
b.Navigation("OwnedMachines");
b.Navigation("Photos");
b.Navigation("ReviewReports");
b.Navigation("ReviewVotes");
b.Navigation("SoftwareRatings");
b.Navigation("SoftwareReviews");
});
modelBuilder.Entity("Marechai.Database.Models.Book", b =>
{
b.Navigation("CollectedBy");
b.Navigation("Companies");
b.Navigation("Derivates");
b.Navigation("MachineFamilies");
b.Navigation("Machines");
b.Navigation("Next");
b.Navigation("People");
b.Navigation("Synopses");
});
modelBuilder.Entity("Marechai.Database.Models.Company", b =>
{
b.Navigation("Books");
b.Navigation("Descriptions");
b.Navigation("Documents");
b.Navigation("Gpus");
b.Navigation("InverseSoldToNavigation");
b.Navigation("Logos");
b.Navigation("MachineFamilies");
b.Navigation("Machines");
b.Navigation("Magazines");
b.Navigation("People");
b.Navigation("Processors");
b.Navigation("SoftwareFamilies2");
b.Navigation("SoftwareReleases");
b.Navigation("SoftwareRoles");
b.Navigation("SoftwareVersions");
b.Navigation("SoundSynths");
});
modelBuilder.Entity("Marechai.Database.Models.Conversation", b =>
{
b.Navigation("Messages");
b.Navigation("Participants");
});
modelBuilder.Entity("Marechai.Database.Models.Document", b =>
{
b.Navigation("CollectedBy");
b.Navigation("Companies");
b.Navigation("MachineFamilies");
b.Navigation("Machines");
b.Navigation("People");
b.Navigation("Synopses");
});
modelBuilder.Entity("Marechai.Database.Models.Dump", b =>
{
b.Navigation("DumpHardware");
});
modelBuilder.Entity("Marechai.Database.Models.Filesystem", b =>
{
b.Navigation("Files");
b.Navigation("MediaDumpFileImages");
b.Navigation("Partitions");
});
modelBuilder.Entity("Marechai.Database.Models.Gpu", b =>
{
b.Navigation("Descriptions");
b.Navigation("GpusByMachine");
b.Navigation("MinimumForSoftwareReleases");
b.Navigation("Photos");
b.Navigation("RecommendedForSoftwareReleases");
b.Navigation("ResolutionsByGpu");
b.Navigation("Videos");
});
modelBuilder.Entity("Marechai.Database.Models.InstructionSet", b =>
{
b.Navigation("Processors");
});
modelBuilder.Entity("Marechai.Database.Models.InstructionSetExtension", b =>
{
b.Navigation("InstructionSetExtensionsByProcessor");
});
modelBuilder.Entity("Marechai.Database.Models.Iso31661Numeric", b =>
{
b.Navigation("Books");
b.Navigation("Companies");
b.Navigation("Documents");
b.Navigation("Magazines");
b.Navigation("People");
});
modelBuilder.Entity("Marechai.Database.Models.License", b =>
{
b.Navigation("Photos");
});
modelBuilder.Entity("Marechai.Database.Models.LogicalPartition", b =>
{
b.Navigation("Filesystems");
b.Navigation("Media");
});
modelBuilder.Entity("Marechai.Database.Models.Machine", b =>
{
b.Navigation("Books");
b.Navigation("Descriptions");
b.Navigation("Documents");
b.Navigation("Gpus");
b.Navigation("Magazines");
b.Navigation("Memory");
b.Navigation("Photos");
b.Navigation("Processors");
b.Navigation("PromoArt");
b.Navigation("Screens");
b.Navigation("SoftwarePlatforms");
b.Navigation("Sound");
b.Navigation("Storage");
b.Navigation("Videos");
});
modelBuilder.Entity("Marechai.Database.Models.MachineFamily", b =>
{
b.Navigation("Books");
b.Navigation("Documents");
b.Navigation("Machines");
b.Navigation("Magazines");
});
modelBuilder.Entity("Marechai.Database.Models.Magazine", b =>
{
b.Navigation("Companies");
b.Navigation("Issues");
b.Navigation("Synopses");
});
modelBuilder.Entity("Marechai.Database.Models.MagazineIssue", b =>
{
b.Navigation("CollectedBy");
b.Navigation("Coverdiscs");
b.Navigation("MachineFamilies");
b.Navigation("Machines");
b.Navigation("People");
b.Navigation("Software");
});
modelBuilder.Entity("Marechai.Database.Models.Media", b =>
{
b.Navigation("Dumps");
b.Navigation("LogicalPartitions");
b.Navigation("MasteringTexts");
b.Navigation("MediaDumps");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDump", b =>
{
b.Navigation("Dumps");
b.Navigation("Files");
b.Navigation("Image");
b.Navigation("Subchannel");
b.Navigation("Tags");
b.Navigation("Tracks");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpFileImage", b =>
{
b.Navigation("Filesystems");
});
modelBuilder.Entity("Marechai.Database.Models.MediaDumpTrackImage", b =>
{
b.Navigation("Subchannel");
});
modelBuilder.Entity("Marechai.Database.Models.MediaFile", b =>
{
b.Navigation("DataStreams");
});
modelBuilder.Entity("Marechai.Database.Models.Message", b =>
{
b.Navigation("States");
});
modelBuilder.Entity("Marechai.Database.Models.OldDosCategory", b =>
{
b.Navigation("Children");
b.Navigation("Softwares");
});
modelBuilder.Entity("Marechai.Database.Models.OldDosSoftware", b =>
{
b.Navigation("Versions");
});
modelBuilder.Entity("Marechai.Database.Models.Person", b =>
{
b.Navigation("Books");
b.Navigation("Companies");
b.Navigation("Descriptions");
b.Navigation("Documents");
b.Navigation("Magazines");
});
modelBuilder.Entity("Marechai.Database.Models.Processor", b =>
{
b.Navigation("Descriptions");
b.Navigation("InstructionSetExtensions");
b.Navigation("Photos");
b.Navigation("ProcessorsByMachine");
b.Navigation("Videos");
});
modelBuilder.Entity("Marechai.Database.Models.RankingDefinition", b =>
{
b.Navigation("Entries");
});
modelBuilder.Entity("Marechai.Database.Models.Resolution", b =>
{
b.Navigation("ResolutionsByGpu");
b.Navigation("ResolutionsByScreen");
b.Navigation("Screens");
});
modelBuilder.Entity("Marechai.Database.Models.Screen", b =>
{
b.Navigation("Resolutions");
b.Navigation("ScreensByMachines");
});
modelBuilder.Entity("Marechai.Database.Models.Software", b =>
{
b.Navigation("Addons");
b.Navigation("CompanyRoles");
b.Navigation("CompilationReleases");
b.Navigation("Covers");
b.Navigation("Credits");
b.Navigation("CriticReviews");
b.Navigation("Descriptions");
b.Navigation("DirectReleases");
b.Navigation("Genres");
b.Navigation("Magazines");
b.Navigation("PromoArt");
b.Navigation("Screenshots");
b.Navigation("Successors");
b.Navigation("UserRatings");
b.Navigation("UserReviews");
b.Navigation("Versions");
b.Navigation("Videos");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareFamily", b =>
{
b.Navigation("Children");
b.Navigation("Companies");
b.Navigation("Softwares");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareGenre", b =>
{
b.Navigation("Softwares");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePlatform", b =>
{
b.Navigation("Machines");
b.Navigation("Screenshots");
b.Navigation("SoftwareReleases");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwarePromoArtGroup", b =>
{
b.Navigation("PromoArt");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareRelease", b =>
{
b.Navigation("Attributes");
b.Navigation("Barcodes");
b.Navigation("CollectedBy");
b.Navigation("Covers");
b.Navigation("IncludedSoftware");
b.Navigation("IncludedVersions");
b.Navigation("Languages");
b.Navigation("MinimumGpus");
b.Navigation("ProductCodes");
b.Navigation("RecommendedGpus");
b.Navigation("Regions");
b.Navigation("SupportedSoundSynths");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareScreenshotGroup", b =>
{
b.Navigation("Screenshots");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareUserReview", b =>
{
b.Navigation("Reports");
b.Navigation("Votes");
});
modelBuilder.Entity("Marechai.Database.Models.SoftwareVersion", b =>
{
b.Navigation("Children");
b.Navigation("Companies");
b.Navigation("CompilationReleases");
b.Navigation("OSCompatibility");
b.Navigation("Releases");
b.Navigation("Requirements");
b.Navigation("Screenshots");
});
modelBuilder.Entity("Marechai.Database.Models.SoundSynth", b =>
{
b.Navigation("Descriptions");
b.Navigation("Photos");
b.Navigation("SoundByMachine");
b.Navigation("SupportedBySoftwareReleases");
b.Navigation("Videos");
});
modelBuilder.Entity("Marechai.Database.Models.StandaloneFile", b =>
{
b.Navigation("DataStreams");
});
modelBuilder.Entity("Marechai.Database.Models.UnM49", b =>
{
b.Navigation("Children");
b.Navigation("SoftwareReleases");
});
modelBuilder.Entity("Marechai.Database.Models.WwpcCategory", b =>
{
b.Navigation("Softwares");
});
modelBuilder.Entity("Marechai.Database.Models.WwpcSoftware", b =>
{
b.Navigation("Screenshots");
b.Navigation("Versions");
});
#pragma warning restore 612, 618
}
}
}