Allocation Schema
Schema allocation chứa 4 model quản lý việc phân bổ không gian và tài nguyên cho các địa điểm, sự kiện, và sắp xếp chỗ ngồi. Nó hỗ trợ cấu trúc phân cấp từ kế hoạch xuống đến các đơn vị có thể phân bổ riêng lẻ.
Nguồn: packages/core/src/models/schemas/allocation/
Tổng quan Model
| Model | Tên Bảng | Mô tả |
|---|---|---|
| AllocationPlan | allocation.AllocationPlan | Kế hoạch cấp cao nhất thuộc sở hữu của một Organizer |
| AllocationLayout | allocation.AllocationLayout | Cấu hình bố cục trong một kế hoạch |
| AllocationZone | allocation.AllocationZone | Nhóm logic các đơn vị trong một bố cục |
| AllocationUnit | allocation.AllocationUnit | Đơn vị có thể phân bổ riêng lẻ (ghế, bàn, v.v.) |
Phân cấp
AllocationPlan
Container cấp cao nhất thuộc sở hữu của một Organizer. Đại diện cho cấu hình địa điểm hoặc sự kiện.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
status | text | NOT NULL, DEFAULT UNKNOWN | Trạng thái kế hoạch |
name | jsonb (i18n) | NOT NULL | Tên đa ngôn ngữ |
style | jsonb | Cấu hình kiểu dáng trực quan | |
organizer_id | text | NOT NULL | FK đến Organizer |
| + các cột chung | id, createdAt, modifiedAt, deletedAt, metadata |
AllocationLayout
Cấu hình bố cục cụ thể trong một kế hoạch. Liên kết đến kế hoạch thông qua planId.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
status | text | NOT NULL, DEFAULT UNKNOWN | Trạng thái bố cục |
name | jsonb (i18n) | NOT NULL | Tên đa ngôn ngữ |
style | jsonb | Kiểu dáng bố cục (nền, kích thước) | |
plan_id | text | NOT NULL | FK đến AllocationPlan |
| + các cột chung |
AllocationZone
Nhóm logic các đơn vị trong một bố cục. Đại diện cho các phần, khu vực, hoặc danh mục.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
status | text | NOT NULL, DEFAULT UNKNOWN | Trạng thái khu vực |
name | jsonb (i18n) | NOT NULL | Tên đa ngôn ngữ |
style | jsonb | Kiểu dáng khu vực (màu sắc, viền) | |
layout_id | text | NOT NULL | FK đến AllocationLayout |
| + các cột chung |
AllocationUnit
Đơn vị có thể phân bổ riêng lẻ (ghế, bàn, chỗ đậu xe, v.v.) với hỗ trợ vị trí linh hoạt.
| Cột | Kiểu | Ràng buộc | Mô tả |
|---|---|---|---|
status | text | NOT NULL, DEFAULT UNKNOWN | Trạng thái đơn vị |
name | jsonb (i18n) | NOT NULL | Tên đa ngôn ngữ (ví dụ: "Ghế A1") |
placement | jsonb | NOT NULL | Dữ liệu vị trí (xem Loại Vị trí bên dưới) |
style | jsonb | Kiểu dáng đơn vị (icon, màu sắc, kích thước) | |
zone_id | text | NOT NULL | FK đến AllocationZone |
| + các cột chung |
Loại Vị trí
AllocationUnit hỗ trợ nhiều chiến lược vị trí thông qua union phân biệt:
type TAllocationUnitPlacement =
| { type: 'grid'; value: TPlacementGrid }
| { type: 'absolute'; value: TPlacementAbsolute }
| { type: 'identifier'; value: TPlacementIdentifier }
| { type: 'geolocation'; value: TPlacementGeolocation }
| { type: 'relative'; value: TPlacementRelative };Grid
Cho chỗ ngồi truyền thống theo hàng/cột:
{ "type": "grid", "value": { "row": "A", "column": 1 } }Absolute
Cho định vị chính xác XY trên canvas:
{ "type": "absolute", "value": { "x": 150, "y": 200, "z": 1 } }Identifier
Vị trí được đặt tên đơn giản:
{ "type": "identifier", "value": "VIP-BOX-1" }Geolocation
Cho phân bổ ngoài trời hoặc dựa trên GPS:
{ "type": "geolocation", "value": { "latitude": 10.762622, "longitude": 106.660172, "accuracy": 5 } }Relative
Định vị tương đối so với một đơn vị khác:
{ "type": "relative", "value": { "relativeTo": "unit-123", "offsetX": 50, "offsetY": 0 } }Quan hệ Thực thể
Tích hợp với Sản phẩm
ProductVariant có thể liên kết đến các thực thể allocation cho sản phẩm theo chỗ ngồi cụ thể:
| Cột ProductVariant | FK Đích |
|---|---|
allocation_plan_id | AllocationPlan |
allocation_layout_id | AllocationLayout |
allocation_zone_id | AllocationZone |
allocation_unit_id | AllocationUnit |
Điều này cho phép sản phẩm vé được gắn với chỗ ngồi, khu vực, hoặc bố cục cụ thể.
Tài liệu Liên quan
- Tổng quan Cơ sở dữ liệu -- Tóm tắt schema, cột chung, kiểu chia sẻ
- Sơ đồ Quan hệ Thực thể -- ERD toàn diện cho tất cả 55 model
- Public Schema -- 30 model trong public schema
- Pricing Schema -- 7 model định giá
- Sale Schema -- 2 model đơn hàng bán
- Inventory Schema -- 8 model tồn kho
- Finance Schema -- 3 model tài chính
- Payment Schema -- 1 model cấu hình webhook
- Migration -- DDL migration và framework dữ liệu mẫu