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