using System; using System.Threading.Tasks; using DysonNetwork.Common.Models; using DysonNetwork.Pass.Features.Auth.Models; namespace DysonNetwork.Pass.Features.Auth.Services; public interface IAccountService { /// /// Creates a new account from OIDC user info /// Task CreateAccount(Common.Models.OidcUserInfo userInfo); /// /// Finds an account by email /// Task FindByEmailAsync(string email); /// /// Finds an account by ID /// Task FindByIdAsync(string accountId); /// /// Updates an existing account /// Task UpdateAccount(Common.Models.Account account); /// /// Finds or creates an account based on OIDC user info /// Task FindOrCreateAccountAsync(Common.Models.OidcUserInfo userInfo, string provider); /// /// Gets an account by ID /// Task GetAccountByIdAsync(Guid accountId); /// /// Generates authentication tokens for an account /// Task GenerateAuthTokensAsync(Common.Models.Account account, string sessionId); }