using SIGCM2.Domain.Entities;

namespace SIGCM2.Application.IngresosBrutos.Dtos;

public static class IngresosBrutosMapper
{
    public static IngresosBrutosDto ToDto(Domain.Entities.IngresosBrutos entity) => new(
        Id: entity.Id,
        Provincia: entity.Provincia,
        Descripcion: entity.Descripcion,
        Alicuota: entity.Alicuota,
        Activo: entity.Activo,
        VigenciaDesde: entity.VigenciaDesde,
        VigenciaHasta: entity.VigenciaHasta,
        PredecesorId: entity.PredecesorId,
        FechaCreacion: entity.FechaCreacion,
        FechaModificacion: entity.FechaModificacion
    );

    public static IReadOnlyList<HistorialCadenaIibbDto> ToHistorialChain(IReadOnlyList<Domain.Entities.IngresosBrutos> chain)
    {
        var result = new List<HistorialCadenaIibbDto>(chain.Count);
        for (var i = 0; i < chain.Count; i++)
        {
            var item = chain[i];
            result.Add(new HistorialCadenaIibbDto(
                Id: item.Id,
                Provincia: item.Provincia,
                Alicuota: item.Alicuota,
                VigenciaDesde: item.VigenciaDesde,
                VigenciaHasta: item.VigenciaHasta,
                PredecesorId: item.PredecesorId,
                Version: i + 1
            ));
        }
        return result;
    }
}
