How lamjounah/billing-invoice works
This is a Spring billing-invoice service: REST clients create, retrieve, search, update, and delete invoices, while invoice-control requests start a validation process and payment results can update invoice status. Invoice creation resolves customer, creditor, and point-of-sale references before persisting the invoice. The tree also shows separate creditor and point-of-sale management, plus messaging and workflow components. The README is empty; sampled sources establish the invoice and point-of-sale paths, while some listed integrations and delegates are represented only at their supported subsystem level.
Main entry points: InvoiceServiceImpl.java Invoice service · CreancierService.java Creditor service · PointDeVenteServiceImp.java Point-of-sale service · CreancierRepository.java Creditor repository
Components 24
REST API
- Invoice API
src/main/java/ma/atos/billing/invoice/billing_invoice/controllers/InvoiceController.java - Control API
src/main/java/ma/atos/billing/invoice/billing_invoice/controllers/InvoiceWorkflowController.java - Creditor API
src/main/java/ma/atos/billing/invoice/billing_invoice/controllers/CreancierController.java - Point-of-sale API
src/main/java/ma/atos/billing/invoice/billing_invoice/controllers/PointDeVenteController.java
Billing domain
- Invoice service
src/main/java/ma/atos/billing/invoice/billing_invoice/services/imp/InvoiceServiceImpl.java - Creditor service
src/main/java/ma/atos/billing/invoice/billing_invoice/services/CreancierService.java - Point-of-sale service
src/main/java/ma/atos/billing/invoice/billing_invoice/services/imp/PointDeVenteServiceImp.java - Invoice mapping
src/main/java/ma/atos/billing/invoice/billing_invoice/mappers/InvoiceMapper.java - Creditor mapping
src/main/java/ma/atos/billing/invoice/billing_invoice/mappers/CreancierMapper.java - Point-of-sale mapping
src/main/java/ma/atos/billing/invoice/billing_invoice/mappers/PointDeVenteMapper.java
Workflow and messaging
- Invoice workflow service
src/main/java/ma/atos/billing/invoice/billing_invoice/services/InvoiceWorkflowService.java - Validation delegates
src/main/java/ma/atos/billing/invoice/billing_invoice/workflow - Invoice event publisher
src/main/java/ma/atos/billing/invoice/billing_invoice/messaging/InvoiceEventPublisher.java - Payment result listener
src/main/java/ma/atos/billing/invoice/billing_invoice/messaging/PaymentResultListener.java - Payment events
src/main/java/ma/atos/billing/invoice/billing_invoice/messaging/PaymentRequestEvent.java
Persistence
- Invoice repository
src/main/java/ma/atos/billing/invoice/billing_invoice/repository/InvoiceRepository.java - Creditor repository
src/main/java/ma/atos/billing/invoice/billing_invoice/repository/CreancierRepository.java - Customer repository
src/main/java/ma/atos/billing/invoice/billing_invoice/repository/CustomerRepository.java - Point-of-sale repository
src/main/java/ma/atos/billing/invoice/billing_invoice/repository/PointDeVenteRepository.java
Other components
- API client
- Camunda engine
- Message broker
- Payment service
- Relational database
Connections 28
- API client → Invoice API: calls
- API client → Control API: calls
- API client → Creditor API: calls
- API client → Point-of-sale API: calls
- Invoice API → Invoice service: invokes
- Control API → Invoice workflow service: invokes
- Creditor API → Creditor service: invokes
- Point-of-sale API → Point-of-sale service: invokes
- Invoice service → Invoice repository: reads/writes
- Invoice service → Customer repository: resolves customer
- Invoice service → Creditor repository: resolves creditor
- Invoice service → Point-of-sale repository: resolves point-of-sale
- Invoice service → Invoice mapping: maps
- Invoice service → Invoice event publisher: publishes
- Creditor service → Creditor repository: reads/writes
- Creditor service → Creditor mapping: maps
- Point-of-sale service → Point-of-sale repository: reads/writes
- Point-of-sale service → Point-of-sale mapping: maps
- Invoice workflow service → Camunda engine: starts process
- Payment result listener → Invoice service: updates status
- Invoice event publisher → Message broker: publishes events
- Message broker → Payment service: routes messages
- Payment service → Message broker: returns results
- Message broker → Payment result listener: delivers results
- Invoice repository → Relational database: reads/writes
- Creditor repository → Relational database: reads/writes
- Customer repository → Relational database: reads
- Point-of-sale repository → Relational database: reads/writes