From 1765ce218375a870d1295387e3791eb1b8cf8e2c Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 04:37:01 +0000 Subject: [PATCH] feat: add Identity domain entities, DTOs, and service interface - AppUser and AppRole entities (plain C# classes, no ASP.NET Identity) - RegisterRequest, RegisterResult, LoginRequest, LoginResult, AppUserDto DTOs - IIdentityService interface with Register, Login, GetUserById, GetAllUsers --- .../Identity/Identity.Domain/DTOs/AppUserDto.cs | 11 +++++++++++ .../Identity/Identity.Domain/DTOs/LoginRequest.cs | 7 +++++++ .../Identity/Identity.Domain/DTOs/LoginResult.cs | 8 ++++++++ .../Identity.Domain/DTOs/RegisterRequest.cs | 10 ++++++++++ .../Identity.Domain/DTOs/RegisterResult.cs | 8 ++++++++ .../Identity/Identity.Domain/Entities/AppRole.cs | 8 ++++++++ .../Identity/Identity.Domain/Entities/AppUser.cs | 14 ++++++++++++++ .../Identity.Domain/Interfaces/IIdentityService.cs | 11 +++++++++++ 8 files changed, 77 insertions(+) create mode 100644 src/Services/Identity/Identity.Domain/DTOs/AppUserDto.cs create mode 100644 src/Services/Identity/Identity.Domain/DTOs/LoginRequest.cs create mode 100644 src/Services/Identity/Identity.Domain/DTOs/LoginResult.cs create mode 100644 src/Services/Identity/Identity.Domain/DTOs/RegisterRequest.cs create mode 100644 src/Services/Identity/Identity.Domain/DTOs/RegisterResult.cs create mode 100644 src/Services/Identity/Identity.Domain/Entities/AppRole.cs create mode 100644 src/Services/Identity/Identity.Domain/Entities/AppUser.cs create mode 100644 src/Services/Identity/Identity.Domain/Interfaces/IIdentityService.cs diff --git a/src/Services/Identity/Identity.Domain/DTOs/AppUserDto.cs b/src/Services/Identity/Identity.Domain/DTOs/AppUserDto.cs new file mode 100644 index 0000000..55502ba --- /dev/null +++ b/src/Services/Identity/Identity.Domain/DTOs/AppUserDto.cs @@ -0,0 +1,11 @@ +namespace Identity.Domain.DTOs; + +public class AppUserDto +{ + public Guid Id { get; set; } + public string UserName { get; set; } = string.Empty; + public string Email { get; set; } = string.Empty; + public string? FullName { get; set; } + public string? JobTitle { get; set; } + public bool IsEnabled { get; set; } +} diff --git a/src/Services/Identity/Identity.Domain/DTOs/LoginRequest.cs b/src/Services/Identity/Identity.Domain/DTOs/LoginRequest.cs new file mode 100644 index 0000000..e700f79 --- /dev/null +++ b/src/Services/Identity/Identity.Domain/DTOs/LoginRequest.cs @@ -0,0 +1,7 @@ +namespace Identity.Domain.DTOs; + +public class LoginRequest +{ + public string UserName { get; set; } = string.Empty; + public string Password { get; set; } = string.Empty; +} diff --git a/src/Services/Identity/Identity.Domain/DTOs/LoginResult.cs b/src/Services/Identity/Identity.Domain/DTOs/LoginResult.cs new file mode 100644 index 0000000..980e31d --- /dev/null +++ b/src/Services/Identity/Identity.Domain/DTOs/LoginResult.cs @@ -0,0 +1,8 @@ +namespace Identity.Domain.DTOs; + +public class LoginResult +{ + public bool Success { get; set; } + public string? ErrorMessage { get; set; } + public string? Token { get; set; } +} diff --git a/src/Services/Identity/Identity.Domain/DTOs/RegisterRequest.cs b/src/Services/Identity/Identity.Domain/DTOs/RegisterRequest.cs new file mode 100644 index 0000000..e0a66b9 --- /dev/null +++ b/src/Services/Identity/Identity.Domain/DTOs/RegisterRequest.cs @@ -0,0 +1,10 @@ +namespace Identity.Domain.DTOs; + +public class RegisterRequest +{ + public string UserName { get; set; } = string.Empty; + public string Email { get; set; } = string.Empty; + public string Password { get; set; } = string.Empty; + public string? FullName { get; set; } + public string? JobTitle { get; set; } +} diff --git a/src/Services/Identity/Identity.Domain/DTOs/RegisterResult.cs b/src/Services/Identity/Identity.Domain/DTOs/RegisterResult.cs new file mode 100644 index 0000000..2449e40 --- /dev/null +++ b/src/Services/Identity/Identity.Domain/DTOs/RegisterResult.cs @@ -0,0 +1,8 @@ +namespace Identity.Domain.DTOs; + +public class RegisterResult +{ + public bool Success { get; set; } + public string? ErrorMessage { get; set; } + public AppUserDto? User { get; set; } +} diff --git a/src/Services/Identity/Identity.Domain/Entities/AppRole.cs b/src/Services/Identity/Identity.Domain/Entities/AppRole.cs new file mode 100644 index 0000000..1d1f1df --- /dev/null +++ b/src/Services/Identity/Identity.Domain/Entities/AppRole.cs @@ -0,0 +1,8 @@ +namespace Identity.Domain.Entities; + +public class AppRole +{ + public Guid Id { get; set; } + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } +} diff --git a/src/Services/Identity/Identity.Domain/Entities/AppUser.cs b/src/Services/Identity/Identity.Domain/Entities/AppUser.cs new file mode 100644 index 0000000..4eaf7b2 --- /dev/null +++ b/src/Services/Identity/Identity.Domain/Entities/AppUser.cs @@ -0,0 +1,14 @@ +namespace Identity.Domain.Entities; + +public class AppUser +{ + public Guid Id { get; set; } + public string UserName { get; set; } = string.Empty; + public string Email { get; set; } = string.Empty; + public string PasswordHash { get; set; } = string.Empty; + public string? FullName { get; set; } + public string? JobTitle { get; set; } + public bool IsEnabled { get; set; } = true; + public DateTime CreatedAt { get; set; } + public DateTime UpdatedAt { get; set; } +} diff --git a/src/Services/Identity/Identity.Domain/Interfaces/IIdentityService.cs b/src/Services/Identity/Identity.Domain/Interfaces/IIdentityService.cs new file mode 100644 index 0000000..4985edf --- /dev/null +++ b/src/Services/Identity/Identity.Domain/Interfaces/IIdentityService.cs @@ -0,0 +1,11 @@ +using Identity.Domain.DTOs; + +namespace Identity.Domain.Interfaces; + +public interface IIdentityService +{ + Task RegisterAsync(RegisterRequest request); + Task LoginAsync(LoginRequest request); + Task GetUserByIdAsync(Guid id); + Task> GetAllUsersAsync(); +}