This commit is contained in:
Joe Milazzo 2024-11-20 07:17:36 -06:00 committed by GitHub
parent cb810a2d8f
commit 3e3b6ba92b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 1631 additions and 212 deletions

View file

@ -0,0 +1,26 @@
using System;
using API.Entities.Metadata;
namespace API.Helpers.Builders;
public class ExternalSeriesMetadataBuilder : IEntityBuilder<ExternalSeriesMetadata>
{
private readonly ExternalSeriesMetadata _metadata;
public ExternalSeriesMetadata Build() => _metadata;
public ExternalSeriesMetadataBuilder()
{
_metadata = new ExternalSeriesMetadata();
}
/// <summary>
/// -1 for not set, Range 0 - 100
/// </summary>
/// <param name="rating"></param>
/// <returns></returns>
public ExternalSeriesMetadataBuilder WithAverageExternalRating(int rating)
{
_metadata.AverageExternalRating = Math.Clamp(rating, -1, 100);
return this;
}
}

View file

@ -98,4 +98,12 @@ public class SeriesBuilder : IEntityBuilder<Series>
_series.Metadata.PublicationStatus = status;
return this;
}
public SeriesBuilder WithExternalMetadata(ExternalSeriesMetadata metadata)
{
_series.ExternalSeriesMetadata = metadata;
return this;
}
}

View file

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using API.Entities;
using API.Entities.Enums;
using API.Entities.Metadata;
@ -21,12 +22,15 @@ public class SeriesMetadataBuilder : IEntityBuilder<SeriesMetadata>
};
}
[Obsolete]
public SeriesMetadataBuilder WithCollectionTag(CollectionTag tag)
{
_seriesMetadata.CollectionTags ??= new List<CollectionTag>();
_seriesMetadata.CollectionTags.Add(tag);
return this;
}
[Obsolete]
public SeriesMetadataBuilder WithCollectionTags(IList<CollectionTag> tags)
{
if (tags == null) return this;
@ -34,6 +38,7 @@ public class SeriesMetadataBuilder : IEntityBuilder<SeriesMetadata>
_seriesMetadata.CollectionTags = tags;
return this;
}
public SeriesMetadataBuilder WithPublicationStatus(PublicationStatus status)
{
_seriesMetadata.PublicationStatus = status;
@ -58,4 +63,22 @@ public class SeriesMetadataBuilder : IEntityBuilder<SeriesMetadata>
return this;
}
public SeriesMetadataBuilder WithLanguage(string languageCode)
{
_seriesMetadata.Language = languageCode;
return this;
}
public SeriesMetadataBuilder WithReleaseYear(int year)
{
_seriesMetadata.ReleaseYear = year;
return this;
}
public SeriesMetadataBuilder WithSummary(string summary)
{
_seriesMetadata.Summary = summary;
return this;
}
}