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);
}