Ingest ExternalReviews from K+

Adds a new entity ExternalChapterMetadata, which would allow us to
extend chapters to Recommendations, Ratings, etc in the future
This commit is contained in:
Amelia 2025-04-28 16:19:03 +02:00
parent 749fb24185
commit 052b3f9fe4
No known key found for this signature in database
GPG key ID: D6D0ECE365407EAA
29 changed files with 647 additions and 137 deletions

View file

@ -1315,6 +1315,70 @@ namespace API.Data.Migrations
b.ToTable("MediaError");
});
modelBuilder.Entity("API.Entities.Metadata.ExternalChapterMetadata", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<int>("ChapterId")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("ChapterId")
.IsUnique();
b.ToTable("ExternalChapterMetadata");
});
modelBuilder.Entity("API.Entities.Metadata.ExternalChapterReview", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<int>("Authority")
.HasColumnType("INTEGER");
b.Property<string>("Body")
.HasColumnType("TEXT");
b.Property<string>("BodyJustText")
.HasColumnType("TEXT");
b.Property<int>("ChapterId")
.HasColumnType("INTEGER");
b.Property<int>("Provider")
.HasColumnType("INTEGER");
b.Property<int>("Rating")
.HasColumnType("INTEGER");
b.Property<string>("RawBody")
.HasColumnType("TEXT");
b.Property<int>("Score")
.HasColumnType("INTEGER");
b.Property<string>("SiteUrl")
.HasColumnType("TEXT");
b.Property<string>("Tagline")
.HasColumnType("TEXT");
b.Property<int>("TotalVotes")
.HasColumnType("INTEGER");
b.Property<string>("Username")
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("ExternalChapterReview");
});
modelBuilder.Entity("API.Entities.Metadata.ExternalRating", b =>
{
b.Property<int>("Id")
@ -2453,6 +2517,21 @@ namespace API.Data.Migrations
b.ToTable("CollectionTagSeriesMetadata");
});
modelBuilder.Entity("ExternalChapterMetadataExternalChapterReview", b =>
{
b.Property<int>("ExternalChapterMetadatasId")
.HasColumnType("INTEGER");
b.Property<int>("ExternalReviewsId")
.HasColumnType("INTEGER");
b.HasKey("ExternalChapterMetadatasId", "ExternalReviewsId");
b.HasIndex("ExternalReviewsId");
b.ToTable("ExternalChapterMetadataExternalChapterReview");
});
modelBuilder.Entity("ExternalRatingExternalSeriesMetadata", b =>
{
b.Property<int>("ExternalRatingsId")
@ -2916,6 +2995,15 @@ namespace API.Data.Migrations
b.Navigation("Chapter");
});
modelBuilder.Entity("API.Entities.Metadata.ExternalChapterMetadata", b =>
{
b.HasOne("API.Entities.Chapter", null)
.WithOne("ExternalChapterMetadata")
.HasForeignKey("API.Entities.Metadata.ExternalChapterMetadata", "ChapterId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("API.Entities.Metadata.ExternalSeriesMetadata", b =>
{
b.HasOne("API.Entities.Series", "Series")
@ -3223,6 +3311,21 @@ namespace API.Data.Migrations
.IsRequired();
});
modelBuilder.Entity("ExternalChapterMetadataExternalChapterReview", b =>
{
b.HasOne("API.Entities.Metadata.ExternalChapterMetadata", null)
.WithMany()
.HasForeignKey("ExternalChapterMetadatasId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("API.Entities.Metadata.ExternalChapterReview", null)
.WithMany()
.HasForeignKey("ExternalReviewsId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("ExternalRatingExternalSeriesMetadata", b =>
{
b.HasOne("API.Entities.Metadata.ExternalRating", null)
@ -3374,6 +3477,8 @@ namespace API.Data.Migrations
modelBuilder.Entity("API.Entities.Chapter", b =>
{
b.Navigation("ExternalChapterMetadata");
b.Navigation("Files");
b.Navigation("People");