Bỏ qua

Xây dựng Logic Miền Nghiệp vụ

1. Chuỗi nghiệp vụ (Domain Chains)

HieraChain xử lý logic nghiệp vụ thông qua các chuỗi nghiệp vụ. Thay vì triển khai các hợp đồng thông minh bytecode tùy ý, nhà phát triển thực hiện logic nghiệp vụ bằng cách mở rộng hoặc cấu hình DomainChain trong hierachain/domains/chains/domain_chain.py.

Khởi tạo một Domain Chain

DomainChain kế thừa từ BaseChain và cung cấp sẵn cơ chế kiểm tra tính hợp lệ cho các thao tác phổ biến:

from hierachain.domains.chains.domain_chain import DomainChain

chain = DomainChain(
    name="supply_chain_01",
    domain_type="supply_chain",
    storage_path="data/ledger.db"
)

2. Kiểm tra tính hợp lệ của thao tác

DomainChain kiểm tra các trường bắt buộc trong dữ liệu thao tác trước khi tạo sự kiện:

  • quality_check: Yêu cầu check_typecheck_result.
  • approval: Yêu cầu approval_typeapprover_id.
  • resource_allocation: Yêu cầu resource_typeresource_id.
  • compliance_check: Yêu cầu compliance_type.

Các loại thao tác chưa định nghĩa mặc định được chấp thuận, giúp mở rộng tùy chỉnh dễ dàng:

from hierachain.domains.chains.domain_chain import validate_operation_data

payload = {
    "check_type": "visual_inspection",
    "check_result": "passed"
}

is_valid = validate_operation_data("quality_check", payload)
assert is_valid is True

3. Ghi nhận thao tác nghiệp vụ

Sử dụng các hàm tạo sự kiện từ hierachain/domains/events/event_creators.py:

from hierachain.domains.chains.domain_chain import DomainChain
from hierachain.domains.events.event_creators import create_quality_check

chain = DomainChain(name="logistics_chain", domain_type="logistics")

# Tạo sự kiện kiểm tra chất lượng đã qua kiểm thực
event = create_quality_check(
    entity_id="CONTAINER-409",
    check_type="temperature_compliance",
    check_result="passed",
    metadata={"temperature_c": 4.2}
)

# Nạp sự kiện vào chuỗi nghiệp vụ
chain.add_domain_event(
    entity_id=event["entity_id"],
    event=event["event"],
    details=event["details"]
)

4. Quản lý vòng đời thực thể

DomainChain theo dõi trạng thái thực thể qua các thao tác:

  1. Đăng ký: Đăng ký thực thể mới cần theo dõi trên chuỗi.
  2. Cập nhật trạng thái: Ghi nhận các trạng thái chuyển giao như in_progress, quality_approvedcompleted.
  3. Chỉ số đo lường: OperationMetricsTracker ghi nhận độ trễ thực thi và tỷ lệ thành công phục vụ báo cáo kiểm toán.
# Đăng ký thực thể
chain.register_entity(
    entity_id="CONTAINER-409",
    entity_type="cargo",
    metadata={"origin": "Port A", "destination": "Port B"}
)

# Cập nhật trạng thái thực thể
chain.update_entity_status(
    entity_id="CONTAINER-409",
    new_status="in_transit",
    reason="Departed facility"
)

Liên quan