using System.Collections.Generic; namespace LME.AnimeON.Models { /// Aggregated structure for AnimeON serial content to match Lampac standard navigation. public class AnimeONAggregatedStructure { /// Anime identifier from AnimeON API. public int AnimeId { get; set; } /// Season number. public int Season { get; set; } /// Voices mapped by display key e.g. "[Moon] AniUA". public Dictionary Voices { get; set; } = new Dictionary(); } /// Voice information for a specific player/studio combination within a season. public class AnimeONVoiceInfo { /// Studio/voice name (e.g., AniUA). public string Name { get; set; } /// Player type ("moon" or "ashdi"). public string PlayerType { get; set; } /// Display name (e.g., "[Moon] AniUA"). public string DisplayName { get; set; } /// Player identifier from API. public int PlayerId { get; set; } /// Fundub identifier from API. public int FundubId { get; set; } /// Flat list of episodes for the selected season. public List Episodes { get; set; } = new List(); } /// Episode information within a voice. public class AnimeONEpisodeInfo { /// Episode number. public int Number { get; set; } /// Episode title. public string Title { get; set; } /// Primary HLS link if available. public string Hls { get; set; } /// Fallback video URL (iframe or direct). public string VideoUrl { get; set; } /// Episode identifier from API. public int EpisodeId { get; set; } } }