Files
Wino-Mail/Wino.Core.Domain/Interfaces/IWinoAccountProfileService.cs
T

32 lines
1.8 KiB
C#
Raw Normal View History

2026-03-16 01:33:27 +01:00
#nullable enable
2026-03-19 10:26:17 +01:00
using System;
2026-03-16 01:33:27 +01:00
using System.Threading;
using System.Threading.Tasks;
using Wino.Core.Domain.Entities.Shared;
2026-03-19 01:50:14 +01:00
using Wino.Core.Domain.Enums;
2026-03-16 01:33:27 +01:00
using Wino.Core.Domain.Models.Accounts;
2026-03-18 17:43:56 +01:00
using Wino.Mail.Api.Contracts.Ai;
using Wino.Mail.Api.Contracts.Auth;
2026-03-19 01:50:14 +01:00
using Wino.Mail.Api.Contracts.Billing;
2026-03-18 17:43:56 +01:00
using Wino.Mail.Api.Contracts.Common;
2026-03-16 01:33:27 +01:00
namespace Wino.Core.Domain.Interfaces;
public interface IWinoAccountProfileService
{
Task<WinoAccountOperationResult> RegisterAsync(string email, string password, CancellationToken cancellationToken = default);
Task<WinoAccountOperationResult> LoginAsync(string email, string password, CancellationToken cancellationToken = default);
Task<WinoAccountOperationResult> RefreshAsync(CancellationToken cancellationToken = default);
2026-03-19 10:26:17 +01:00
Task<WinoAccountOperationResult> RefreshProfileAsync(CancellationToken cancellationToken = default);
2026-03-16 01:33:27 +01:00
Task<WinoAccount?> GetActiveAccountAsync();
2026-03-18 17:43:56 +01:00
Task<WinoAccount?> GetAuthenticatedAccountAsync(CancellationToken cancellationToken = default);
2026-03-16 01:33:27 +01:00
Task<bool> HasActiveAccountAsync();
2026-03-19 01:50:14 +01:00
Task<bool> HasAddOnAsync(WinoAddOnProductType productId, CancellationToken cancellationToken = default);
2026-03-18 17:43:56 +01:00
Task<ApiEnvelope<AuthUserDto>> GetCurrentUserAsync(CancellationToken cancellationToken = default);
Task<ApiEnvelope<AiStatusResultDto>> GetAiStatusAsync(CancellationToken cancellationToken = default);
2026-03-19 01:50:14 +01:00
Task<ApiEnvelope<CheckoutSessionResultDto>> CreateCheckoutSessionAsync(WinoAddOnProductType productId, CancellationToken cancellationToken = default);
Task<ApiEnvelope<CustomerPortalResultDto>> CreateCustomerPortalSessionAsync(CancellationToken cancellationToken = default);
2026-03-19 10:26:17 +01:00
Task<bool> ProcessBillingCallbackAsync(Uri callbackUri, CancellationToken cancellationToken = default);
2026-03-16 01:33:27 +01:00
Task SignOutAsync(CancellationToken cancellationToken = default);
}