using System.Collections.Generic;
using FontAwesome.Sharp;

namespace PersonalToolBox.Helpers;

public static class IconProvider
{
    public record IconOption(string Name, IconChar Icon, string Category);

    public static List<IconOption> AvailableIcons { get; } = new()
    {
        // ── 开发工具 ──
        new("代码", IconChar.Code, "开发"),
        new("终端", IconChar.Terminal, "开发"),
        new("Bug", IconChar.Bug, "开发"),
        new("Git", IconChar.GitAlt, "开发"),
        new("GitHub", IconChar.Github, "开发"),
        new("数据库", IconChar.Database, "开发"),
        new("服务器", IconChar.Server, "开发"),
        new("云服务", IconChar.Cloud, "开发"),
        new("代码分支", IconChar.CodeBranch, "开发"),
        new("键盘", IconChar.Keyboard, "开发"),
        new("Docker", IconChar.Docker, "开发"),
        new("Python", IconChar.Python, "开发"),
        new("HTML5", IconChar.Html5, "开发"),
        new("CSS3", IconChar.Css3Alt, "开发"),
        new("JS", IconChar.Js, "开发"),
        new("Markdown", IconChar.Markdown, "开发"),
        new("NPM", IconChar.Npm, "开发"),
        new("Node", IconChar.NodeJs, "开发"),
        new("Rust", IconChar.Rust, "开发"),

        // ── 文件与文件夹 ──
        new("文件夹", IconChar.Folder, "文件"),
        new("文件夹打开", IconChar.FolderOpen, "文件"),
        new("文件夹树", IconChar.FolderTree, "文件"),
        new("文件", IconChar.File, "文件"),
        new("文件代码", IconChar.FileCode, "文件"),
        new("文件图片", IconChar.FileImage, "文件"),
        new("文件PDF", IconChar.FilePdf, "文件"),
        new("文件Word", IconChar.FileWord, "文件"),
        new("文件Excel", IconChar.FileExcel, "文件"),
        new("文件存档", IconChar.FileArchive, "文件"),
        new("文件音频", IconChar.FileAudio, "文件"),
        new("文件视频", IconChar.FileVideo, "文件"),
        new("文件签名", IconChar.FileSignature, "文件"),
        new("下载", IconChar.Download, "文件"),
        new("上传", IconChar.Upload, "文件"),
        new("保存", IconChar.Save, "文件"),
        new("复制", IconChar.Copy, "文件"),
        new("粘贴", IconChar.Paste, "文件"),
        new("剪切", IconChar.Cut, "文件"),
        new("打印", IconChar.Print, "文件"),
        new("剪贴板", IconChar.Clipboard, "文件"),
        new("回收站", IconChar.Trash, "文件"),
        new("撤销", IconChar.Undo, "文件"),
        new("重做", IconChar.Redo, "文件"),

        // ── 网页与网络 ──
        new("地球", IconChar.Globe, "网络"),
        new("WiFi", IconChar.Wifi, "网络"),
        new("链接", IconChar.Link, "网络"),
        new("RSS", IconChar.Rss, "网络"),
        new("网络", IconChar.NetworkWired, "网络"),
        new("蓝牙", IconChar.Bluetooth, "网络"),
        new("信号", IconChar.Signal, "网络"),
        new("卫星", IconChar.Satellite, "网络"),
        new("上传云", IconChar.CloudUploadAlt, "网络"),
        new("下载云", IconChar.CloudDownloadAlt, "网络"),
        new("共享", IconChar.ShareAlt, "网络"),
        new("同步", IconChar.Sync, "网络"),
        new("邮件发送", IconChar.PaperPlane, "网络"),
        new("以太网", IconChar.Ethernet, "网络"),

        // ── 设置与工具 ──
        new("齿轮", IconChar.Cog, "设置"),
        new("扳手", IconChar.Wrench, "设置"),
        new("工具", IconChar.Tools, "设置"),
        new("搜索", IconChar.Search, "设置"),
        new("锁定", IconChar.Lock, "设置"),
        new("解锁", IconChar.Unlock, "设置"),
        new("盾牌", IconChar.ShieldAlt, "设置"),
        new("钥匙", IconChar.Key, "设置"),
        new("放大镜+", IconChar.SearchPlus, "设置"),
        new("放大镜-", IconChar.SearchMinus, "设置"),
        new("过滤器", IconChar.Filter, "设置"),
        new("排序", IconChar.Sort, "设置"),
        new("垃圾桶", IconChar.TrashAlt, "设置"),
        new("编辑", IconChar.Edit, "设置"),
        new("笔", IconChar.Pen, "设置"),
        new("铅笔", IconChar.PencilAlt, "设置"),
        new("放大", IconChar.Expand, "设置"),
        new("缩小", IconChar.Compress, "设置"),
        new("二维码", IconChar.Qrcode, "设置"),
        new("条形码", IconChar.Barcode, "设置"),
        new("指纹", IconChar.Fingerprint, "设置"),
        new("拼图", IconChar.PuzzlePiece, "设置"),

        // ── 媒体与娱乐 ──
        new("播放", IconChar.Play, "媒体"),
        new("暂停", IconChar.Pause, "媒体"),
        new("停止", IconChar.Stop, "媒体"),
        new("音乐", IconChar.Music, "媒体"),
        new("图片", IconChar.Image, "媒体"),
        new("视频", IconChar.Video, "媒体"),
        new("相机", IconChar.Camera, "媒体"),
        new("游戏手柄", IconChar.Gamepad, "媒体"),
        new("耳机", IconChar.Headphones, "媒体"),
        new("音量", IconChar.VolumeUp, "媒体"),
        new("静音", IconChar.VolumeMute, "媒体"),
        new("麦克风", IconChar.Microphone, "媒体"),
        new("电视", IconChar.Tv, "媒体"),
        new("电影", IconChar.Film, "媒体"),
        new("CD", IconChar.CompactDisc, "媒体"),
        new("唱片", IconChar.Headphones, "媒体"),

        // ── 常用 ──
        new("主页", IconChar.Home, "常用"),
        new("用户", IconChar.User, "常用"),
        new("用户组", IconChar.Users, "常用"),
        new("时钟", IconChar.Clock, "常用"),
        new("日历", IconChar.Calendar, "常用"),
        new("日历检查", IconChar.CalendarCheck, "常用"),
        new("日历天", IconChar.CalendarDay, "常用"),
        new("日历周", IconChar.CalendarWeek, "常用"),
        new("信封", IconChar.Envelope, "常用"),
        new("邮件打开", IconChar.EnvelopeOpen, "常用"),
        new("铃铛", IconChar.Bell, "常用"),
        new("铃铛斜线", IconChar.BellSlash, "常用"),
        new("书签", IconChar.Bookmark, "常用"),
        new("星标", IconChar.Star, "常用"),
        new("空心星", IconChar.StarHalfAlt, "常用"),
        new("心形", IconChar.Heart, "常用"),
        new("旗帜", IconChar.Flag, "常用"),
        new("地图标记", IconChar.MapMarkerAlt, "常用"),
        new("指南针", IconChar.Compass, "常用"),
        new("地图", IconChar.Map, "常用"),
        new("火箭", IconChar.Rocket, "常用"),
        new("灯泡", IconChar.Lightbulb, "常用"),
        new("标签", IconChar.Tag, "常用"),
        new("标签组", IconChar.Tags, "常用"),
        new("列表", IconChar.List, "常用"),
        new("列表项", IconChar.ListAlt, "常用"),
        new("图表", IconChar.ChartBar, "常用"),
        new("折线图", IconChar.ChartLine, "常用"),
        new("饼图", IconChar.ChartPie, "常用"),
        new("信息", IconChar.InfoCircle, "常用"),
        new("警告", IconChar.ExclamationTriangle, "常用"),
        new("问题", IconChar.QuestionCircle, "常用"),
        new("检查", IconChar.CheckCircle, "常用"),
        new("购物车", IconChar.ShoppingCart, "常用"),
        new("信用卡", IconChar.CreditCard, "常用"),
        new("钱包", IconChar.Wallet, "常用"),
        new("电源", IconChar.PowerOff, "常用"),
        new("闪电", IconChar.Bolt, "常用"),
        new("调色板", IconChar.Palette, "常用"),
        new("火", IconChar.Fire, "常用"),
        new("水滴", IconChar.Tint, "常用"),
        new("磁铁", IconChar.Magnet, "常用"),
        new("奖杯", IconChar.Trophy, "常用"),

        // ── 办公 ──
        new("编辑", IconChar.Edit, "办公"),
        new("笔", IconChar.Pen, "办公"),
        new("注释", IconChar.Comment, "办公"),
        new("评论", IconChar.Comments, "办公"),
        new("邮件@", IconChar.At, "办公"),
        new("地址簿", IconChar.AddressBook, "办公"),
        new("便签", IconChar.StickyNote, "办公"),
        new("论文", IconChar.FileAlt, "办公"),
        new("文件夹+", IconChar.FolderPlus, "办公"),
        new("书", IconChar.Book, "办公"),
        new("书打开", IconChar.BookOpen, "办公"),
        new("商务包", IconChar.Briefcase, "办公"),
        new("计算器", IconChar.Calculator, "办公"),
        new("图表区", IconChar.ChartArea, "办公"),
        new("收件箱", IconChar.Inbox, "办公"),
        new("任务列表", IconChar.Tasks, "办公"),
        new("笔尖", IconChar.PenNib, "办公"),
        new("签名", IconChar.Signature, "办公"),
        new("印章", IconChar.Stamp, "办公"),

        // ── 系统 ──
        new("Windows", IconChar.Windows, "系统"),
        new("桌面", IconChar.Desktop, "系统"),
        new("笔记本", IconChar.Laptop, "系统"),
        new("手机", IconChar.MobileAlt, "系统"),
        new("平板", IconChar.TabletAlt, "系统"),
        new("命令行", IconChar.Terminal, "系统"),
        new("微芯片", IconChar.Microchip, "系统"),
        new("硬盘", IconChar.Hdd, "系统"),
        new("内存", IconChar.Memory, "系统"),
        new("USB", IconChar.Usb, "系统"),
        new("插件", IconChar.Plug, "系统"),
        new("电池满", IconChar.BatteryFull, "系统"),
        new("鼠标", IconChar.Mouse, "系统"),
        new("SD卡", IconChar.SdCard, "系统"),
        new("处理器", IconChar.Microchip, "系统"),
        new("风扇", IconChar.Fan, "系统"),
        new("温度计", IconChar.ThermometerHalf, "系统"),

        // ── 社交 ──
        new("微信", IconChar.Weixin, "社交"),
        new("微博", IconChar.Weibo, "社交"),
        new("QQ", IconChar.Qq, "社交"),
        new("Discord", IconChar.Discord, "社交"),
        new("Slack", IconChar.Slack, "社交"),
        new("Telegram", IconChar.Telegram, "社交"),
        new("Reddit", IconChar.Reddit, "社交"),
        new("YouTube", IconChar.Youtube, "社交"),
        new("Twitch", IconChar.Twitch, "社交"),
        new("Steam", IconChar.Steam, "社交"),

        // ── 箭头与导航 ──
        new("右箭头", IconChar.ArrowRight, "导航"),
        new("左箭头", IconChar.ArrowLeft, "导航"),
        new("上箭头", IconChar.ArrowUp, "导航"),
        new("下箭头", IconChar.ArrowDown, "导航"),
        new("循环", IconChar.Redo, "导航"),
        new("刷新", IconChar.Sync, "导航"),
        new("返回", IconChar.ChevronLeft, "导航"),
        new("前进", IconChar.ChevronRight, "导航"),
        new("位置", IconChar.LocationArrow, "导航"),
        new("十字准星", IconChar.Crosshairs, "导航"),

        // ── 安全 ──
        new("用户锁", IconChar.UserLock, "安全"),
        new("用户盾", IconChar.UserShield, "安全"),
        new("病毒", IconChar.Virus, "安全"),
        new("安全盾", IconChar.ShieldVirus, "安全"),
        new("指纹", IconChar.Fingerprint, "安全"),
        new("ID卡", IconChar.IdCard, "安全"),
        new("门禁", IconChar.DoorOpen, "安全"),
        new("面具", IconChar.Mask, "安全"),
        new("眼睛", IconChar.Eye, "安全"),
        new("眼睛斜线", IconChar.EyeSlash, "安全"),
    };
}
