# rafaelandersonpg/market-backend architecture

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

- Interactive diagram: https://gitdiagram.com/rafaelandersonpg/market-backend
- Repository: https://github.com/rafaelandersonpg/market-backend

## Overview

This is a Spring-based market-management API. Its visible workflow manages stalls and recurring charges, creates stall debts, records payments, and posts payment expenses as account transactions; account provisioning is also triggered when a stall is created. The tree shows additional account, transfer, user/authentication, and document-type capabilities, but their runtime interactions are not sampled. Edges are limited to calls or dependencies supported by excerpts and SOURCE INDEX references; the empty README provides no further evidence.

Main entry points: [`src/main/java/com/cibertec/market/service/impl/StallServiceImpl.java`](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/impl/StallServiceImpl.java) (Stall operations), [`src/main/java/com/cibertec/market/service/impl/PaymentServiceImpl.java`](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/impl/PaymentServiceImpl.java) (Payment processing), [`src/main/java/com/cibertec/market/repository`](https://github.com/rafaelandersonpg/market-backend/tree/master/src/main/java/com/cibertec/market/repository) (Market records), [`src/main/java/com/cibertec/market/controller/UserController.java`](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/UserController.java) (User API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API endpoints"]
  node_charges_api["Charge API"]
  node_debts_api["Debt API"]
  node_payments_api["Payment API"]
  node_stalls_api["Stall API"]
  node_transactions_api["Transaction API"]
  node_transfers_api["Transfer API"]
  node_users_api["User API"]
  node_documents_api["Document types API"]
end

subgraph group_operations["Market operations"]
  node_charge_ops["Charge operations<br/>[ChargeService.java]"]
  node_debt_ops["Debt operations"]
  node_stall_ops["Stall operations"]
  node_document_ops["Document operations"]
end

subgraph group_finance["Financial records"]
  node_payments["Payment processing"]
  node_transactions["Transaction service"]
  node_transfers["Transfer service"]
  node_market_db[("Market records")]
end

subgraph group_identity["Accounts and security"]
  node_accounts["Account service"]
  node_account_sequence["Account numbering"]
  node_user_service["User service<br/>[UserService.java]"]
  node_jwt_security["JWT security"]
end

node_client(("API client"))

node_client -->|"requests"| node_charges_api
node_charges_api -->|"delegates to"| node_charge_ops
node_debts_api -->|"delegates to"| node_debt_ops
node_payments_api -->|"delegates to"| node_payments
node_stalls_api -->|"delegates to"| node_stall_ops
node_transactions_api -.->|"delegates to"| node_transactions
node_transfers_api -->|"delegates to"| node_transfers
node_users_api -->|"delegates to"| node_user_service
node_users_api -->|"configures auth"| node_jwt_security
node_documents_api -->|"delegates to"| node_document_ops
node_debt_ops -->|"reads and writes"| node_market_db
node_payments -->|"reads and writes"| node_market_db
node_payments -->|"registers expense"| node_transactions
node_stall_ops -->|"reads and writes"| node_market_db
node_stall_ops -->|"gets number"| node_account_sequence
node_stall_ops -->|"creates account"| node_accounts

click node_charges_api "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/ChargeController.java"
click node_debts_api "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/DebtController.java"
click node_payments_api "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/PaymentController.java"
click node_stalls_api "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/StallController.java"
click node_transactions_api "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/TransactionController.java"
click node_transfers_api "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/TransferController.java"
click node_users_api "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/UserController.java"
click node_documents_api "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/DocumentTypeController.java"
click node_charge_ops "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/ChargeService.java"
click node_debt_ops "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/impl/DebtServiceImpl.java"
click node_stall_ops "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/impl/StallServiceImpl.java"
click node_document_ops "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/DocumentTypeService.java"
click node_payments "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/impl/PaymentServiceImpl.java"
click node_transactions "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/TransactionService.java"
click node_transfers "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/TransferService.java"
click node_market_db "https://github.com/rafaelandersonpg/market-backend/tree/master/src/main/java/com/cibertec/market/repository"
click node_accounts "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/AccountService.java"
click node_account_sequence "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/AccountSequenceService.java"
click node_user_service "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/UserService.java"
click node_jwt_security "https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/security/WebSecurityConfig.java"

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_charges_api,node_debts_api,node_payments_api,node_stalls_api,node_transactions_api,node_transfers_api,node_users_api,node_documents_api,node_client toneBlue
class node_charge_ops,node_debt_ops,node_stall_ops,node_document_ops toneAmber
class node_payments,node_transactions,node_transfers,node_market_db toneMint
class node_accounts,node_account_sequence,node_user_service,node_jwt_security toneRose
```

## Components

### API endpoints

- [Charge API](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/ChargeController.java): `src/main/java/com/cibertec/market/controller/ChargeController.java`
- [Debt API](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/DebtController.java): `src/main/java/com/cibertec/market/controller/DebtController.java`
- [Payment API](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/PaymentController.java): `src/main/java/com/cibertec/market/controller/PaymentController.java`
- [Stall API](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/StallController.java): `src/main/java/com/cibertec/market/controller/StallController.java`
- [Transaction API](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/TransactionController.java): `src/main/java/com/cibertec/market/controller/TransactionController.java`
- [Transfer API](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/TransferController.java): `src/main/java/com/cibertec/market/controller/TransferController.java`
- [User API](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/UserController.java): `src/main/java/com/cibertec/market/controller/UserController.java`
- [Document types API](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/controller/DocumentTypeController.java): `src/main/java/com/cibertec/market/controller/DocumentTypeController.java`

### Market operations

- [Charge operations](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/ChargeService.java): `src/main/java/com/cibertec/market/service/ChargeService.java`
- [Debt operations](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/impl/DebtServiceImpl.java): `src/main/java/com/cibertec/market/service/impl/DebtServiceImpl.java`
- [Stall operations](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/impl/StallServiceImpl.java): `src/main/java/com/cibertec/market/service/impl/StallServiceImpl.java`
- [Document operations](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/DocumentTypeService.java): `src/main/java/com/cibertec/market/service/DocumentTypeService.java`

### Financial records

- [Payment processing](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/impl/PaymentServiceImpl.java): `src/main/java/com/cibertec/market/service/impl/PaymentServiceImpl.java`
- [Transaction service](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/TransactionService.java): `src/main/java/com/cibertec/market/service/TransactionService.java`
- [Transfer service](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/TransferService.java): `src/main/java/com/cibertec/market/service/TransferService.java`
- [Market records](https://github.com/rafaelandersonpg/market-backend/tree/master/src/main/java/com/cibertec/market/repository): `src/main/java/com/cibertec/market/repository`

### Accounts and security

- [Account service](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/AccountService.java): `src/main/java/com/cibertec/market/service/AccountService.java`
- [Account numbering](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/AccountSequenceService.java): `src/main/java/com/cibertec/market/service/AccountSequenceService.java`
- [User service](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/service/UserService.java): `src/main/java/com/cibertec/market/service/UserService.java`
- [JWT security](https://github.com/rafaelandersonpg/market-backend/blob/master/src/main/java/com/cibertec/market/security/WebSecurityConfig.java): `src/main/java/com/cibertec/market/security/WebSecurityConfig.java`

### Other components

- **API client**

## Connections

- API client → Charge API: requests (evidence: `src/main/java/com/cibertec/market/controller/ChargeController.java`)
- Charge API → Charge operations: delegates to (evidence: `src/main/java/com/cibertec/market/controller/ChargeController.java`)
- Debt API → Debt operations: delegates to (evidence: `src/main/java/com/cibertec/market/controller/DebtController.java`)
- Payment API → Payment processing: delegates to (evidence: `src/main/java/com/cibertec/market/controller/PaymentController.java`)
- Stall API → Stall operations: delegates to (evidence: `src/main/java/com/cibertec/market/controller/StallController.java`)
- Transaction API → Transaction service: delegates to
- Transfer API → Transfer service: delegates to (evidence: `src/main/java/com/cibertec/market/controller/TransferController.java`)
- User API → User service: delegates to (evidence: `src/main/java/com/cibertec/market/controller/UserController.java`)
- User API → JWT security: configures auth (evidence: `src/main/java/com/cibertec/market/controller/UserController.java`)
- Document types API → Document operations: delegates to (evidence: `src/main/java/com/cibertec/market/controller/DocumentTypeController.java`)
- Debt operations → Market records: reads and writes (evidence: `src/main/java/com/cibertec/market/service/impl/DebtServiceImpl.java`)
- Payment processing → Market records: reads and writes (evidence: `src/main/java/com/cibertec/market/service/impl/PaymentServiceImpl.java`)
- Payment processing → Transaction service: registers expense (evidence: `src/main/java/com/cibertec/market/service/impl/PaymentServiceImpl.java`)
- Stall operations → Market records: reads and writes (evidence: `src/main/java/com/cibertec/market/service/impl/StallServiceImpl.java`)
- Stall operations → Account numbering: gets number (evidence: `src/main/java/com/cibertec/market/service/impl/StallServiceImpl.java`)
- Stall operations → Account service: creates account (evidence: `src/main/java/com/cibertec/market/service/impl/StallServiceImpl.java`)
