using JSMR.Application.Common; namespace JSMR.Application.VoiceWorks.Queries.Search; public record VoiceWorkSearchResult { public int VoiceWorkId { get; init; } public required string ProductId { get; init; } public string? OriginalProductId { get; init; } public string? Description { get; init; } public required string ProductName { get; init; } public required string ProductUrl { get; init; } public bool HasImage { get; init; } public required string Maker { get; init; } public required string MakerId { get; init; } public DateTime? ExpectedDate { get; init; } public DateTime? SalesDate { get; init; } public DateTime? PlannedReleaseDate { get; init; } public int? Downloads { get; init; } public int? WishlistCount { get; init; } public byte? StarRating { get; init; } public int? Votes { get; init; } public bool HasTrial { get; init; } public bool HasChobit { get; init; } public AgeRating Rating { get; init; } public bool Favorite { get; init; } public byte Status { get; init; } public byte SubtitleLanguage { get; init; } public bool? IsValid { get; init; } public VoiceWorkTagItem[] Tags { get; set; } = []; public VoiceWorkCreatorItem[] Creators { get; set; } = []; } public class VoiceWorkTagItem { public int TagId { get; set; } public required string Name { get; set; } } public class VoiceWorkCreatorItem { public int CreatorId { get; set; } public required string Name { get; set; } }