using System;

namespace ConvertToDTE.Model;

public class SourceClass
{
    public string SourceVersion { get; set; }
    public SourceDocumento SourceDocumento { get; set; }
}

public class SourceDocumento
{
    public string ID { get; set; }
    public SourceEncabezado Encabezado { get; set; }
    public SourceDetalle Detalle { get; set; }
    public SourceCAE CAE { get; set; }
}

public class SourceEncabezado
{
    public SourceIdDoc IdDoc { get; set; }
    public SourceEmisor Emisor { get; set; }
    public SourceReceptor Receptor { get; set; }
    public SourceTotales Totales { get; set; }
    public SourceImpuestos Impuestos { get; set; }
    public SourceRetencion[] Retenciones { get; set; }
}

public class SourceIdDoc
{
    public string Ambiente { get; set; }
    public string TipoServicio { get; set; }
    public string Tipo { get; set; }
    public string Serie { get; set; }
    public string Numero { get; set; }
    public string NumeroInterno { get; set; }
    public string FechaEmis { get; set; }
    public string MedioPago { get; set; }
    public string FechaVenc { get; set; }
    public string TipoNegociacion { get; set; }
    public string Plazo { get; set; }
}

public class SourceEmisor
{
    public string TipoContribuyente { get; set; }
    public string RegimenContable { get; set; }
    public string IDEmisor { get; set; }
    public string NmbEmisor { get; set; }
    public SourceNombreEmisor NombreEmisor { get; set; }
    public SourceCodigoEmisor CodigoEmisor { get; set; }
    public SourceDireccion DomFiscal { get; set; }
    public SourceDireccion LugarExped { get; set; }
    public SourceContactoEmisor ContactoEmisor { get; set; }
}

public class SourceNombreEmisor
{
    public string PrimerNombre { get; set; }
}

public class SourceCodigoEmisor
{
    public string TpoCdgIntEmisor { get; set; }
    public string CdgIntEmisor { get; set; }
}

public class SourceDireccion
{
    public string Calle { get; set; }
    public string Departamento { get; set; }
    public string Ciudad { get; set; }
    public string Pais { get; set; }
    public string CodigoPostal { get; set; }
}

public class SourceContactoEmisor
{
    public string Nombre { get; set; }
    public string eMail { get; set; }
}

public class SourceReceptor
{
    public string RegimenContableR { get; set; }
    public string TipoContribuyenteR { get; set; }
    public SourceDocRecep DocRecep { get; set; }
    public string NmbRecep { get; set; }
    public SourceNombreRecep NombreRecep { get; set; }
    public SourceCodigoReceptor CodigoReceptor { get; set; }
    public string CdgSucursal { get; set; }
    public SourceDireccion DomFiscalRcp { get; set; }
    public SourceDireccion LugarRecep { get; set; }
    public SourceContactoReceptor ContactoReceptor { get; set; }
}

public class SourceDocRecep
{
    public string TipoDocRecep { get; set; }
    public string NroDocRecep { get; set; }
}

public class SourceNombreRecep
{
    public string PrimerNombre { get; set; }
}

public class SourceCodigoReceptor
{
    public string TpoCdgIntRecep { get; set; }
    public string CdgIntRecep { get; set; }
}

public class SourceContactoReceptor
{
    public string Nombre { get; set; }
    public string eMail { get; set; }
    public string Telefono { get; set; }
}

public class SourceTotales
{
    public string Moneda { get; set; }
    public string FctConv { get; set; }
    public string SubTotal { get; set; }
    public string MntBase { get; set; }
    public string MntImp { get; set; }
    public string VlrPagar { get; set; }
}

public class SourceImpuestos
{
    public string TipoImp { get; set; }
    public string TasaImp { get; set; }
    public string MontoBaseImp { get; set; }
    public string MontoImp { get; set; }
}

public class SourceRetencion
{
    public string TipoRet { get; set; }
    public string TasaRet { get; set; }
    public string MontoBaseRet { get; set; }
    public string MontoRet { get; set; }
}

public class SourceDetalle
{
    public string NroLinDet { get; set; }
    public SourceCdgItem CdgItem { get; set; }
    public string DscItem { get; set; }
    public string QtyItem { get; set; }
    public string UnmdItem { get; set; }
    public string PrcBrutoItem { get; set; }
    public SourceImpuestos ImpuestosDet { get; set; }
    public string MontoTotalItem { get; set; }
}

public class SourceCdgItem
{
    public string TpoCodigo { get; set; }
    public string VlrCodigo { get; set; }
}

public class SourceCAE
{
    public string Tipo { get; set; }
    public string Serie { get; set; }
    public string NumeroInicial { get; set; }
    public string NumeroFinal { get; set; }
    public string NroResolucion { get; set; }
    public string FechaResolucion { get; set; }
    public string ClaveTC { get; set; }
    public string Plazo { get; set; }
}

