From 700f5001ec467dca5e0e6e59885ba10f875cff08 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Sun, 28 Nov 2021 14:27:49 -0600 Subject: [PATCH] =?UTF-8?q?feat(dir):=20=E2=9C=A8=20scaffold=20rest=20of?= =?UTF-8?q?=20aggregates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Aggregates/FilterLists/FilterList.cs | 16 +++++++++++++- .../FilterListChange.cs | 4 ++-- .../Aggregates/Languages/Language.cs | 13 ++++++++++++ .../Aggregates/Licenses/License.cs | 21 +++---------------- .../Aggregates/Maintainers/Maintainer.cs | 15 +++++++++++++ .../Aggregates/Software/Software.cs | 16 ++++++++++++++ .../Aggregates/Syntaxes/Syntax.cs | 15 +++++++++++++ .../Aggregates/Tags/Tag.cs | 13 ++++++++++++ .../{Aggregates => }/Changes/Change.cs | 2 +- .../Changes/IChangeAggregate.cs | 2 +- .../Changes/IRequireChangeApproval.cs | 2 +- .../Commands/Context/CommandDbContext.cs | 10 +++++++++ .../Commands/Context/ICommandContext.cs | 10 +++++++++ .../ChangeTypeConfiguration.cs | 4 ++-- .../FilterListChangeTypeConfiguration.cs | 2 +- .../FilterListTypeConfiguration.cs | 19 ++++++++++++++--- .../FilterListViewUrlTypeConfiguration.cs | 1 - .../LicenseTypeConfiguration.cs | 13 ------------ 18 files changed, 134 insertions(+), 44 deletions(-) rename services/Directory/FilterLists.Directory.Domain/Aggregates/{Changes => FilterLists}/FilterListChange.cs (89%) create mode 100644 services/Directory/FilterLists.Directory.Domain/Aggregates/Languages/Language.cs create mode 100644 services/Directory/FilterLists.Directory.Domain/Aggregates/Maintainers/Maintainer.cs create mode 100644 services/Directory/FilterLists.Directory.Domain/Aggregates/Software/Software.cs create mode 100644 services/Directory/FilterLists.Directory.Domain/Aggregates/Syntaxes/Syntax.cs create mode 100644 services/Directory/FilterLists.Directory.Domain/Aggregates/Tags/Tag.cs rename services/Directory/FilterLists.Directory.Domain/{Aggregates => }/Changes/Change.cs (90%) rename services/Directory/FilterLists.Directory.Domain/{Aggregates => }/Changes/IChangeAggregate.cs (80%) rename services/Directory/FilterLists.Directory.Domain/{Aggregates => }/Changes/IRequireChangeApproval.cs (88%) delete mode 100644 services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/LicenseTypeConfiguration.cs diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterList.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterList.cs index f611ff9ff..06c9d0f26 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterList.cs +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterList.cs @@ -1,5 +1,9 @@ -using FilterLists.Directory.Domain.Aggregates.Changes; +using FilterLists.Directory.Domain.Aggregates.Languages; using FilterLists.Directory.Domain.Aggregates.Licenses; +using FilterLists.Directory.Domain.Aggregates.Maintainers; +using FilterLists.Directory.Domain.Aggregates.Syntaxes; +using FilterLists.Directory.Domain.Aggregates.Tags; +using FilterLists.Directory.Domain.Changes; using FilterLists.SharedKernel.Domain.SeedWork; namespace FilterLists.Directory.Domain.Aggregates.FilterLists; @@ -11,6 +15,9 @@ protected FilterList() { } public string Name { get; private init; } = default!; public string? Description { get; private init; } public virtual License License { get; private init; } = default!; + public virtual IEnumerable Syntaxes { get; private init; } = new HashSet(); + public virtual IEnumerable Languages { get; private init; } = new HashSet(); + public virtual IEnumerable Tags { get; private init; } = new HashSet(); public virtual IEnumerable ViewUrls { get; private init; } = new HashSet(); public Uri? HomeUrl { get; private init; } public Uri? OnionUrl { get; private init; } @@ -21,6 +28,13 @@ protected FilterList() { } public Uri? ChatUrl { get; private init; } public string? EmailAddress { get; private init; } public Uri? DonateUrl { get; private init; } + public virtual IEnumerable Maintainers { get; private init; } = new HashSet(); + public virtual IEnumerable UpstreamFilterLists { get; private init; } = new HashSet(); + public virtual IEnumerable ForkFilterLists { get; private init; } = new HashSet(); + public virtual IEnumerable IncludedInFilterLists { get; private init; } = new HashSet(); + public virtual IEnumerable IncludesFilterLists { get; private init; } = new HashSet(); + public virtual IEnumerable DependencyFilterLists { get; private init; } = new HashSet(); + public virtual IEnumerable DependentFilterLists { get; private init; } = new HashSet(); public virtual IEnumerable Changes { get; private set; } = new HashSet(); public bool IsApproved { get; private init; } diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListChange.cs similarity index 89% rename from services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs rename to services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListChange.cs index 6ba5cc0fb..63ae79f66 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/FilterListChange.cs +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListChange.cs @@ -1,6 +1,6 @@ -using FilterLists.Directory.Domain.Aggregates.FilterLists; +using FilterLists.Directory.Domain.Changes; -namespace FilterLists.Directory.Domain.Aggregates.Changes; +namespace FilterLists.Directory.Domain.Aggregates.FilterLists; public class FilterListChange : Change, IChangeAggregate { diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Languages/Language.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/Languages/Language.cs new file mode 100644 index 000000000..6cbc777bf --- /dev/null +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/Languages/Language.cs @@ -0,0 +1,13 @@ +using FilterLists.Directory.Domain.Aggregates.FilterLists; +using FilterLists.SharedKernel.Domain.SeedWork; + +namespace FilterLists.Directory.Domain.Aggregates.Languages; + +public class Language : Entity +{ + protected Language() { } + + public string Iso6391 { get; private init; } = default!; + public string Name { get; private init; } = default!; + public virtual IEnumerable FilterLists { get; private init; } = new HashSet(); +} diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Licenses/License.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/Licenses/License.cs index 316df6bbb..305a60d2b 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/Licenses/License.cs +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/Licenses/License.cs @@ -1,4 +1,5 @@ -using FilterLists.SharedKernel.Domain.SeedWork; +using FilterLists.Directory.Domain.Aggregates.FilterLists; +using FilterLists.SharedKernel.Domain.SeedWork; namespace FilterLists.Directory.Domain.Aggregates.Licenses; @@ -11,21 +12,5 @@ protected License() { } public bool PermitsModification { get; private init; } public bool PermitsDistribution { get; private init; } public bool PermitsCommercialUse { get; private init; } - - public static License Create( - string name, - Uri? url, - bool permitsModification, - bool permitsDistribution, - bool permitsCommercialUse) - { - return new License - { - Name = name, - Url = url, - PermitsModification = permitsModification, - PermitsDistribution = permitsDistribution, - PermitsCommercialUse = permitsCommercialUse - }; - } + public virtual IEnumerable FilterLists { get; private init; } = new HashSet(); } diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Maintainers/Maintainer.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/Maintainers/Maintainer.cs new file mode 100644 index 000000000..9c44ed99e --- /dev/null +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/Maintainers/Maintainer.cs @@ -0,0 +1,15 @@ +using FilterLists.Directory.Domain.Aggregates.FilterLists; +using FilterLists.SharedKernel.Domain.SeedWork; + +namespace FilterLists.Directory.Domain.Aggregates.Maintainers; + +public class Maintainer : Entity +{ + protected Maintainer() { } + + public string Name { get; private init; } = default!; + public Uri? Url { get; private init; } + public string? EmailAddress { get; private init; } + public string? TwitterHandle { get; private init; } + public virtual IEnumerable FilterLists { get; private init; } = new HashSet(); +} diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Software/Software.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/Software/Software.cs new file mode 100644 index 000000000..a30f8d1d2 --- /dev/null +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/Software/Software.cs @@ -0,0 +1,16 @@ +using FilterLists.Directory.Domain.Aggregates.Syntaxes; +using FilterLists.SharedKernel.Domain.SeedWork; + +namespace FilterLists.Directory.Domain.Aggregates.Software; + +public class Software : Entity +{ + protected Software() { } + + public string Name { get; private init; } = default!; + public string? Description { get; private init; } + public Uri? HomeUrl { get; private init; } + public Uri? DownloadUrl { get; private init; } + public bool SupportsAbpUrlScheme { get; private init; } + public virtual IEnumerable Syntaxes { get; private init; } = new HashSet(); +} diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Syntaxes/Syntax.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/Syntaxes/Syntax.cs new file mode 100644 index 000000000..22430d5e1 --- /dev/null +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/Syntaxes/Syntax.cs @@ -0,0 +1,15 @@ +using FilterLists.Directory.Domain.Aggregates.FilterLists; +using FilterLists.SharedKernel.Domain.SeedWork; + +namespace FilterLists.Directory.Domain.Aggregates.Syntaxes; + +public class Syntax : Entity +{ + protected Syntax() { } + + public string Name { get; private init; } = default!; + public string? Description { get; private init; } + public Uri? Url { get; private init; } + public virtual IEnumerable FilterLists { get; private init; } = new HashSet(); + public virtual IEnumerable Software { get; private init; } = new HashSet(); +} diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Tags/Tag.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/Tags/Tag.cs new file mode 100644 index 000000000..14e2a5589 --- /dev/null +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/Tags/Tag.cs @@ -0,0 +1,13 @@ +using FilterLists.Directory.Domain.Aggregates.FilterLists; +using FilterLists.SharedKernel.Domain.SeedWork; + +namespace FilterLists.Directory.Domain.Aggregates.Tags; + +public class Tag : Entity +{ + protected Tag() { } + + public string Name { get; private init; } = default!; + public string? Description { get; private init; } + public virtual IEnumerable FilterLists { get; private init; } = new HashSet(); +} diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/Change.cs b/services/Directory/FilterLists.Directory.Domain/Changes/Change.cs similarity index 90% rename from services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/Change.cs rename to services/Directory/FilterLists.Directory.Domain/Changes/Change.cs index 27002a9f9..b3158b354 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/Change.cs +++ b/services/Directory/FilterLists.Directory.Domain/Changes/Change.cs @@ -1,6 +1,6 @@ using FilterLists.SharedKernel.Domain.SeedWork; -namespace FilterLists.Directory.Domain.Aggregates.Changes; +namespace FilterLists.Directory.Domain.Changes; public abstract class Change : Entity { diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/IChangeAggregate.cs b/services/Directory/FilterLists.Directory.Domain/Changes/IChangeAggregate.cs similarity index 80% rename from services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/IChangeAggregate.cs rename to services/Directory/FilterLists.Directory.Domain/Changes/IChangeAggregate.cs index 437db8db8..0d528c2f7 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/IChangeAggregate.cs +++ b/services/Directory/FilterLists.Directory.Domain/Changes/IChangeAggregate.cs @@ -1,6 +1,6 @@ using FilterLists.SharedKernel.Domain.SeedWork; -namespace FilterLists.Directory.Domain.Aggregates.Changes; +namespace FilterLists.Directory.Domain.Changes; public interface IChangeAggregate where TAggregateValueObject : ValueObject { diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/IRequireChangeApproval.cs b/services/Directory/FilterLists.Directory.Domain/Changes/IRequireChangeApproval.cs similarity index 88% rename from services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/IRequireChangeApproval.cs rename to services/Directory/FilterLists.Directory.Domain/Changes/IRequireChangeApproval.cs index 702ea9928..c5992ee28 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/Changes/IRequireChangeApproval.cs +++ b/services/Directory/FilterLists.Directory.Domain/Changes/IRequireChangeApproval.cs @@ -1,4 +1,4 @@ -namespace FilterLists.Directory.Domain.Aggregates.Changes; +namespace FilterLists.Directory.Domain.Changes; public interface IRequireChangeApproval where TChange : Change { diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/Context/CommandDbContext.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/Context/CommandDbContext.cs index e473f3367..b83fb333d 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/Context/CommandDbContext.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/Context/CommandDbContext.cs @@ -1,6 +1,11 @@ using FilterLists.Directory.Domain.Aggregates; using FilterLists.Directory.Domain.Aggregates.FilterLists; +using FilterLists.Directory.Domain.Aggregates.Languages; using FilterLists.Directory.Domain.Aggregates.Licenses; +using FilterLists.Directory.Domain.Aggregates.Maintainers; +using FilterLists.Directory.Domain.Aggregates.Software; +using FilterLists.Directory.Domain.Aggregates.Syntaxes; +using FilterLists.Directory.Domain.Aggregates.Tags; using FilterLists.Directory.Infrastructure.Persistence.Commands.EntityTypeConfigurations; using Microsoft.EntityFrameworkCore; using Npgsql; @@ -17,7 +22,12 @@ static CommandDbContext() public CommandDbContext(DbContextOptions options) : base(options) { } public DbSet FilterLists => Set(); + public DbSet Languages => Set(); public DbSet Licenses => Set(); + public DbSet Maintainers => Set(); + public DbSet Software => Set(); + public DbSet Syntaxes => Set(); + public DbSet Tags => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) { diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/Context/ICommandContext.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/Context/ICommandContext.cs index 07c6cd5fd..7396cd306 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/Context/ICommandContext.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/Context/ICommandContext.cs @@ -1,5 +1,10 @@ using FilterLists.Directory.Domain.Aggregates.FilterLists; +using FilterLists.Directory.Domain.Aggregates.Languages; using FilterLists.Directory.Domain.Aggregates.Licenses; +using FilterLists.Directory.Domain.Aggregates.Maintainers; +using FilterLists.Directory.Domain.Aggregates.Software; +using FilterLists.Directory.Domain.Aggregates.Syntaxes; +using FilterLists.Directory.Domain.Aggregates.Tags; using Microsoft.EntityFrameworkCore; namespace FilterLists.Directory.Infrastructure.Persistence.Commands.Context; @@ -7,6 +12,11 @@ namespace FilterLists.Directory.Infrastructure.Persistence.Commands.Context; public interface ICommandContext { DbSet FilterLists { get; } + DbSet Languages { get; } DbSet Licenses { get; } + DbSet Maintainers { get; } + DbSet Software { get; } + DbSet Syntaxes { get; } + DbSet Tags { get; } Task SaveChangesAsync(CancellationToken cancellationToken); } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/ChangeTypeConfiguration.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/ChangeTypeConfiguration.cs index bff1b0a02..24c0c72b7 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/ChangeTypeConfiguration.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/ChangeTypeConfiguration.cs @@ -1,7 +1,8 @@ using System.Globalization; using EFCore.NamingConventions.Internal; using FilterLists.Directory.Domain.Aggregates; -using FilterLists.Directory.Domain.Aggregates.Changes; +using FilterLists.Directory.Domain.Aggregates.FilterLists; +using FilterLists.Directory.Domain.Changes; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -17,6 +18,5 @@ public virtual void Configure(EntityTypeBuilder builder) builder.ToTable($"{nr.RewriteName(nameof(Change))}s"); builder.HasDiscriminator(nr.RewriteName(nameof(Queries.Entities.Change.AggregateType))) .HasValue(AggregateType.FilterList); - builder.Property(nameof(Queries.Entities.Change.Id)); } } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListChangeTypeConfiguration.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListChangeTypeConfiguration.cs index c7aee2a1b..6c567ceaa 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListChangeTypeConfiguration.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListChangeTypeConfiguration.cs @@ -1,4 +1,4 @@ -using FilterLists.Directory.Domain.Aggregates.Changes; +using FilterLists.Directory.Domain.Aggregates.FilterLists; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using Change = FilterLists.Directory.Infrastructure.Persistence.Queries.Entities.Change; diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListTypeConfiguration.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListTypeConfiguration.cs index 7bb158279..69e839c83 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListTypeConfiguration.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListTypeConfiguration.cs @@ -1,4 +1,6 @@ -using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; +using System.Globalization; +using EFCore.NamingConventions.Internal; +using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using FilterList = FilterLists.Directory.Domain.Aggregates.FilterLists.FilterList; @@ -9,8 +11,19 @@ internal class FilterListTypeConfiguration : IEntityTypeConfiguration builder) { - builder.Property(nameof(Queries.Entities.FilterList.Id)); - builder.HasMany(c => c.Changes) + // TODO: register and resolve INameRewriter + var nr = new SnakeCaseNameRewriter(CultureInfo.InvariantCulture); + + builder.HasMany(f => f.UpstreamFilterLists) + .WithMany(f => f.ForkFilterLists) + .UsingEntity(f => f.ToTable($"{nr.RewriteName(nameof(Fork))}s")); + builder.HasMany(f => f.IncludedInFilterLists) + .WithMany(f => f.IncludesFilterLists) + .UsingEntity(f => f.ToTable($"{nr.RewriteName(nameof(Merge))}s")); + builder.HasMany(f => f.DependencyFilterLists) + .WithMany(f => f.DependentFilterLists) + .UsingEntity(f => f.ToTable($"{nr.RewriteName(nameof(Dependent))}s")); + builder.HasMany(f => f.Changes) .WithOne() .HasForeignKey(nameof(Change.FilterListId)); builder.Navigation(f => f.Changes) diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListViewUrlTypeConfiguration.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListViewUrlTypeConfiguration.cs index f727252aa..25a6aa921 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListViewUrlTypeConfiguration.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/FilterListViewUrlTypeConfiguration.cs @@ -14,6 +14,5 @@ public virtual void Configure(EntityTypeBuilder builder) var nr = new SnakeCaseNameRewriter(CultureInfo.InvariantCulture); builder.ToTable($"{nr.RewriteName(nameof(Queries.Entities.FilterListViewUrl))}s"); - builder.Property(nameof(Queries.Entities.FilterListViewUrl.Id)); } } diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/LicenseTypeConfiguration.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/LicenseTypeConfiguration.cs deleted file mode 100644 index 7643865bb..000000000 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/Commands/EntityTypeConfigurations/LicenseTypeConfiguration.cs +++ /dev/null @@ -1,13 +0,0 @@ -using FilterLists.Directory.Domain.Aggregates.Licenses; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Builders; - -namespace FilterLists.Directory.Infrastructure.Persistence.Commands.EntityTypeConfigurations; - -internal class LicenseTypeConfiguration : IEntityTypeConfiguration -{ - public virtual void Configure(EntityTypeBuilder builder) - { - builder.Property(nameof(Queries.Entities.License.Id)); - } -}