using MongoDB.Bson;
namespace FozFc.Api.Application.Auth;
///
/// Authentication and user-profile operations. Register/Login/Google return an
/// auth payload document: { token, user, profile }.
///
public interface IAuthService
{
Task RegisterAsync(RegisterRequest request, CancellationToken ct = default);
Task LoginAsync(LoginRequest request, CancellationToken ct = default);
Task LoginWithGoogleAsync(GoogleRequest request, CancellationToken ct = default);
Task GetProfileAsync(string uid, CancellationToken ct = default);
Task GetRoleAsync(string uid, CancellationToken ct = default);
Task RefreshProgressAsync(string uid, CancellationToken ct = default);
Task ChangePasswordAsync(string uid, ChangePasswordRequest request, CancellationToken ct = default);
}