Product ManagementCập nhật 2026-06-30 · product-management/DATABASE-BLUEPRINT.md
Database Blueprint — Blueprint dữ liệu
Nguồn dữ liệu:
src/lib/founder/product-registry.ts→DATABASE_BLUEPRINT. Chi tiết kiến trúc:docs/platform/DATA-ARCHITECTURE.md+docs/platform/DOMAIN-MODEL.md.
Nguyên tắc
- Single DB, shared schema,
tenant_id+ Postgres RLS mọi bảng tenant-scoped. - Spine entity dùng chung; vertical extend (không nhân bản).
- Hiện tại = domain models frontend (
src/lib/domain/models); schema Prisma thật = Phase 2.
Nhóm entity
| Nhóm | Entity | Trạng thái |
|---|---|---|
| Shared Spine | Tenant, TenantSettings, User, Role, Membership, Payment, PayoutRequest, Notification, MediaAsset, CmsPage, Coupon, AuditLog | planned (models sẵn) |
| Booking core | Listing, RoomType/Unit, RatePlan, Availability, PriceCalendar, Reservation, Guest, Review | partial (có models, chưa persist) |
| Vertical extensions | Affiliate/ReferralCode/Commission · Restaurant/Table/MenuItem · Tour/Experience · HealthProvider/TreatmentPackage/PatientProfile/CarePlan | planned (extend Reservable) |
| Intelligence store (tách) | Place, Review, KnowledgeFact, Feature, Score, EvaluationReport | planned (schema riêng, Phase 4) |
Quy tắc tránh
- Không db-per-tenant / schema-per-tenant.
- Không khoá "Hotel/Room" — dùng Listing/Inventory/Reservation.
- Role gắn vào Membership (user × tenant), không vào User.
- Payment polymorphic (target type) — Booking/F&B/Medical dùng chung.
- PHI (PatientProfile/CarePlan) mã hoá + audit.
Khi thêm entity mới
- Khai báo ở
DATABASE_BLUEPRINT(group, entity, state). - Extend entity lõi, không tạo bảng song song khoá theo ngành.
- Thêm
tenant_id+ RLS nếu tenant-scoped.