Files
UniVerse/backend/UniVerse.Application/DTOs/Users/UserDtos.cs
T
serega404 a8d51df3f1
Backend CI / build-and-test (push) Successful in 40s
Frontend CI / build-and-check (push) Failing after 19s
🚀 Create and publish a Docker image / Detect changes in backend and frontend (push) Successful in 6s
🚀 Create and publish a Docker image / Build & publish backend image (push) Successful in 24s
🚀 Create and publish a Docker image / Build & publish frontend image (push) Successful in 27s
🚀 Create and publish a Docker image / Update stack on Portainer (push) Successful in 5s
feat: добавил эндпоинт для получения статистики админского дашборда
2026-05-30 01:23:57 +03:00

82 lines
1.5 KiB
C#

using UniVerse.Domain.Enums;
namespace UniVerse.Application.DTOs.Users;
public record UserDto(
int Id,
string Email,
string? DisplayName,
string? AvatarUrl,
IReadOnlyList<UserRole> Roles,
bool IsActive,
int Xp,
int Coins,
int Level,
DateTime CreatedAt
);
public record CurrentUserDto(
int Id,
string Email,
string? DisplayName,
string? AvatarUrl,
IReadOnlyList<UserRole> Roles,
int Xp,
int Coins,
int Level,
DateTime CreatedAt
);
public record UserStatsDto(
int TotalLectures,
int AttendedLectures,
int TotalReviews,
int Xp,
int Coins,
int Level,
int AchievementsCount,
int CurrentLevelXp,
int? NextLevelXp,
int ActiveEnrollments,
int EnrollmentSlotLimit,
IReadOnlyList<EnrollmentSlotRuleDto> EnrollmentSlotRules
);
public record AdminDashboardStatsDto(
int UsersCount,
int LecturesCount,
int EnrollmentsCount,
int PendingReviewsCount
);
public record EnrollmentSlotRuleDto(int Level, int Slots);
public record UpdateUserRequest(
string? DisplayName,
string? AvatarUrl
);
public record UserFilterRequest(
string? Search,
UserRole? Role,
bool? IsActive,
int Page = 1,
int PageSize = 20
);
public record StudentProfileDto(
int Id,
string? StudentId,
string? GroupName,
int? EnrollmentYear,
string? Faculty,
string? Specialty
);
public record TeacherProfileDto(
int Id,
string? Department,
string? Title,
string? Bio
);