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); } }