Documentation Index
Fetch the complete documentation index at: https://docs-mstore.faisalaffan.com/llms.txt
Use this file to discover all available pages before exploring further.
Internal Flow Diagrams
Dokumentasi flow diagram internal untuk developer reference. Fokus pada validasi, delegasi, dan alur eksekusi di code level.π― Transaction Create Flow
Handler: TransactionHandler.CreateTransaction
Lokasi: internal/domains/transaction/transaction_handler.go
Diagram alir eksekusi handler ketika menerima request pembuatan transaksi.
Rincian Langkah
[Tracing] Inisialisasi tracer handler untuk observabilitas- Setup OpenTelemetry span
- Add handler layer attributes
utils_jwt.GetUserSession(ctx)
- Jika gagal: mapping ke 401 melalui
utils_error.CatchAuthError - Jika sukses: set
payload.IDUserApps = session.Sub
utils_payload.BodyParser(ctx, &payload, ...)
- Jika gagal: return error parser (HTTP status sesuai
CatchHandlerErrorV1)
branch_codetidak boleh kosong β 400itemsminimal 1 β 400
- Izinkan bundle:
product_idboleh 0 jikabundle_iddiisi quantitywajib > 0
addon_idwajib > 0quantitywajib > 0
transactionService.CreateTransaction(ctx, payload)
- Jika error: gunakan
utils_error.CatchHandlerErrorV1untuk response terstruktur - Jika sukses:
utils_response.Result(ctx, trx, nil)
Input & Output
Input: JSON bodyPayloadCreateTransaction + header Authorization (JWT)
Catatan Integrasi
- Handler ini fokus validasi request & delegasi
- Harga, stok, bundle, dan logika atomic berada di service/repository
- Tracing/telemetri mengikuti standar OTEL util di project
- Error handling menggunakan utils_error.CatchHandlerErrorV1
π Service Layer Flow
Service: transactionService.CreateTransaction
Lokasi: internal/domains/transaction/transaction_service.go
π Repository Layer Flow
Repository: transactionRepository.Create
Lokasi: internal/domains/transaction/transaction_repository.go
π Authentication Flow
JWT Validation Flow
π¦ Inventory Movement Flow
Stock Consumption Flow
π³ Payment Processing Flow
QRIS Payment Flow
π Offline Sync Flow
Batch Sync Flow
π¨ Best Practices
DO β
- Always setup tracing di awal handler
- Validate input sebelum delegasi ke service
- Use DB transaction untuk atomic operations
- Handle errors dengan proper HTTP status codes
- Log important steps dengan correlation ID
DONβT β
- Jangan skip validation di handler layer
- Jangan hardcode business logic di handler
- Jangan commit transaction sebelum semua steps sukses
- Jangan expose internal error messages ke client
- Jangan skip tracing/logging
π Related Documentation
Transaction Flow
High-level transaction flow & state machine
System Design
Overall system architecture
Database ERD
Database schema & relationships
Developer Reference: Dokumentasi ini untuk internal development reference. Untuk user-facing documentation, lihat Features section.