feat: Add UserController and user-related DTOs for user management functionality

This commit is contained in:
Marek Lesko
2025-11-07 20:49:39 +00:00
parent 441b00b510
commit 74dfb95d99
4 changed files with 612 additions and 1 deletions

View File

@@ -36,6 +36,64 @@ namespace Api.Models.DTOs
public List<string> Providers { get; set; } = new List<string>();
}
// User CRUD DTOs
public class CreateUserRequest
{
[Required]
[EmailAddress]
[StringLength(255)]
public string Email { get; set; } = string.Empty;
[StringLength(255)]
public string? FirstName { get; set; }
[StringLength(255)]
public string? LastName { get; set; }
[StringLength(500)]
public string? ProfilePictureUrl { get; set; }
public bool IsActive { get; set; } = true;
}
public class UpdateUserRequest
{
[StringLength(255)]
public string? FirstName { get; set; }
[StringLength(255)]
public string? LastName { get; set; }
[StringLength(500)]
public string? ProfilePictureUrl { get; set; }
public bool? IsActive { get; set; }
}
public class UserDto
{
public int Id { get; set; }
public string Email { get; set; } = string.Empty;
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? ProfilePictureUrl { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime? LastLoginAt { get; set; }
public bool IsActive { get; set; }
public List<UserOAuthProviderDto> OAuthProviders { get; set; } = new List<UserOAuthProviderDto>();
}
public class UserOAuthProviderDto
{
public int Id { get; set; }
public OAuthProvider Provider { get; set; }
public string ProviderId { get; set; } = string.Empty;
public string? ProviderEmail { get; set; }
public string? ProviderName { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime? LastUsedAt { get; set; }
}
public class JwtSettings
{
public string SecretKey { get; set; } = string.Empty;