namespace Blahblah.FlowerStory;

public sealed class Constants
{
    public const string CategoryOther = "other";
    public const string EventUnknown = "unknown";

    public const string BaseUrl = "https://flower.tsanie.org";

    public const SQLite.SQLiteOpenFlags Flags =
        SQLite.SQLiteOpenFlags.ReadWrite |
        SQLite.SQLiteOpenFlags.Create |
        SQLite.SQLiteOpenFlags.SharedCache;

    private const string databaseFilename = "flowerstory.db3";
    public static string DatabasePath => Path.Combine(FileSystem.AppDataDirectory, databaseFilename);

    public static readonly Dictionary<int, string> Categories = new()
    {
        [0] = CategoryOther,
        [1] = "cactus",              // 仙人球
        [2] = "hibiscus",            // 扶桑花
        [3] = "bougainvillea",       // 三角梅
        [4] = "sunflower",           // 太阳花
        [5] = "milanflower",         // 米兰花
        [6] = "jasmine",             // 茉莉花
        [7] = "periwinkle",          // 长春花
        [8] = "nasturtium",          // 旱金莲
        [9] = "mirabilis",           // 紫薇花
        [10] = "tigerthornplum",     // 虎刺梅
        [11] = "geranium",           // 天竺葵
        [12] = "ballorchid",         // 球兰
        [13] = "medalchrysanthemum", // 勋章菊
        [14] = "dianthus",           // 石竹
        [15] = "fivecolorplum",      // 五色梅
        [16] = "fuchsia",            // 倒挂金钟
        [17] = "bamboocrabapple",    // 竹节海棠
        [18] = "impatiens",          // 凤仙花
        [19] = "beautysakura",       // 美女樱
        [20] = "petunias",           // 矮牵牛
        [21] = "desertrose",         // 沙漠玫瑰
        [22] = "trailingcampanula",  // 蔓性风铃花
        [23] = "chineserose",        // 月季花
    };

    public static readonly Dictionary<int, Event> Events = new()
    {
        [0] = new(EventUnknown),
        [1] = new("buy", true),     // 购买
        [2] = new("born", true),    // 出生
        [3] = new("changebasin"),   // 换盆
        [4] = new("watering"),      // 浇水
        [5] = new("fertilize"),     // 施肥
        [6] = new("germination"),   // 发芽
        [7] = new("blossom"),       // 开花
        [8] = new("fallenleaves"),  // 落叶
        [9] = new("prune"),         // 修剪
        [10] = new("sick"),         // 生病
        [11] = new("death", true),  // 死亡
        [12] = new("sell", true),   // 出售
        [13] = new("share"),        // 分享
    };
}

public record Event(string Name, bool Unique = false);