Architecture
Component map
flowchart LR
A[Admin Web UI / Inertia] --> B[Laravel Web Layer]
M[Mobile App] --> C[Mobile API /api/mobile/v1]
D[Admin Client] --> E[Admin API /api/admin/v1]
B --> S[App Modules app/Modules/*]
C --> S
E --> S
S --> DB[(Relational DB via migrations)]
S --> F[Firebase Chat Middleware init-firestore]
S --> P[Push Notification + Topic Subscription]
Runtime topology
- Entry points:
- Web:
routes/web.php+routes/admin.php(prefixdashboarddari RouteServiceProvider) - API Admin:
routes/api/admin/v1.phpprefixapi/admin/v1 - API Mobile:
routes/api/mobile/v1.phpprefixapi/mobile/v1
- Web:
- Route registration:
app/Providers/RouteServiceProvider.php - Middleware penting:
auth,auth:web,auth:sanctum,membership,reserveable-store,role:super.admin,init-firestore,locale,application-versioning.
Integration points
- Firebase/real-time chat flow via middleware
init-firestore(chat endpoints admin+mobile). - Push notification token and broadcast endpoints (
push-notification, mobileprofile/fcm-token). - SNS login callback route (
auth/sns/{provider}/callback). - OTP throttling (
throttle:otp) in mobile auth flow.
Constraints
- Beberapa route deklarasi tampak duplikat (
store/list-select,store/list) di admin API (verification required). - Banyak domain ada dalam satu monolith; perubahan schema harus disiplin migration + backward compatibility.