# Send an invoice for processing curl -X POST http://localhost:7777/api/facturas/enviar \ -H "Content-Type: application/json" \ -d '{"transaccion_id": "4671b0e9-adae-4de9-86c5-e384616626d6", "estado": "PENDIENTE", "numero_factura": "F001-02413224482"}' # Query invoice status curl -X GET http://localhost:7777/api/facturas/4671b0e9-adae-4de9-86c5-e384616626d6 # Revert an invoice curl -X POST http://localhost:7777/api/facturas/revertir \ -H "Content-Type: application/json" \ -d '{"transaccion_id": "4671b0e9-adae-4de9-86c5-e384616626d6", "numero_factura": "F001-02413224482"}' # Reprocess DLQ messages curl -X POST http://localhost:7777/api/dlq/reprocesar # topic # Entra al contenedor de kafka docker exec -it bash # Una vez dentro, crea los topics kafka-topics.sh --create --bootstrap-server localhost:9093 --topic FACTURACION --partitions 1 --replication-factor 1 kafka-topics.sh --create --bootstrap-server localhost:9093 --topic FACTURACION_RESULTADOS --partitions 1 --replication-factor 1 kafka-topics.sh --create --bootstrap-server localhost:9093 --topic FACTURACION_DLQ --partitions 1 --replication-factor 1 # FACTURACION docker exec facturacion_redis_kafka-kafka-1 kafka-topics --create --bootstrap-server localhost:9093 --topic FACTURACION --partitions 1 --replication-factor 1 # FACTURACION_RESULTADOS docker exec facturacion_redis_kafka-kafka-1 kafka-topics --create --bootstrap-server localhost:9093 --topic FACTURACION_RESULTADOS --partitions 1 --replication-factor 1 # FACTURACION_DLQ docker exec facturacion_redis_kafka-kafka-1 kafka-topics --create --bootstrap-server localhost:9093 --topic FACTURACION_DLQ --partitions 1 --replication-factor 1 # CONSTRUIR EJECUTABLE # Compilar el código go build -o consumer-service cmd/consumer/main.go go build -o producer-service cmd/producer/main.go # para compilar en linux desde windows env GOOS=linux GOARCH=amd64 go build -o consumer-service cmd/consumer/main.go env GOOS=linux GOARCH=amd64 go build -o producer-service cmd/producer/main.go # Ejecutar el servicio ./producer-service ./consumer-service # proyecto-consumer consumer/ ├── cmd/ │ └── server/ │ └── main.go # Punto de entrada de la aplicación ├── internal/ │ ├── api/ │ │ ├── handlers/ │ │ │ ├── factura.go # Handlers de facturación │ │ │ ├── dlq.go # Handlers de DLQ │ │ │ └── middleware.go # Middlewares │ │ ├── router.go # Configuración de rutas │ │ └── server.go # Configuración del servidor HTTP │ ├── config/ │ │ └── config.go # Gestión de configuración │ ├── domain/ │ │ └── models/ │ │ ├── factura.go # Modelos de dominio │ │ ├── response.go # Estructuras de respuesta │ │ └── error.go # Errores de dominio │ ├── infrastructure/ │ │ ├── database/ │ │ │ ├── postgres.go # Cliente de base de datos │ │ │ └── repositories/ │ │ │ ├── factura.go # Repositorio de facturas │ │ │ └── dlq.go # Repositorio DLQ │ │ ├── kafka/ │ │ │ └── client.go # Cliente Kafka │ │ └── logger/ │ │ └── logger.go # Sistema de logs │ └── services/ │ ├── factura_service.go # Lógica de negocio │ └── dlq_service.go # Servicios DLQ ├── pkg/ │ ├── env/ │ │ └── env.go # Utilidades para variables de entorno │ └── utils/ │ └── utils.go # Utilidades generales ├── .env.example # Ejemplo de configuración ├── go.mod # Dependencias del proyecto ├── go.sum # Verificación de dependencias └── README.md # Documentación # CREAR carpetas-archivos mkdir -p consumer/cmd/server \ consumer/internal/api/handlers \ consumer/internal/config \ consumer/internal/domain/models \ consumer/internal/infrastructure/database/repositories \ consumer/internal/infrastructure/kafka \ consumer/internal/infrastructure/logger \ consumer/internal/services \ consumer/pkg/env \ consumer/pkg/utils && \ touch consumer/cmd/server/main.go \ consumer/internal/api/handlers/factura.go \ consumer/internal/api/handlers/dlq.go \ consumer/internal/api/handlers/middleware.go \ consumer/internal/api/router.go \ consumer/internal/api/server.go \ consumer/internal/config/config.go \ consumer/internal/domain/models/factura.go \ consumer/internal/domain/models/response.go \ consumer/internal/domain/models/error.go \ consumer/internal/infrastructure/database/postgres.go \ consumer/internal/infrastructure/database/repositories/factura.go \ consumer/internal/infrastructure/database/repositories/dlq.go \ consumer/internal/infrastructure/kafka/client.go \ consumer/internal/infrastructure/logger/logger.go \ consumer/internal/services/factura_service.go \ consumer/internal/services/dlq_service.go \ consumer/pkg/env/env.go \ consumer/pkg/utils/utils.go \ consumer/.env.example \ consumer/go.mod \ consumer/go.sum \ consumer/README.md