namespace IronServices.Client;
#region API Response DTOs
internal class LoginResponse
{
public string? UserId { get; set; }
public string? Email { get; set; }
public string? DisplayName { get; set; }
public bool EmailVerified { get; set; }
public string? SubscriptionTier { get; set; }
public string? Role { get; set; }
public string? SessionToken { get; set; }
public DateTime? ExpiresAt { get; set; }
}
internal class RegisterResponse
{
public UserInfo? User { get; set; }
public string? ApiKey { get; set; }
}
internal class UserInfo
{
public string? Id { get; set; }
public string? TenantId { get; set; }
public string? Email { get; set; }
public string? DisplayName { get; set; }
public bool EmailVerified { get; set; }
public string? Role { get; set; }
}
internal class VerifyEmailResponse
{
public string? Message { get; set; }
public string? SessionToken { get; set; }
public UserInfo? User { get; set; }
}
internal class ErrorResponse
{
public string? Error { get; set; }
}
#endregion
#region Public Result Types
///
/// Result of a login attempt.
///
public class LoginResult
{
public bool Success { get; set; }
public string? Error { get; set; }
public string? UserId { get; set; }
public string? Email { get; set; }
public string? DisplayName { get; set; }
public string? Role { get; set; }
public DateTime? ExpiresAt { get; set; }
}
///
/// Result of a registration attempt.
///
public class RegisterResult
{
public bool Success { get; set; }
public string? Error { get; set; }
public string? UserId { get; set; }
public string? Email { get; set; }
public string? ApiKey { get; set; }
}
///
/// Result of email verification.
///
public class VerifyEmailResult
{
public bool Success { get; set; }
public string? Error { get; set; }
public string? Message { get; set; }
}
///
/// Result of password reset.
///
public class ResetPasswordResult
{
public bool Success { get; set; }
public string? Error { get; set; }
}
///
/// User profile information.
///
public class UserProfile
{
public string? UserId { get; set; }
public string? Email { get; set; }
public string? DisplayName { get; set; }
public bool EmailVerified { get; set; }
public string? Role { get; set; }
public string? SubscriptionPlan { get; set; }
public DateTime? CreatedAt { get; set; }
}
#endregion