90 lines
4.0 KiB
Go
90 lines
4.0 KiB
Go
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"`
|
|
}
|