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; }
}
}