using System;
using System.Threading.Tasks;
using DysonNetwork.Common.Models;
using DysonNetwork.Pass.Features.Auth.Models;
namespace DysonNetwork.Pass.Features.Auth.Services;
public interface IAccountConnectionService
{
///
/// Finds an existing account connection or creates a new one
///
Task FindOrCreateConnection(Common.Models.OidcUserInfo userInfo, string provider);
///
/// Updates an existing connection with new token information
///
Task UpdateConnection(Common.Models.AccountConnection connection, Common.Models.OidcUserInfo userInfo);
///
/// Finds an account connection by provider and user ID
///
Task FindConnection(string provider, string userId);
///
/// Creates a new session for the specified account
///
Task CreateSessionAsync(Common.Models.Account account, string? deviceId = null);
///
/// Adds a new OIDC connection to an account
///
Task AddConnectionAsync(Common.Models.Account account, Common.Models.OidcUserInfo userInfo, string provider);
}