Implemented DLSiteClient.
This commit is contained in:
245
JSMR.Infrastructure/Integrations/DLSite/Models/ProductInfo.cs
Normal file
245
JSMR.Infrastructure/Integrations/DLSite/Models/ProductInfo.cs
Normal file
@@ -0,0 +1,245 @@
|
||||
using JSMR.Infrastructure.Integrations.DLSite.Serialization;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace JSMR.Infrastructure.Integrations.DLSite.Models;
|
||||
|
||||
public class ProductInfo
|
||||
{
|
||||
[JsonPropertyName("site_id")]
|
||||
public string? SiteId { get; set; }
|
||||
|
||||
[JsonPropertyName("site_id_touch")]
|
||||
public string? SiteIdTouch { get; set; }
|
||||
|
||||
[JsonPropertyName("maker_id")]
|
||||
public string? MakerId { get; set; }
|
||||
|
||||
[JsonPropertyName("age_category")]
|
||||
public int AgeCategory { get; set; }
|
||||
|
||||
[JsonPropertyName("affiliate_deny")]
|
||||
public int AffiliateDeny { get; set; }
|
||||
|
||||
[JsonPropertyName("dl_count")]
|
||||
[JsonConverter(typeof(NumberConverter))]
|
||||
public int DownloadCount { get; set; }
|
||||
|
||||
// This value can be a number or "false"
|
||||
[JsonPropertyName("wishlist_count")]
|
||||
[JsonConverter(typeof(NumberConverter))]
|
||||
public int WishlistCount { get; set; }
|
||||
|
||||
[JsonPropertyName("dl_format")]
|
||||
public int DownloadFormat { get; set; }
|
||||
|
||||
[JsonPropertyName("rank")]
|
||||
public ProductRank[] Rank { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("rate_average")]
|
||||
public int? RateAverage { get; set; }
|
||||
|
||||
[JsonPropertyName("rate_average_2dp")]
|
||||
public decimal? RateAverage2DP { get; set; }
|
||||
|
||||
[JsonPropertyName("rate_average_star")]
|
||||
public int? RateAverageStar { get; set; }
|
||||
|
||||
[JsonPropertyName("rate_count")]
|
||||
public int? RateCount { get; set; }
|
||||
|
||||
[JsonPropertyName("rate_count_detail")]
|
||||
public ProductRateCountDetail[] RateCountDetail { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("review_count")]
|
||||
[JsonConverter(typeof(NumberConverter))]
|
||||
public int ReviewCount { get; set; }
|
||||
|
||||
[JsonPropertyName("price")]
|
||||
public int? Price { get; set; }
|
||||
|
||||
[JsonPropertyName("price_without_tax")]
|
||||
public int? PriceWithoutTax { get; set; }
|
||||
|
||||
[JsonPropertyName("price_str")]
|
||||
public string? PriceString { get; set; }
|
||||
|
||||
[JsonPropertyName("default_point_rate")]
|
||||
public int? DefaultPointRate { get; set; }
|
||||
|
||||
[JsonPropertyName("default_point")]
|
||||
public int DefaultPoint { get; set; }
|
||||
|
||||
[JsonPropertyName("product_point_rate")]
|
||||
public int? ProductPointRate { get; set; }
|
||||
|
||||
[JsonPropertyName("dlsiteplay_work")]
|
||||
public bool DLSitePlayWork { get; set; }
|
||||
|
||||
[JsonPropertyName("is_sale")]
|
||||
public bool IsSale { get; set; }
|
||||
|
||||
[JsonPropertyName("on_sale")]
|
||||
public int OnSale { get; set; }
|
||||
|
||||
[JsonPropertyName("is_discount")]
|
||||
public bool IsDiscount { get; set; }
|
||||
|
||||
[JsonPropertyName("is_pointup")]
|
||||
public bool IsPointUp { get; set; }
|
||||
|
||||
//[JsonPropertyName("gift")]
|
||||
//[JsonConverter(typeof(ListConverter<string>))]
|
||||
//public List<string> Gift { get; set; }
|
||||
|
||||
[JsonPropertyName("is_rental")]
|
||||
public bool IsRental { get; set; }
|
||||
|
||||
[JsonPropertyName("work_rentals")]
|
||||
public string[] WorkRentals { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("upgrade_min_price")]
|
||||
public int UpgradeMinPrice { get; set; }
|
||||
|
||||
[JsonPropertyName("down_url")]
|
||||
public string? DownloadURL { get; set; }
|
||||
|
||||
[JsonPropertyName("is_tartget")]
|
||||
public string? IsTargetGet { get; set; }
|
||||
|
||||
[JsonPropertyName("title_id")]
|
||||
public string? TitleId { get; set; }
|
||||
|
||||
[JsonPropertyName("title_name")]
|
||||
public string? TitleName { get; set; }
|
||||
|
||||
[JsonPropertyName("title_volumn")]
|
||||
public int? TitleVolumeNumber { get; set; }
|
||||
|
||||
[JsonPropertyName("title_work_count")]
|
||||
public int? TitleWorkCount { get; set; }
|
||||
|
||||
[JsonPropertyName("is_title_completed")]
|
||||
public bool IsTitleCompleted { get; set; }
|
||||
|
||||
[JsonPropertyName("bulkbuy_key")]
|
||||
public string? BulkBuyKey { get; set; }
|
||||
|
||||
[JsonPropertyName("bonuses")]
|
||||
public ProductBonus[] Bonuses { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("is_limit_work")]
|
||||
public bool IsLimitWork { get; set; }
|
||||
|
||||
[JsonPropertyName("is_sold_out")]
|
||||
public bool IsSoldOut { get; set; }
|
||||
|
||||
[JsonPropertyName("limit_stock")]
|
||||
public int LimitStock { get; set; }
|
||||
|
||||
[JsonPropertyName("is_reserve_work")]
|
||||
public bool IsReserveWork { get; set; }
|
||||
|
||||
[JsonPropertyName("is_reservable")]
|
||||
public bool IsReservable { get; set; }
|
||||
|
||||
[JsonPropertyName("is_timesale")]
|
||||
public bool IsTimeSale { get; set; }
|
||||
|
||||
[JsonPropertyName("timesale_stock")]
|
||||
public int TimeSaleStock { get; set; }
|
||||
|
||||
[JsonPropertyName("is_free")]
|
||||
public bool IsFree { get; set; }
|
||||
|
||||
[JsonPropertyName("is_oly")]
|
||||
public bool IsOLY { get; set; }
|
||||
|
||||
[JsonPropertyName("is_led")]
|
||||
public bool IsLED { get; set; }
|
||||
|
||||
[JsonPropertyName("is_wcc")]
|
||||
public bool IsWCC { get; set; }
|
||||
|
||||
[JsonPropertyName("translation_info")]
|
||||
public ProductTranslationInfo? TranslationInfo { get; set; }
|
||||
|
||||
[JsonPropertyName("work_name")]
|
||||
public string? WorkName { get; set; }
|
||||
|
||||
[JsonPropertyName("work_image")]
|
||||
public string? WorkImage { get; set; }
|
||||
|
||||
[JsonPropertyName("sales_end_info")]
|
||||
public string? SalesEndInfo { get; set; }
|
||||
|
||||
[JsonPropertyName("voice_pack")]
|
||||
public string? VoicePack { get; set; }
|
||||
|
||||
[JsonPropertyName("regist_date")]
|
||||
[JsonConverter(typeof(NullableDateTimeConverterUsingDateTimeParse))]
|
||||
public DateTime? RegistrationDate { get; set; }
|
||||
|
||||
[JsonPropertyName("locale_price")]
|
||||
[JsonConverter(typeof(DictionaryConverter<string, decimal>))]
|
||||
public Dictionary<string, decimal> LocalePrice { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("locale_price_str")]
|
||||
[JsonConverter(typeof(DictionaryConverter<string, string>))]
|
||||
public Dictionary<string, string> LocalePriceString { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("work_type")]
|
||||
public string? WorkType { get; set; }
|
||||
|
||||
[JsonPropertyName("book_type")]
|
||||
public string? BookType { get; set; }
|
||||
|
||||
[JsonPropertyName("is_pack_work")]
|
||||
public bool IsPackWork { get; set; }
|
||||
|
||||
[JsonPropertyName("limited_free_terms")]
|
||||
public string[] LimitedFreeTerms { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("dl_count_total")]
|
||||
public int DownloadCountTotal { get; set; }
|
||||
|
||||
[JsonPropertyName("dl_count_items")]
|
||||
public DownloadCountItem[] DownloadCountItems { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("discount_rate")]
|
||||
public int? DiscountRate { get; set; }
|
||||
|
||||
[JsonPropertyName("official_price")]
|
||||
public int? OfficialPrice { get; set; }
|
||||
|
||||
// Don't know the type for sure
|
||||
[JsonPropertyName("campaign_id")]
|
||||
public string? CampaignId { get; set; }
|
||||
|
||||
[JsonPropertyName("official_price_str")]
|
||||
public string? OfficialPriceString { get; set; }
|
||||
|
||||
[JsonPropertyName("locale_official_price")]
|
||||
[JsonConverter(typeof(DictionaryConverter<string, decimal>))]
|
||||
public Dictionary<string, decimal> LocaleOfficialPrice { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("locale_official_price_str")]
|
||||
[JsonConverter(typeof(DictionaryConverter<string, string>))]
|
||||
public Dictionary<string, string> LocaleOfficialPriceString { get; set; } = [];
|
||||
|
||||
// TODO: Convert to date
|
||||
[JsonPropertyName("discount_end_date")]
|
||||
public string? DiscountEndDate { get; set; }
|
||||
|
||||
[JsonPropertyName("discount_to")]
|
||||
public string? DiscountTo { get; set; }
|
||||
|
||||
[JsonPropertyName("discount_caption")]
|
||||
public string? DiscountCaption { get; set; }
|
||||
|
||||
[JsonPropertyName("default_point_str")]
|
||||
public string? DefaultPointString { get; set; }
|
||||
|
||||
[JsonPropertyName("options")]
|
||||
[JsonConverter(typeof(ProductInfoOptionsConverter))]
|
||||
public string[] Options { get; set; } = [];
|
||||
}
|
||||
Reference in New Issue
Block a user