diff --git a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListValueObject.cs b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListValueObject.cs index 138c351fe..e91db1158 100644 --- a/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListValueObject.cs +++ b/services/Directory/FilterLists.Directory.Domain/Aggregates/FilterLists/FilterListValueObject.cs @@ -7,6 +7,9 @@ public class FilterListValueObject : ValueObject public string Name { get; private init; } = default!; public string? Description { get; private init; } public long LicenseId { get; private init; } + public IEnumerable SyntaxIds { get; private init; } = new HashSet(); + public IEnumerable LanguageIds { get; private init; } = new HashSet(); + public IEnumerable TagIds { get; private init; } = new HashSet(); public IEnumerable ViewUrlIds { get; private init; } = new HashSet(); public Uri? HomeUrl { get; private init; } public Uri? OnionUrl { get; private init; } @@ -17,6 +20,13 @@ public class FilterListValueObject : ValueObject public Uri? ChatUrl { get; private init; } public string? EmailAddress { get; private init; } public Uri? DonateUrl { get; private init; } + public IEnumerable MaintainerIds { get; private init; } = new HashSet(); + public IEnumerable UpstreamFilterListIds { get; private init; } = new HashSet(); + public IEnumerable ForkFilterListIds { get; private init; } = new HashSet(); + public IEnumerable IncludedInFilterListIds { get; private init; } = new HashSet(); + public IEnumerable IncludesFilterListIds { get; private init; } = new HashSet(); + public IEnumerable DependencyFilterListIds { get; private init; } = new HashSet(); + public IEnumerable DependentFilterListIds { get; private init; } = new HashSet(); public static FilterListValueObject FromFilterList(FilterList filterList) { @@ -25,6 +35,9 @@ public static FilterListValueObject FromFilterList(FilterList filterList) Name = filterList.Name, Description = filterList.Description, LicenseId = filterList.License.Id, + SyntaxIds = filterList.Syntaxes.Select(s => s.Id), + LanguageIds = filterList.Languages.Select(l => l.Id), + TagIds = filterList.Tags.Select(t => t.Id), ViewUrlIds = filterList.ViewUrls.Select(u => u.Id), HomeUrl = filterList.HomeUrl, OnionUrl = filterList.OnionUrl, @@ -34,7 +47,14 @@ public static FilterListValueObject FromFilterList(FilterList filterList) ForumUrl = filterList.ForumUrl, ChatUrl = filterList.ChatUrl, EmailAddress = filterList.EmailAddress, - DonateUrl = filterList.DonateUrl + DonateUrl = filterList.DonateUrl, + MaintainerIds = filterList.Maintainers.Select(m => m.Id), + UpstreamFilterListIds = filterList.UpstreamFilterLists.Select(f => f.Id), + ForkFilterListIds = filterList.ForkFilterLists.Select(f => f.Id), + IncludedInFilterListIds = filterList.IncludedInFilterLists.Select(f => f.Id), + IncludesFilterListIds = filterList.IncludesFilterLists.Select(f => f.Id), + DependencyFilterListIds = filterList.DependencyFilterLists.Select(f => f.Id), + DependentFilterListIds = filterList.DependentFilterLists.Select(f => f.Id) }; } @@ -43,9 +63,24 @@ public static FilterListValueObject FromFilterList(FilterList filterList) yield return Name; yield return Description; yield return LicenseId; - foreach (var viewUrlId in ViewUrlIds) + foreach (var id in SyntaxIds) { - yield return viewUrlId; + yield return id; + } + + foreach (var id in LanguageIds) + { + yield return id; + } + + foreach (var id in TagIds) + { + yield return id; + } + + foreach (var id in ViewUrlIds) + { + yield return id; } yield return HomeUrl; @@ -57,5 +92,39 @@ public static FilterListValueObject FromFilterList(FilterList filterList) yield return ChatUrl; yield return EmailAddress; yield return DonateUrl; + foreach (var id in MaintainerIds) + { + yield return id; + } + + foreach (var id in UpstreamFilterListIds) + { + yield return id; + } + + foreach (var id in ForkFilterListIds) + { + yield return id; + } + + foreach (var id in IncludedInFilterListIds) + { + yield return id; + } + + foreach (var id in IncludesFilterListIds) + { + yield return id; + } + + foreach (var id in DependencyFilterListIds) + { + yield return id; + } + + foreach (var id in DependentFilterListIds) + { + yield return id; + } } }