using GermanApp.Domain.Entities;
namespace GermanApp.Application.DTOs;
///
/// Data Transfer Object for Level - used for API responses.
/// This is a read-only representation of a Level entity.
///
public record LevelDto(
int Id,
string Name,
string Code,
int Order);
///
/// Data Transfer Object for creating a new Level.
///
public record CreateLevelDto(
string Name,
string Code,
int Order);
///
/// Data Transfer Object for updating an existing Level.
///
public record UpdateLevelDto(
string Name,
string Code,
int Order);
///
/// Extension methods for mapping between Level entity and DTOs.
///
public static class LevelDtoExtensions
{
public static LevelDto ToDto(this Level level) => new(
level.Id,
level.Name,
level.Code,
level.Order);
public static Level ToEntity(this CreateLevelDto dto) =>
Level.Create(dto.Name, dto.Code, dto.Order);
public static void UpdateFromDto(this Level level, UpdateLevelDto dto)
{
level.UpdateName(dto.Name);
level.UpdateCode(dto.Code);
level.UpdateOrder(dto.Order);
}
}