ironservices-dotnet/Models.cs

109 lines
2.5 KiB
C#

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
/// <summary>
/// Result of a login attempt.
/// </summary>
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; }
}
/// <summary>
/// Result of a registration attempt.
/// </summary>
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; }
}
/// <summary>
/// Result of email verification.
/// </summary>
public class VerifyEmailResult
{
public bool Success { get; set; }
public string? Error { get; set; }
public string? Message { get; set; }
}
/// <summary>
/// Result of password reset.
/// </summary>
public class ResetPasswordResult
{
public bool Success { get; set; }
public string? Error { get; set; }
}
/// <summary>
/// User profile information.
/// </summary>
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