package models import ( "time" "github.com/shopspring/decimal" ) type Factura struct { ID string `json:"transaccion_id"` CI string `json:"ci"` NombreCliente string `json:"nombre_cliente"` NumeroFactura string `json:"numero_factura"` FechaEmision time.Time `json:"fecha_emision"` Subtotal decimal.Decimal `json:"subtotal"` IVA decimal.Decimal `json:"iva"` Total decimal.Decimal `json:"total"` Estado string `json:"estado"` Cuf string `json:"cuf"` UrlFactura string `json:"url"` CodigoAutorizacion string `json:"codigo_autorizacion"` FechaCreacion time.Time `json:"fecha_creacion"` } type DLQMessage struct { ID int `json:"-"` TransaccionID string `json:"transaccion_id"` Mensaje string `json:"mensaje"` FechaCreacion time.Time `json:"fecha_creacion"` Reprocesado bool `json:"reprocesado"` } type RequestFacturacionModel struct { Cabecera Cabecera `json:"cabecera"` Detalle []Detalle `json:"detalle"` } type Cabecera struct { NitEmisor int64 `json:"nitEmisor"` RazonSocialEmisor string `json:"razonSocialEmisor"` Municipio string `json:"municipio"` Telefono *string `json:"telefono,omitempty"` NumeroFactura string `json:"numeroFactura"` CodigoSucursal int `json:"codigoSucursal"` Direccion string `json:"direccion"` CodigoPuntoVenta *int `json:"codigoPuntoVenta,omitempty"` FechaEmision string `json:"fechaEmision"` // formato: "2021-10-07T09:01:24.178" NombreRazonSocial *string `json:"nombreRazonSocial,omitempty"` CodigoTipoDocumentoIdentidad int `json:"codigoTipoDocumentoIdentidad"` NumeroDocumento string `json:"numeroDocumento"` Complemento *string `json:"complemento,omitempty"` CodigoCliente string `json:"codigoCliente"` CodigoMetodoPago int `json:"codigoMetodoPago"` NumeroTarjeta *string `json:"numeroTarjeta,omitempty"` // solo si MetodoPago == 2 MontoTotal float64 `json:"montoTotal"` MontoTotalSujetoIva float64 `json:"montoTotalSujetoIva"` TipoCambio float64 `json:"tipoCambio"` CodigoMoneda int `json:"codigoMoneda"` MontoTotalMoneda float64 `json:"montoTotalMoneda"` MontoGiftCard *string `json:"montoGiftCard,omitempty"` DescuentoAdicional *float64 `json:"descuentoAdicional,omitempty"` CodigoExcepcion *int `json:"codigoExcepcion,omitempty"` Cafc *string `json:"cafc,omitempty"` Leyenda string `json:"leyenda"` Usuario string `json:"usuario"` CodigoDocumentoSector int `json:"codigoDocumentoSector"` TipoEmision int `json:"tipoEmision" xml:"tipoEmision"` TipoFactura int `json:"tipoFactura" xml:"tipoFactura"` } type Detalle struct { ActividadEconomica string `json:"actividadEconomica"` CodigoProductoSin int `json:"codigoProductoSin"` CodigoProducto string `json:"codigoProducto"` Descripcion string `json:"descripcion"` Cantidad int `json:"cantidad"` UnidadMedida int `json:"unidadMedida"` PrecioUnitario float64 `json:"precioUnitario"` MontoDescuento *float64 `json:"montoDescuento,omitempty"` SubTotal float64 `json:"subTotal"` NumeroSerie *string `json:"numeroSerie,omitempty"` NumeroImei *string `json:"numeroImei,omitempty"` } type FacturaEventModel struct { TransaccionID string `json:"transaccion_id"` Estado string `json:"estado"` Payload RequestFacturacionModel `json:"payload"` }