using System.ComponentModel.DataAnnotations; using Nuuru.Server.DTOs.Moderation; namespace Nuuru.Server.DTOs.Admin { public class UserAdminDto { public Guid Id { get; set; } public string UserName { get; set; } = string.Empty; public DateTime DateCreated { get; set; } public IEnumerable Roles { get; set; } = []; public IEnumerable ActiveBans { get; set; } = []; public bool IsBanned { get; set; } public string? Status { get; set; } public string? Biography { get; set; } public bool IsBabyMode { get; set; } } public class UserSearchRequest { public string? Search { get; set; } public string? Role { get; set; } public int Page { get; set; } = 1; public int PageSize { get; set; } = 20; } public record AdminChangePasswordRequest { public required string NewPassword { get; init; } } public record AdminUpdateProfileRequest { [MaxLength(100)] public string? Status { get; init; } [MaxLength(1000)] public string? Biography { get; init; } public bool? IsBabyMode { get; init; } } public record AdminCreateUserRequest { [Required][MaxLength(50)] public required string UserName { get; init; } [Required][MinLength(6)] public required string Password { get; init; } } public class NukePreviewDto { public int Posts { get; set; } public int Comments { get; set; } public int ForumThreads { get; set; } public int ForumPosts { get; set; } public int Messages { get; set; } public string Token { get; set; } = string.Empty; } public record NukeUserRequest { [Required] public required string Token { get; init; } } }