namespace MiGu.Server.Signal;

using System.Text.Json.Serialization;

public sealed class SignalTableManifest
{
    public int Version { get; set; } = 1;

    public List<SignalTableManifestEntry> Tables { get; set; } = new();
}

public sealed class SignalTableManifestEntry
{
    public string Id { get; set; } = "";

    public string Title { get; set; } = "";

    public string Category { get; set; } = "";

    public string FileName { get; set; } = "";

    public string Model { get; set; } = "";

    public List<SignalTableColumnEntry>? Columns { get; set; }
}

public sealed class SignalTableColumnEntry
{
    public string Key { get; set; } = "";

    public string Label { get; set; } = "";

    public string Type { get; set; } = "string";

    [JsonPropertyName("options")]
    public string[]? Options { get; set; }

    [JsonPropertyName("group")]
    public string? Group { get; set; }
}
