using Store.Management.Models; using MAX.Core.DependencyInjection; using Store.Management.Api; using Store.Management.Api.Users; using Store.Management.Api.Models; namespace Store.Management.Framework.Services; public interface IUserService { Task> SearchAsync(UserSearchRequest request, CancellationToken cancellationToken = default); Task CreateAsync(UserCreateRequest request, CancellationToken cancellationToken = default); Task UpdateAsync(UserUpdateRequest request, CancellationToken cancellationToken = default); Task UpdateBillingAsync(UserBillingUpdateRequest request, CancellationToken cancellationToken = default); Task ChangePasswordAsync(ChangePasswordRequest request, CancellationToken cancellationToken = default); Task DeleteAsync(int id, CancellationToken cancellationToken = default); } internal sealed class UserService(StoreApiClient client) : IUserService, ISingletonDependency { public Task> SearchAsync(UserSearchRequest request, CancellationToken cancellationToken = default) => client.Users.SearchAsync(request, cancellationToken); public Task CreateAsync(UserCreateRequest request, CancellationToken cancellationToken = default) => client.Users.CreateAsync(request, cancellationToken); public Task UpdateAsync(UserUpdateRequest request, CancellationToken cancellationToken = default) => client.Users.UpdateAsync(request, cancellationToken); public Task UpdateBillingAsync(UserBillingUpdateRequest request, CancellationToken cancellationToken = default) => client.Users.UpdateBillingAsync(request, cancellationToken); public Task ChangePasswordAsync(ChangePasswordRequest request, CancellationToken cancellationToken = default) => client.Users.ChangePasswordAsync(request, cancellationToken); public Task DeleteAsync(int id, CancellationToken cancellationToken = default) => client.Users.DeleteAsync(id, cancellationToken); }