Updated scanner/upsert logic.

This commit is contained in:
2025-09-17 09:40:24 -04:00
parent 3b2a0e3491
commit db0c3349a2
14 changed files with 434 additions and 66 deletions

View File

@@ -2,24 +2,23 @@
public class DLSiteWork
{
public DLSiteWorkType WorkType { get; set; }
public DLSiteWorkType Type { get; set; }
public DLSiteWorkCategory Category { get; set; }
public string? ProductName { get; set; }
public string? ProductUrl { get; set; }
public string? ProductId { get; set; }
public required string ProductName { get; set; }
public required string ProductId { get; set; }
public DateOnly? AnnouncedDate { get; set; }
public DateOnly? ExpectedDate { get; set; }
public DateOnly? SalesDate { get; set; }
public int? Downloads { get; set; }
public int Downloads { get; set; }
public byte? StarRating { get; set; }
public int? Votes { get; set; }
public string? Maker { get; set; }
public string? MakerId { get; set; }
public required string Maker { get; set; }
public required string MakerId { get; set; }
public string? Description { get; set; }
public ICollection<string> Genres { get; set; } = [];
public bool HasTrial { get; set;}
public ICollection<string> Tags { get; set; } = [];
public ICollection<string> Creators { get; set; } = [];
public string? ImageUrl { get; set; }
public string? SmallImageUrl { get; set; }
public string? Type { get; set; }
}

View File

@@ -0,0 +1,21 @@
using JSMR.Application.Integrations.DLSite.Models;
namespace JSMR.Application.Scanning.Contracts;
public record VoiceWorkIngest(DLSiteWork Work, VoiceWorkDetails? Details)
{
public string MakerId { get; init; } = Work.MakerId;
public string MakerName { get; init; } = Work.Maker;
public string ProductId { get; init; } = Work.ProductId;
public string Title { get; init; } = Work.ProductName;
public string? Description { get; init; } = Work.Description;
public ICollection<string> Tags { get; init; } = Work.Tags;
public ICollection<string> Creators { get; init; } = Work.Creators;
public int WishlistCount { get; init; } = Details?.WishlistCount ?? 0;
public int Downloads { get; init; } = Math.Max(Work.Downloads, Details?.DownloadCount ?? 0);
public bool HasTrial { get; init; } = Work.HasTrial || (Details?.HasTrial ?? false);
public bool HasDLPlay { get; init; } = Details?.HasDLPlay ?? false;
public byte? StarRating { get; init; } = Work.StarRating;
public int? Votes { get; init; } = Work.Votes;
// TODO: Other properties
}