Jostka
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Imprink.Domain.Common.Models;
|
||||
|
||||
public class Auth0User
|
||||
|
||||
@@ -5,19 +5,19 @@ namespace Imprink.Domain.Entities.Users;
|
||||
public class User
|
||||
{
|
||||
public string Id { get; set; } = null!;
|
||||
public required string Name { get; set; }
|
||||
public required string Nickname { get; set; }
|
||||
public required string Email { get; set; }
|
||||
public required string FirstName { get; set; }
|
||||
public required string LastName { get; set; }
|
||||
|
||||
public bool EmailVerified { get; set; }
|
||||
public string? FullName { get; set; }
|
||||
public string? PhoneNumber { get; set; }
|
||||
public DateTime? DateOfBirth { get; set; }
|
||||
public required bool IsActive { get; set; }
|
||||
public DateTime? LastLoginAt { get; set; }
|
||||
|
||||
public virtual ICollection<Address> Addresses { get; set; } = new List<Address>();
|
||||
public virtual ICollection<UserRole> UserRoles { get; set; } = new List<UserRole>();
|
||||
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
|
||||
|
||||
public string FullName => $"{FirstName} {LastName}";
|
||||
public Address? DefaultAddress => Addresses.FirstOrDefault(a => a.IsDefault && a.IsActive);
|
||||
public Address? DefaultAddress => Addresses.FirstOrDefault(a => a is { IsDefault: true, IsActive: true });
|
||||
public IEnumerable<Role> Roles => UserRoles.Select(ur => ur.Role);
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
using Imprink.Domain.Common.Models;
|
||||
using Imprink.Domain.Entities.Users;
|
||||
|
||||
namespace Imprink.Domain.Repositories;
|
||||
|
||||
public interface IUserRepository
|
||||
{
|
||||
Task<bool> UpdateOrCreateUserAsync(Auth0User user, CancellationToken cancellationToken = default);
|
||||
Task<User?> GetUserByIdAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<User?> GetUserByEmailAsync(string email, CancellationToken cancellationToken = default);
|
||||
Task<IEnumerable<User>> GetAllUsersAsync(CancellationToken cancellationToken = default);
|
||||
@@ -18,19 +20,8 @@ public interface IUserRepository
|
||||
|
||||
Task<bool> ActivateUserAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<bool> DeactivateUserAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task UpdateLastLoginAsync(string userId, DateTime loginTime, CancellationToken cancellationToken = default);
|
||||
|
||||
Task<IEnumerable<User>> SearchUsersAsync(string searchTerm, CancellationToken cancellationToken = default);
|
||||
Task<IEnumerable<User>> GetUsersByRoleAsync(Guid roleId, CancellationToken cancellationToken = default);
|
||||
|
||||
Task<(IEnumerable<User> Users, int TotalCount)> GetUsersPagedAsync(
|
||||
int pageNumber,
|
||||
int pageSize,
|
||||
string? searchTerm = null,
|
||||
bool? isActive = null,
|
||||
CancellationToken cancellationToken = default);
|
||||
|
||||
Task<User?> GetUserWithAddressesAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<User?> GetUserWithRolesAsync(string userId, CancellationToken cancellationToken = default);
|
||||
Task<User?> GetUserWithAllRelatedDataAsync(string userId, CancellationToken cancellationToken = default);
|
||||
}
|
||||
Reference in New Issue
Block a user