using System.Globalization;
using Avalonia.Data.Converters;

namespace ClaudeDo.Ui.Converters;

public sealed class TimeSpanToHhmmConverter : IValueConverter
{
    public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) =>
        value is TimeSpan t ? $"{t.Hours:00}:{t.Minutes:00}" : "07:00";

    public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
    {
        if (value is not string s) return new TimeSpan(7, 0, 0);
        var parts = s.Split(':');
        if (parts.Length == 2 &&
            int.TryParse(parts[0], out var h) && h is >= 0 and <= 23 &&
            int.TryParse(parts[1], out var m) && m is >= 0 and <= 59)
            return new TimeSpan(h, m, 0);
        return new TimeSpan(7, 0, 0);
    }
}
