ภาพรวมสถาปัตยกรรม
CCR แบ่งระบบเป็น frontend 2 ตัวและ backend service หลัก 4 ตัว โดยแต่ละ service มี database context ของตัวเองและรับผิดชอบ domain ชัดเจน
| Layer | Module | หน้าที่ |
|---|---|---|
| Customer Web | ccr-frontend-user | หน้า public สำหรับ search car, booking, login, payment และ profile/contact |
| Backoffice | ccr-frontend-backoffice | หน้าจอ admin สำหรับ operation, setting, users/roles และ report |
| Backend | ccr-booking-service | booking lifecycle, booking edit, cancellation, refund, email queue |
| Backend | ccr-catalog-service | car, branch, add-on, promotion, fuel, OWR, public search, signed URL |
| Backend | ccr-user-service | user, role, permission, customer, consent, contact, Auth0/APIM lookup |
| Backend | ccr-payment-service | payment transaction, payment method, webhook, payment subscription |
| QA | ccr-test-suite | Playwright regression suite สำหรับ Backoffice |
Boundary สำคัญ
Booking Serviceเก็บ snapshot ของข้อมูล booking เช่น car, branch, customer, addon เพื่อให้ booking history ไม่เปลี่ยนตาม master data ล่าสุดCatalog Serviceเป็น source หลักของ search และ master data ฝั่งขาย เช่น car, branch, add-on, promotionUser Serviceแยก customer profile และ backoffice RBAC ออกจาก bookingPayment Serviceแยก transaction และ webhook เพื่อไม่ให้ payment concern กระจายไปอยู่ใน booking