namespace Backend.Data; internal sealed record CategorySeed(string GroupName, string Name, string Slug, string Description, int SortOrder); internal sealed record CandidateSeed(string CategorySlug, string DisplayName, string ChannelSlug, string Platform); internal sealed record WinnerSeed(int Year, string CategorySlug, string DisplayName, string ChannelSlug, string Platform); internal sealed record SiteFaqSeed(string Question, string Answer); internal sealed record SiteSocialSeed(string Label, string Platform, string Url, string Icon); internal static class SeedCatalog { internal static readonly CategorySeed[] CategorySeeds = [ new("Main Awards", "VTuber des Jahres", "vtuber-des-jahres", "Die groesste Auszeichnung des Jahres.", 1), new("Discovery", "Best Newcomer", "best-newcomer", "Neue Stimmen, neue Welten und frische Energie fuer die Szene.", 2), new("Creative", "Model & Design", "model-design", "Live2D, 3D, Outfit, Rigging und visuelle Identitaet.", 3), new("Performance", "Gesang & Musik", "gesang-musik", "Songs, Covers, Konzerte und musikalische Highlights.", 4), new("Gaming", "Best Gaming", "best-gaming", "Gameplay, Skill, Chaos und legendaere Gaming-Momente.", 5), new("Entertainment", "Best Variety", "best-variety", "Talk, Comedy, Watchalongs und kreative Streamformate.", 6), new("Community", "Community Liebling", "community-liebling", "Creator:innen, die ihre Community besonders stark verbinden.", 7), new("Collab", "Best Collab & Duo", "best-collab-duo", "Gemeinsame Streams, Projekte und Duo-Dynamik.", 8), ]; internal static readonly Dictionary LegacyCategorySlugMap = new(StringComparer.OrdinalIgnoreCase) { ["bestes-live-event"] = "best-newcomer", ["clip-des-jahres"] = "model-design", ["beste-community"] = "gesang-musik", }; internal static readonly SiteFaqSeed[] SiteFaqSeeds = [ new( "Wer darf nominiert werden?", "Jede:r aktive deutschsprachige VTuber kann nominiert werden — unabhaengig von Follower-Zahl oder Plattform. Die Community schlaegt in der Nominierungsphase ihre Favorit:innen vor."), new( "Wie funktioniert das Voting?", "Du meldest dich ausschliesslich mit deinem Twitch-Account an — nur so kannst du teilnehmen. Das haelt das Voting fair und bot-frei. Danach vergibst du pro Kategorie eine Stimme, aenderbar bis zum Ende der Phase."), new( "Was kostet die Teilnahme?", "Gar nichts. Nominieren, voten und die Show schauen ist komplett kostenlos — der VTuber Star Award ist ein Community-Event von Fans fuer Fans."), new( "Wann und wo findet die Award-Show statt?", "Die grosse Live-Show wird von Jayuhime gehostet und auf Twitch & YouTube gestreamt. Den genauen Termin findest du im Countdown oben — sei live dabei, wenn die Stars gekuert werden!"), new( "Ich wurde nominiert — was nun?", "Glueckwunsch! Du erhaeltst eine Benachrichtigung mit allen Infos. Teile deine Nominierung gern mit deiner Community und ruf zum Voten auf — jede Stimme zaehlt."), ]; internal static readonly SiteSocialSeed[] SiteSocialSeeds = [ new("Twitch", "twitch", "https://twitch.tv/jayuhime", "twitch"), new("YouTube", "youtube", "https://youtube.com/c/Jayuhime", "youtube"), new("X", "x", "https://x.com/jayuhime", "x"), new("Instagram", "instagram", "https://instagram.com/jayuhime", "instagram"), new("Discord", "discord", "https://discord.gg/jayuhime", "discord"), ]; internal static readonly CandidateSeed[] CurrentCandidateSeeds = [ new("vtuber-des-jahres", "Hoshimi Miyu", "@hoshimimiyu", "Twitch"), new("vtuber-des-jahres", "Kurainu", "@kurainu", "Twitch"), new("vtuber-des-jahres", "Shiro Ch.", "@shiroch", "Twitch"), new("best-newcomer", "Aoi Sakura", "@aoisakura", "YouTube"), new("best-newcomer", "Nox Live", "@noxlive", "Twitch"), new("model-design", "Velvet Rei", "@velvetrei", "Twitch"), new("model-design", "Mochi Atelier", "@mochiatelier", "Cake"), new("gesang-musik", "Melo Diva", "@melodiva", "YouTube"), new("gesang-musik", "Yuki Stern", "@yukistern", "Twitch"), new("best-gaming", "Kurainu", "@kurainu", "Twitch"), new("best-gaming", "PixelPunk", "@pixelpunk", "Twitch"), new("best-variety", "Taro Chaos", "@tarochaos", "Twitch"), new("best-variety", "Kotaro Plays", "@kotaroplays", "YouTube"), new("community-liebling", "Shiro Ch.", "@shiroch", "Twitch"), new("community-liebling", "Lumi", "@lumi_vt", "Cake"), new("best-collab-duo", "Akari & Nox", "@akari_vt", "Twitch"), new("best-collab-duo", "Mochi & Hana", "@mochi_mochi", "YouTube"), ]; internal static readonly WinnerSeed[] WinnerSeeds = [ new(2025, "vtuber-des-jahres", "Hoshimi Miyu", "@hoshimimiyu", "Twitch"), new(2025, "best-newcomer", "Aoi Sakura", "@aoisakura", "YouTube"), new(2025, "model-design", "Velvet Rei", "@velvetrei", "Twitch"), new(2025, "gesang-musik", "Melo Diva", "@melodiva", "YouTube"), new(2025, "best-gaming", "Kurainu", "@kurainu", "Twitch"), new(2025, "best-variety", "Taro Chaos", "@tarochaos", "Twitch"), new(2025, "community-liebling", "Shiro Ch.", "@shiroch", "Twitch"), new(2025, "best-collab-duo", "Akari & Nox", "@akari_vt", "Cake"), new(2024, "vtuber-des-jahres", "Aoi Sakura", "@aoisakura", "YouTube"), new(2024, "best-newcomer", "Lumi", "@lumi_vt", "Cake"), new(2024, "model-design", "Mochi Atelier", "@mochiatelier", "Cake"), new(2024, "gesang-musik", "Yuki Stern", "@yukistern", "Twitch"), new(2024, "best-gaming", "Starbyte", "@starbyte", "Twitch"), new(2024, "best-variety", "Kotaro Plays", "@kotaroplays", "YouTube"), new(2024, "community-liebling", "Moonrelay", "@moonrelay", "Twitch"), new(2024, "best-collab-duo", "Pixel & Kotaro", "@pixelpunk", "Twitch"), new(2023, "vtuber-des-jahres", "Akari Nova", "@akarinova", "Twitch"), new(2023, "best-newcomer", "Nox Live", "@noxlive", "Twitch"), new(2023, "model-design", "Rei Velvet", "@reivelvet", "YouTube"), new(2023, "gesang-musik", "Tenshi Vox", "@tenshivox", "Twitch"), new(2023, "best-gaming", "Bit Knight", "@bitknight", "Twitch"), new(2023, "best-variety", "Hana Hearts", "@hanahearts", "Cake"), new(2023, "community-liebling", "Sora Blau", "@sorablau", "YouTube"), new(2023, "best-collab-duo", "Yuki & Melo", "@yukistern", "Twitch"), ]; }