Add project files.

This commit is contained in:
2025-08-26 09:20:13 -04:00
parent 6c6a149821
commit d2201d6f9b
118 changed files with 1924 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
namespace JSMR.Application.Integrations.Chobit.Models;
public class ChobitResult
{
public int Count { get; set; }
public ChobitWork[] Works { get; set; } = [];
}

View File

@@ -0,0 +1,16 @@
namespace JSMR.Application.Integrations.Chobit.Models;
public class ChobitWork
{
public string? WorkId { get; set; }
public string? DLSiteWorkId { get; set; }
public string? WorkName { get; set; }
public string? WorkNameKana { get; set; }
public string? URL { get; set; }
public string? EmbedURL { get; set; }
public string? Thumb { get; set; }
public string? MiniThumb { get; set; }
public string? FileType { get; set; }
public decimal EmbedWidth { get; set; }
public decimal EmbedHeight { get; set; }
}

View File

@@ -0,0 +1,3 @@
namespace JSMR.Application.Integrations.Chobit.Models;
public class ChobitWorkResult : Dictionary<string, ChobitResult> { }

View File

@@ -0,0 +1,8 @@
namespace JSMR.Application.Integrations.Cien.Models;
public class CienArticle
{
public int Id { get; set; }
public required string Title { get; set; }
public required DateTime ReleasedAt { get; set; }
}

View File

@@ -0,0 +1,10 @@
namespace JSMR.Application.Integrations.Cien.Models;
public class CienCreator
{
public int Id { get; set; }
public required string Name { get; set; }
public string? Rating { get; set; }
public string? Icon { get; set; }
public CienArticle[] Articles { get; set; } = [];
}

View File

@@ -0,0 +1,6 @@
namespace JSMR.Application.Integrations.DLSite.Models;
public class VoiceWorkDetailCollection : Dictionary<string, VoiceWorkDetails>
{
}

View File

@@ -0,0 +1,16 @@
using JSMR.Application.Common;
namespace JSMR.Application.Integrations.DLSite.Models;
public class VoiceWorkDetails
{
public VoiceWorkSeries? Series { get; init; }
public VoiceWorkTranslation? Translation { get; init; }
public int WishlistCount { get; init; }
public int DownloadCount { get; init; }
public DateTime? RegistrationDate { get; init; }
public Language[] SupportedLanguages { get; init; } = [];
//public AIGeneration AI { get; init; }
public bool HasTrial { get; init; }
public bool HasReviews { get; init; }
}

View File

@@ -0,0 +1,7 @@
namespace JSMR.Application.Integrations.DLSite.Models;
public class VoiceWorkSeries
{
public required string Identifier { get; init; }
public required string Name { get; init; }
}

View File

@@ -0,0 +1,10 @@
using JSMR.Application.Common;
namespace JSMR.Application.Integrations.DLSite.Models;
public class VoiceWorkTranslation
{
public required string OriginalProductId { get; init; }
public bool IsOfficialTranslation { get; init; }
public required Language Language { get; init; }
}

View File

@@ -0,0 +1,8 @@
using JSMR.Application.Integrations.Chobit.Models;
namespace JSMR.Application.Integrations.Ports;
public interface IChobitClient
{
Task<ChobitWorkResult> GetSampleInfoAsync(string[] productIds, CancellationToken cancellationToken = default);
}

View File

@@ -0,0 +1,8 @@
using JSMR.Application.Integrations.Cien.Models;
namespace JSMR.Application.Integrations.Ports;
public interface ICienClient
{
Task<CienCreator[]> GetCienCreatorAsync(string makerId, CancellationToken cancellationToken = default);
}

View File

@@ -0,0 +1,8 @@
using JSMR.Application.Integrations.DLSite.Models;
namespace JSMR.Application.Integrations.Ports;
public interface IDLSiteClient
{
Task<VoiceWorkDetailCollection> GetVoiceWorkDetailsAsync(string[] productIds, CancellationToken cancellationToken = default);
}