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 Tags { get; init; } = Work.Tags; public ICollection 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 }