# djambred/manjo-2026 architecture

> Architecture diagram of the GitHub repository djambred/manjo-2026, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/djambred/manjo-2026
- Repository: https://github.com/djambred/manjo-2026

## Overview

This Laravel application is a QRIS payment command center: merchants or payment clients create and query transactions, payments update their status, and merchant notifications are dispatched through an outbox. Operators can inspect activity and perform investigation actions; administrators manage merchant and transaction records. The tree and excerpts support the main processing and operational branches, but not every route or integration detail, so uncertain wiring is omitted.

Main entry points: [`src/app/Services/QrisTransactionActionService.php`](https://github.com/djambred/manjo-2026/blob/main/src/app/Services/QrisTransactionActionService.php) (Transaction Actions), [`src/app/Filament/Admin/Resources`](https://github.com/djambred/manjo-2026/tree/main/src/app/Filament/Admin/Resources) (Admin Resources), [`src/app/Http/Controllers/QrisMobilePaymentController.php`](https://github.com/djambred/manjo-2026/blob/main/src/app/Http/Controllers/QrisMobilePaymentController.php) (Mobile Payment), [`src/app/Models/QrisTransaction.php`](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/QrisTransaction.php) (QRIS Transactions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Payment API"]
  node_create_query_api["Create and Query"]
  node_ops_api["Callback and Ops"]
end

subgraph group_lifecycle["Payment Lifecycle"]
  node_mobile_payment["Mobile Payment"]
  node_transaction_actions["Transaction Actions"]
  node_transaction_store[("QRIS Transactions")]
  node_status_history[("Status History")]
  node_query_logs[("Query Logs")]
  node_settlements[("Settlements<br/>[Settlement.php]")]
  node_refunds[("Refunds<br/>[Refund.php]")]
  node_callback_logs[("Callback Logs<br/>[CallbackLog.php]")]
  node_outbox[("Notification Outbox")]
  node_dispatch_job["Outbox Dispatch"]
end

subgraph group_operations["Operations"]
  node_command_center["Command Center"]
  node_web_views["Operations Views"]
end

subgraph group_admin["Administration"]
  node_admin_panel["Admin Resources"]
  node_merchant_data[("Merchant Records<br/>[Merchant.php]")]
  node_user_data[("User Records<br/>[User.php]")]
end

node_merchant_client(("Merchant Client"))
node_qris_provider(("QRIS Provider"))
node_merchant_endpoint(("Merchant Callback"))

node_merchant_client -->|"submits requests"| node_create_query_api
node_create_query_api -->|"creates or reads"| node_transaction_store
node_create_query_api -->|"records queries"| node_query_logs
node_create_query_api -->|"looks up merchant"| node_merchant_data
node_create_query_api -->|"returns QR and status"| node_merchant_client
node_qris_provider -->|"sends callbacks"| node_ops_api
node_ops_api -->|"updates status"| node_transaction_store
node_ops_api -->|"records callback"| node_callback_logs
node_ops_api -->|"looks up merchant"| node_merchant_data
node_mobile_payment -->|"updates payment"| node_transaction_store
node_mobile_payment -->|"records transition"| node_status_history
node_mobile_payment -->|"upserts settlement"| node_settlements
node_mobile_payment -->|"creates notification"| node_outbox
node_mobile_payment -->|"dispatches outbox"| node_dispatch_job
node_transaction_actions -->|"changes status"| node_transaction_store
node_transaction_actions -->|"records query"| node_query_logs
node_transaction_actions -->|"records transition"| node_status_history
node_transaction_actions -->|"updates settlement"| node_settlements
node_transaction_actions -->|"records refund"| node_refunds
node_transaction_actions -->|"records simulation"| node_callback_logs
node_transaction_actions -->|"creates notification"| node_outbox
node_transaction_actions -->|"dispatches outbox"| node_dispatch_job
node_dispatch_job -->|"reads delivery"| node_outbox
node_dispatch_job -->|"sends notification"| node_merchant_endpoint
node_command_center -->|"reads transactions"| node_transaction_store
node_command_center -->|"reads deliveries"| node_outbox
node_command_center -->|"reads callbacks"| node_callback_logs
node_command_center -->|"reads query history"| node_query_logs
node_command_center -->|"renders pages"| node_web_views
node_admin_panel -->|"manages merchants"| node_merchant_data
node_admin_panel -->|"manages transactions"| node_transaction_store
node_admin_panel -->|"manages settlements"| node_settlements
node_admin_panel -->|"manages refunds"| node_refunds
node_admin_panel -->|"manages deliveries"| node_outbox
node_admin_panel -->|"reviews callbacks"| node_callback_logs
node_admin_panel -->|"manages users"| node_user_data

click node_create_query_api "https://github.com/djambred/manjo-2026/blob/main/src/app/Http/Controllers/Api/QrisApiController.php"
click node_ops_api "https://github.com/djambred/manjo-2026/blob/main/src/app/Http/Controllers/Api/QrisOpsController.php"
click node_mobile_payment "https://github.com/djambred/manjo-2026/blob/main/src/app/Http/Controllers/QrisMobilePaymentController.php"
click node_transaction_actions "https://github.com/djambred/manjo-2026/blob/main/src/app/Services/QrisTransactionActionService.php"
click node_transaction_store "https://github.com/djambred/manjo-2026/blob/main/src/app/Models/QrisTransaction.php"
click node_status_history "https://github.com/djambred/manjo-2026/blob/main/src/app/Models/TransactionStatusHistory.php"
click node_query_logs "https://github.com/djambred/manjo-2026/blob/main/src/app/Models/TransactionQueryLog.php"
click node_settlements "https://github.com/djambred/manjo-2026/blob/main/src/app/Models/Settlement.php"
click node_refunds "https://github.com/djambred/manjo-2026/blob/main/src/app/Models/Refund.php"
click node_callback_logs "https://github.com/djambred/manjo-2026/blob/main/src/app/Models/CallbackLog.php"
click node_outbox "https://github.com/djambred/manjo-2026/blob/main/src/app/Models/MerchantNotificationOutbox.php"
click node_dispatch_job "https://github.com/djambred/manjo-2026/blob/main/src/app/Jobs/DispatchMerchantNotificationOutboxJob.php"
click node_command_center "https://github.com/djambred/manjo-2026/blob/main/src/app/Http/Controllers/CommandCenterController.php"
click node_web_views "https://github.com/djambred/manjo-2026/tree/main/src/resources/views"
click node_admin_panel "https://github.com/djambred/manjo-2026/tree/main/src/app/Filament/Admin/Resources"
click node_merchant_data "https://github.com/djambred/manjo-2026/blob/main/src/app/Models/Merchant.php"
click node_user_data "https://github.com/djambred/manjo-2026/blob/main/src/app/Models/User.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_create_query_api,node_ops_api,node_merchant_client toneBlue
class node_mobile_payment,node_transaction_actions,node_transaction_store,node_status_history,node_query_logs,node_settlements,node_refunds,node_callback_logs,node_outbox,node_dispatch_job toneAmber
class node_command_center,node_web_views toneMint
class node_admin_panel,node_merchant_data,node_user_data toneRose
class node_qris_provider,node_merchant_endpoint toneIndigo
```

## Components

### Payment API

- [Create and Query](https://github.com/djambred/manjo-2026/blob/main/src/app/Http/Controllers/Api/QrisApiController.php): `src/app/Http/Controllers/Api/QrisApiController.php`
- [Callback and Ops](https://github.com/djambred/manjo-2026/blob/main/src/app/Http/Controllers/Api/QrisOpsController.php): `src/app/Http/Controllers/Api/QrisOpsController.php`

### Payment Lifecycle

- [Mobile Payment](https://github.com/djambred/manjo-2026/blob/main/src/app/Http/Controllers/QrisMobilePaymentController.php): `src/app/Http/Controllers/QrisMobilePaymentController.php`
- [Transaction Actions](https://github.com/djambred/manjo-2026/blob/main/src/app/Services/QrisTransactionActionService.php): `src/app/Services/QrisTransactionActionService.php`
- [QRIS Transactions](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/QrisTransaction.php): `src/app/Models/QrisTransaction.php`
- [Status History](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/TransactionStatusHistory.php): `src/app/Models/TransactionStatusHistory.php`
- [Query Logs](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/TransactionQueryLog.php): `src/app/Models/TransactionQueryLog.php`
- [Settlements](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/Settlement.php): `src/app/Models/Settlement.php`
- [Refunds](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/Refund.php): `src/app/Models/Refund.php`
- [Callback Logs](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/CallbackLog.php): `src/app/Models/CallbackLog.php`
- [Notification Outbox](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/MerchantNotificationOutbox.php): `src/app/Models/MerchantNotificationOutbox.php`
- [Outbox Dispatch](https://github.com/djambred/manjo-2026/blob/main/src/app/Jobs/DispatchMerchantNotificationOutboxJob.php): `src/app/Jobs/DispatchMerchantNotificationOutboxJob.php`

### Operations

- [Command Center](https://github.com/djambred/manjo-2026/blob/main/src/app/Http/Controllers/CommandCenterController.php): `src/app/Http/Controllers/CommandCenterController.php`
- [Operations Views](https://github.com/djambred/manjo-2026/tree/main/src/resources/views): `src/resources/views`

### Administration

- [Admin Resources](https://github.com/djambred/manjo-2026/tree/main/src/app/Filament/Admin/Resources): `src/app/Filament/Admin/Resources`
- [Merchant Records](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/Merchant.php): `src/app/Models/Merchant.php`
- [User Records](https://github.com/djambred/manjo-2026/blob/main/src/app/Models/User.php): `src/app/Models/User.php`

### Other components

- **Merchant Client**
- **QRIS Provider**
- **Merchant Callback**

## Connections

- Merchant Client → Create and Query: submits requests
- Create and Query → QRIS Transactions: creates or reads
- Create and Query → Query Logs: records queries
- Create and Query → Merchant Records: looks up merchant
- Create and Query → Merchant Client: returns QR and status
- QRIS Provider → Callback and Ops: sends callbacks
- Callback and Ops → QRIS Transactions: updates status
- Callback and Ops → Callback Logs: records callback
- Callback and Ops → Merchant Records: looks up merchant
- Mobile Payment → QRIS Transactions: updates payment
- Mobile Payment → Status History: records transition
- Mobile Payment → Settlements: upserts settlement
- Mobile Payment → Notification Outbox: creates notification
- Mobile Payment → Outbox Dispatch: dispatches outbox
- Transaction Actions → QRIS Transactions: changes status
- Transaction Actions → Query Logs: records query
- Transaction Actions → Status History: records transition
- Transaction Actions → Settlements: updates settlement
- Transaction Actions → Refunds: records refund
- Transaction Actions → Callback Logs: records simulation
- Transaction Actions → Notification Outbox: creates notification
- Transaction Actions → Outbox Dispatch: dispatches outbox
- Outbox Dispatch → Notification Outbox: reads delivery
- Outbox Dispatch → Merchant Callback: sends notification
- Command Center → QRIS Transactions: reads transactions
- Command Center → Notification Outbox: reads deliveries
- Command Center → Callback Logs: reads callbacks
- Command Center → Query Logs: reads query history
- Command Center → Operations Views: renders pages
- Admin Resources → Merchant Records: manages merchants
- Admin Resources → QRIS Transactions: manages transactions
- Admin Resources → Settlements: manages settlements
- Admin Resources → Refunds: manages refunds
- Admin Resources → Notification Outbox: manages deliveries
- Admin Resources → Callback Logs: reviews callbacks
- Admin Resources → User Records: manages users
