using Microsoft.AspNetCore.Components;
using MudBlazor;

namespace FrontOffice.Main.Pages.Profile;

public partial class ChangePassword : ComponentBase
{
    private string _currentPassword = string.Empty;
    private string _newPassword = string.Empty;
    private string _confirmPassword = string.Empty;
    private string _error = string.Empty;
    private bool _saving;
    private bool _success;

    private async Task ChangePasswordAsync()
    {
        _error = string.Empty;

        // Validation
        if (string.IsNullOrWhiteSpace(_currentPassword))
        {
            _error = "رمز عبور فعلی را وارد کنید";
            return;
        }

        if (string.IsNullOrWhiteSpace(_newPassword))
        {
            _error = "رمز عبور جدید را وارد کنید";
            return;
        }

        if (_newPassword.Length < 8)
        {
            _error = "رمز عبور جدید باید حداقل 8 کاراکتر باشد";
            return;
        }

        if (_newPassword != _confirmPassword)
        {
            _error = "رمز عبور جدید و تکرار آن یکسان نیستند";
            return;
        }

        if (_currentPassword == _newPassword)
        {
            _error = "رمز عبور جدید باید متفاوت از رمز فعلی باشد";
            return;
        }

        _saving = true;
        try
        {
            // TODO: Call UserContract.ChangePasswordAsync when available
            // var request = new ChangePasswordRequest
            // {
            //     CurrentPassword = _currentPassword,
            //     NewPassword = _newPassword
            // };
            // await UserContract.ChangePasswordAsync(request);

            // Simulate API call
            await Task.Delay(500);

            _success = true;
            Snackbar.Add("رمز عبور با موفقیت تغییر کرد", Severity.Success);
        }
        catch (Exception ex)
        {
            _error = ex.Message;
            Snackbar.Add($"خطا در تغییر رمز عبور: {ex.Message}", Severity.Error);
        }
        finally
        {
            _saving = false;
        }
    }
}
