diff --git a/DocumentOperator.Application/Common/Mapping/MappingProfile.cs b/DocumentOperator.Application/Common/Mapping/MappingProfile.cs
index 0e6b605..6018142 100644
--- a/DocumentOperator.Application/Common/Mapping/MappingProfile.cs
+++ b/DocumentOperator.Application/Common/Mapping/MappingProfile.cs
@@ -1,12 +1,13 @@
using AutoMapper;
+using Codecrete.SwissQRBill.Generator;
using DocumentOperator.Application.Common.DTOs;
using DocumentOperator.Domain.Models.ValueObjects;
-using DocumentOperator.Domain.ValueObjects;
namespace DocumentOperator.Application.Common.Mapping;
///
-/// AutoMapper profile for mapping domain entities to DTOs
+/// AutoMapper profile for mapping domain entities and external models to DTOs.
+/// NOTE: Always use AutoMapper for all mappings in this project.
///
public class MappingProfile : Profile
{
@@ -19,10 +20,28 @@ public class MappingProfile : Profile
CreateMap()
.ForMember(dest => dest.FileSize, opt => opt.MapFrom(src => src.FileSizeBytes));
- // SwissQrCodeData -> SwissQrCodeDataDto
- CreateMap();
+ // Codecrete Bill -> SwissQrBillDto
+ CreateMap()
+ .ForMember(dest => dest.Version, opt => opt.MapFrom(src => src.Version.ToString()))
+ .ForMember(dest => dest.Currency, opt => opt.MapFrom(src => src.Currency ?? "CHF"))
+ .ForMember(dest => dest.Account, opt => opt.MapFrom(src => src.Account ?? string.Empty))
+ .ForMember(dest => dest.ReferenceType, opt => opt.MapFrom(src => src.ReferenceType ?? Bill.ReferenceTypeNoRef));
- // AddressData -> AddressDataDto
- CreateMap();
+ // Codecrete Address -> AddressDto
+ CreateMap()
+ .ForMember(dest => dest.Type, opt => opt.MapFrom(src => src.Type.ToString()))
+ .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name ?? string.Empty))
+ .ForMember(dest => dest.PostalCode, opt => opt.MapFrom(src => src.PostalCode ?? string.Empty))
+ .ForMember(dest => dest.Town, opt => opt.MapFrom(src => src.Town ?? string.Empty))
+ .ForMember(dest => dest.CountryCode, opt => opt.MapFrom(src => src.CountryCode ?? string.Empty))
+#pragma warning disable CS0618 // Suppress obsolete warning for AddressLine1/2 mapping
+ .ForMember(dest => dest.AddressLine1, opt => opt.MapFrom(src => src.AddressLine1))
+ .ForMember(dest => dest.AddressLine2, opt => opt.MapFrom(src => src.AddressLine2));
+#pragma warning restore CS0618
+
+ // Codecrete AlternativeScheme -> AlternativeSchemeDto
+ CreateMap()
+ .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name ?? string.Empty))
+ .ForMember(dest => dest.Instruction, opt => opt.MapFrom(src => src.Instruction ?? string.Empty));
}
}