Skip to main content
Trang này mô tả các nhóm behavior mà current executable source đang thực hiện. “Domain” ở đây là cách nhóm code và dữ liệu đã quan sát được; không phải kiến trúc dự kiến hoặc bounded context được suy đoán.
Chọn một domain để biết nó sở hữu dữ liệu nào và workflow dừng ở đâu. Chọn Data dictionary khi cần field, type, nullability, default, relation hoặc index của một model cụ thể.

Bản đồ domain hiện tại

Tenant và authorization

Trách nhiệm hiện tại

  • Xác thực AuthUsers bằng email/password.
  • Liên kết account với một employee Users.
  • Lấy tower assignments từ UserBuildings.
  • Hợp nhất permission từ các group của user.
  • Chọn một activeTowerId cho request hiện tại.
Grouped authorization được resolve lại từ database cho mỗi authenticated request. Xem đầy đủ rule, mismatch và Acceptance Criteria tại Permissions matrix.

Căn hộ, cư dân và phương tiện

Trách nhiệm hiện tại

  • Lưu căn hộ và hồ sơ cư dân trong active tower.
  • Biểu diễn quan hệ cư trú bằng membership thay vì chỉ dựa vào text field trên resident/apartment.
  • Cho một resident liên kết nhiều apartment và một apartment có nhiều resident.
  • Lưu phương tiện thuộc apartment và đồng bộ dịch vụ phương tiện tương ứng.
  • Đưa resident import vào hàng reconciliation trước khi tạo/gắn resident.
Composite relations chứa tower_id ngăn membership hoặc vehicle relation trỏ sang record của tower khác. Generic create resident và generic vehicle mutations bị chặn; handler chuyên biệt là write path hiện tại.

Dịch vụ, assignment và chỉ số

Trách nhiệm hiện tại

  • Khai báo dịch vụ của tower.
  • Gán dịch vụ cho apartment; assignment có thể tham chiếu vehicle.
  • Ghi meter reading theo apartment, service và period.
  • Cung cấp service assignment và reading cho billing calculation.
Billing code chỉ tạo dòng phí từ active apartment, active service và assignment đang áp dụng. Với metered service, code tìm reading cùng apartment/service/period.

Công nợ và thanh toán

Trách nhiệm hiện tại

  • Tạo bảng kê và dòng phí ở trạng thái nháp.
  • Duyệt bảng kê trước khi thu.
  • Tạo phiếu thu với explicit allocations.
  • Cập nhật paid, debt và status trong transaction.
  • Tạo/cancel adjustment, receipt và excess movements theo guard của service.
  • Ghi cashbook/bankbook và audit log khi workflow chỉ định.
Debits là fallback legacy cho báo cáo công nợ. Source đánh dấu nguồn này chỉ dùng đối chiếu, không hỗ trợ kỳ lịch sử hoặc gửi reminder. ExcessPayments tồn tại trong schema/admin surface, nhưng current excess workflow được tìm thấy sử dụng ExcessPaymentLedger.
Xem flow và AC tại Workflow specifications, transition tại State machines.

Tương tác cư dân

Trách nhiệm hiện tại

  • Tạo feedback hoặc service request trong active tower.
  • Lưu phản hồi và attachment theo subject type.
  • Đổi trạng thái request.
  • Tạo/hoàn thành task cho feedback.
  • Tổng hợp interaction report từ các model nguồn hiện tại.
buildInteractionReport() hiện đọc Posts, Comments, Feedback, ServiceRequests và AppRatings. Việc có InteractionReports hoặc ServiceRatings trong schema không chứng minh các model đó được dùng làm nguồn cho report builder này.

Nhắc công nợ và email

Trách nhiệm hiện tại

  • Preview apartment/resident đủ điều kiện từ workflow debt source.
  • Tạo campaign và email jobs bằng snapshot hash.
  • Dispatcher kiểm tra lại debt, contact consent và suppression trước khi gửi.
  • Webhook lưu provider event, cập nhật job/campaign status và tạo suppression khi cần.
Manual dispatcher và webhook là Implemented. Automatic scheduler gọi dispatcher: Not Found.

Import và reconciliation

Trách nhiệm hiện tại

  • Parse file theo route/module.
  • Lưu preview và lỗi theo dòng.
  • Chỉ commit preview còn pending, hợp lệ và thuộc active tower/route.
  • Dùng specialized transaction cho financial import.
  • Chuyển resident import sang reconciliation thay vì tạo resident trực tiếp.
Preview parse thành công không đồng nghĩa target tables đã được ghi. Xem Import/export cho từng commit path.

Cấu hình, nội dung và landing

Các model dưới đây có schema và admin/public surface được tìm thấy. Không suy ra quan hệ nghiệp vụ ngoài field, route và handler hiện tại.