namespace PancakesWeb.Data;

public class Link
{
    public required string Name { get; set; }
    public required string? Href { get; set; }
    public required string Description { get; set; }
    public string? Icon { get; set; }
    public bool IconInvert { get; set; }
    public bool HomePageOnly { get; set; } = true;
}

public static class Links
{
    public static readonly List<Link> Accounts =
    [
        new Link
        {
            Name = "Bluesky",
            Href = "https://bsky.app/profile/pancakes.gay",
            Description = "@pancakes.gay",
            Icon = "bluesky.webp"
        },
        new Link
        {
            Name = "Codeberg",
            Href = "https://codeberg.org/pancakes",
            Description = "pancakes",
            Icon = "codeberg.webp"
        },
        new Link
        {
            Name = "Discord",
            Href = null,
            Description = "pancakesmeow",
            Icon = "discord.webp"
        },
        new Link
        {
            Name = "Fediverse",
            Href = "https://shrimp.meow.company/@pancakes",
            Description = "@pancakes@meow.company",
            Icon = "iceshrimp.webp",
            IconInvert = true,
            HomePageOnly = false
        },
        new Link
        {
            Name = "Forgejo",
            Href = "https://git.meow.company/pancakes",
            Description = "pancakes",
            Icon = "forgejo.webp",
            HomePageOnly = false
        },
        new Link
        {
            Name = "GitHub",
            Href = "https://github.com/pancakesmeow",
            Description = "pancakesmeow",
            Icon = "github.webp",
            IconInvert = true
        },
        new Link
        {
            Name = "pronouns.cc",
            Href = "https://pronouns.cc/@pancakes",
            Description = "@pancakes",
            Icon = "pronouns_cc.webp"
        },
        new Link
        {
            Name = "Signal",
            Href = null,
            Description = "pancakes.80",
            Icon = "signal.webp",
            IconInvert = true
        },
        new Link
        {
            Name = "YouTube",
            Href = "https://youtube.com/@trypancakes",
            Description = "@trypancakes",
            Icon = "youtube.webp",
            HomePageOnly = false
        }
    ];

    public static readonly List<Link> Projects =
    [
        new Link
        {
            Name = "fedifeeds",
            Href = "https://git.meow.company/pancakes/fedifeeds",
            Description =
                "RSS feeds to Mastodon API. Supports multiple feeds per account, Markdown, and automatic threading (split into multiple notes to fit character limit)."
        },
        new Link
        {
            Name = "Iceshrimp Updates Bot",
            Href = "https://shrimp.meow.company/@iceshrimp_updates",
            Description =
                "This bot automatically checks for Iceshrimp-js and Iceshrimp.NET releases and posts them. Based on fedifeeds."
        },
        new Link
        {
            Name = "SCP Wiki Pages Bot",
            Href = "https://shrimp.meow.company/@scp_pages",
            Description = "Posts random pages from the SCP Foundation wiki on the Fediverse."
        }
    ];

    public static readonly List<Link> Contributions =
    [
        new Link
        {
            Name = "Iceshrimp.NET",
            Href = "https://iceshrimp.dev/iceshrimp/Iceshrimp.NET",
            Description = "The .NET rewrite of the Iceshrimp server software for the Fediverse."
        }
    ];
}