using FrontOffice.Main.Utilities;
using Microsoft.AspNetCore.Components;
using MudBlazor;

namespace FrontOffice.Main.Pages.Package;

public partial class MyPackages : ComponentBase
{
    [Inject] private PackageService PackageService { get; set; } = default!;

    private UserPackageStatusDto? _userStatus;
    private bool _isLoading = true;

    private List<BreadcrumbItem> _breadcrumbItems = new()
    {
        new BreadcrumbItem("صفحه اصلی", RouteConstants.Main.MainPage),
        new BreadcrumbItem("پروفایل", RouteConstants.Profile.Index),
        new BreadcrumbItem("پکیج‌های من", null, disabled: true)
    };

    protected override async Task OnInitializedAsync()
    {
        await LoadDataAsync();
    }

    private async Task LoadDataAsync()
    {
        _isLoading = true;

        try
        {
            _userStatus = await PackageService.GetUserPackageStatusAsync();
        }
        catch (Exception ex)
        {
#if DEBUG
            Console.WriteLine($"Error loading user package status: {ex.Message}");
#endif
        }
        finally
        {
            _isLoading = false;
        }
    }

    private static string GetPurchaseMethodText(string? method)
    {
        return method switch
        {
            "DayaLoan" => "وام دایا",
            "DirectPurchase" => "پرداخت مستقیم",
            _ => "نامشخص"
        };
    }

    private static Color GetPurchaseMethodColor(string? method)
    {
        return method switch
        {
            "DayaLoan" => Color.Info,
            "DirectPurchase" => Color.Success,
            _ => Color.Default
        };
    }

    private static string FormatPrice(long price)
    {
        return string.Format("{0:N0} تومان", price);
    }
}
