from __future__ import annotations

from pathlib import Path

from .models import DocumentTypeRule, ProjectCandidate

# Hằng số dùng chung cho script ingest.
ROOT_DIR = Path("HĐ-2026")
SOURCE_CODE = "HD-2026"
SOURCE_NAME = "HĐ-2026"
SOURCE_YEAR = 2026
SOURCE_TYPE = "mixed_dossier_repository"
INGEST_BATCH = "hd2026_baseline_v2"
MANIFEST_PATH = Path("tmp/hd2026_project_coverage_manifest.json")

TOP_LEVEL_CATEGORY_RULES = {
    "Anh Quang-2026": "commercial_contract",
    "Anh Thư-2026": "service_transport",
    "Bình Minh PL-2026": "material_supply",
    "Hoàng Phúc-2026": "commercial_contract",
    "Kiến Hải-2026": "unknown_mixed",
    "Lâm Cường Thịnh-2026": "material_supply",
    "Mai Hoa-2026": "service_transport",
    "Mai Hoan-2026": "commercial_contract",
    "Phòng KT xã Kiến Minh-2026": "owner_project_dossier",
    "Phú Quý-2026": "service_transport",
    "Taibus-2026": "vendor_profile",
    "Thái An-2026": "service_transport",
    "Thiên Khang-2026": "commercial_contract",
    "X88-2026": "vendor_profile",
    "Đa Độ 2026": "owner_project_dossier",
}

EXPECTED_DOCUMENT_TYPES = (
    "quyet_dinh_phe_duyet_nhiem_vu",
    "quyet_dinh_phe_duyet_bcktkt",
    "quyet_dinh_phe_duyet_khlcnt",
    "quyet_dinh_phe_duyet_kqlcnt",
    "bien_ban_thuong_thao_hop_dong",
    "hop_dong_thi_cong",
    "phu_luc_hop_dong",
    "bao_lanh_thuc_hien_hop_dong",
    "bao_lanh_tam_ung",
    "ban_ve_thi_cong",
    "ban_ve_chi_tiet",
    "du_toan",
    "bang_khoi_luong",
    "bien_ban_ban_giao_mat_bang",
    "nhat_ky_thi_cong",
    "ho_so_quan_ly_chat_luong",
    "bien_ban_nghiem_thu_cong_viec",
    "bang_xac_nhan_khoi_luong",
    "ho_so_thanh_toan",
    "bang_gia_tri_thanh_toan",
    "ho_so_hoan_cong",
    "ban_ve_hoan_cong",
    "ho_so_quyet_toan_tong_hop",
    "bien_ban_thanh_ly_hop_dong",
)

PROJECT_CANDIDATES = [
    ProjectCandidate(
        project_code="DS-HĐ26-001",
        project_name="Đường từ nhà ông Nam đến cống chùa Hưng Khánh",
        client_name="Phòng KT xã Kiến Minh",
        location="Xã Kiến Minh",
        description="Hồ sơ công trình sửa chữa, cải tạo tuyến đường từ nhà ông Nam đến cống chùa Hưng Khánh.",
        project_type="transport-infrastructure",
        status="active",
        priority="high",
        progress_percent=60,
        notes="Nguồn: HĐ-2026/Phòng KT xã Kiến Minh-2026/Đường từ nhà ông Nam đến cống chùa Hưng Khánh",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-002",
        project_name="Hệ thống cống hộp kênh bến Kem",
        client_name="Phòng KT xã Kiến Minh",
        location="Xã Kiến Minh",
        description="Hồ sơ chuẩn bị đầu tư, thẩm định, đấu thầu và tạm ứng cho hệ thống cống hộp kênh bến Kem.",
        project_type="drainage-infrastructure",
        status="planning",
        priority="high",
        progress_percent=35,
        notes="Nguồn: HĐ-2026/Phòng KT xã Kiến Minh-2026/Hệ thống cống hộp kênh bến Kem. ok",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-003",
        project_name="Kênh Đồng Dầm 2",
        client_name="Phòng KT xã Kiến Minh",
        location="Xã Kiến Minh",
        description="Hồ sơ danh mục, pháp lý và gói thi công xây lắp cho công trình Kênh Đồng Dầm 2.",
        project_type="irrigation-canal",
        status="planning",
        priority="medium",
        progress_percent=25,
        notes="Nguồn: HĐ-2026/Phòng KT xã Kiến Minh-2026/Kênh Đồng Dầm 2",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-004",
        project_name="Kênh Xây",
        client_name="Phòng KT xã Kiến Minh",
        location="Xã Kiến Minh",
        description="Hồ sơ thiết kế, dự toán, khối lượng và các gói thầu cho công trình Kênh Xây.",
        project_type="irrigation-canal",
        status="planning",
        priority="medium",
        progress_percent=25,
        notes="Nguồn: HĐ-2026/Phòng KT xã Kiến Minh-2026/Kênh xây",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-005",
        project_name="Lắp đặt đèn tết",
        client_name="Phòng KT xã Kiến Minh",
        location="Xã Kiến Minh",
        description="Hồ sơ dự toán, quyết định phê duyệt, bảo lãnh bảo hành và quyết toán cho gói lắp đặt đèn tết.",
        project_type="public-lighting",
        status="active",
        priority="medium",
        progress_percent=70,
        notes="Nguồn: HĐ-2026/Phòng KT xã Kiến Minh-2026/Lắp đặt đèn tết",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-006",
        project_name="Thủy lợi nội đồng",
        client_name="Phòng KT xã Kiến Minh",
        location="Xã Kiến Minh",
        description="Hồ sơ thủy lợi nội đồng với danh mục hồ sơ, thiết kế, dự toán, gói tư vấn và gói thi công.",
        project_type="irrigation",
        status="planning",
        priority="high",
        progress_percent=30,
        notes="Nguồn: HĐ-2026/Phòng KT xã Kiến Minh-2026/Thủy lợi nội đồng",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-007",
        project_name="Bờ phải Đa Độ khu vực xã An Quang",
        client_name="Đa Độ",
        location="Xã An Quang",
        description="Hồ sơ bờ phải Đa Độ khu vực xã An Quang, có dấu hiệu là gói công trình xây dựng.",
        project_type="embankment",
        status="planning",
        priority="high",
        progress_percent=20,
        notes="Nguồn: HĐ-2026/Đa Độ 2026/Bờ phải Đa Độ khu vực xã An Quang",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-008",
        project_name="Bờ trái Đa Độ khu vực xã An Lão",
        client_name="Đa Độ",
        location="Xã An Lão",
        description="Hồ sơ bờ trái Đa Độ khu vực xã An Lão, có thư mục gói TCXD và HSNT&QT.",
        project_type="embankment",
        status="planning",
        priority="high",
        progress_percent=20,
        notes="Nguồn: HĐ-2026/Đa Độ 2026/Bờ trái Đa Độ khu vực xã An Lão",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-009",
        project_name="Cống điều tiết",
        client_name="Đa Độ",
        location="Chưa rõ",
        description="Hồ sơ dự toán cống điều tiết.",
        project_type="hydraulic-structure",
        status="planning",
        priority="medium",
        progress_percent=15,
        notes="Nguồn: HĐ-2026/Đa Độ 2026/Cống điều tiết",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-010",
        project_name="Kênh Cống Muối",
        client_name="Đa Độ",
        location="Chưa rõ",
        description="Hồ sơ quyết toán, dự toán, máy móc và gói TCXD cho Kênh Cống Muối.",
        project_type="irrigation-canal",
        status="active",
        priority="medium",
        progress_percent=55,
        notes="Nguồn: HĐ-2026/Đa Độ 2026/Kênh Cống muối",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-011",
        project_name="Kênh hút trạm bơm Thụy Hương",
        client_name="Đa Độ",
        location="Thụy Hương",
        description="Hồ sơ nhập liệu/khởi tạo cho Kênh hút trạm bơm Thụy Hương.",
        project_type="irrigation-canal",
        status="planning",
        priority="medium",
        progress_percent=10,
        notes="Nguồn: HĐ-2026/Đa Độ 2026/Kênh Hút trạm bơm Thụy Hương",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-012",
        project_name="Kênh sau cống Kết",
        client_name="Đa Độ",
        location="Chưa rõ",
        description="Hồ sơ dự toán cho kênh sau cống Kết.",
        project_type="irrigation-canal",
        status="planning",
        priority="medium",
        progress_percent=15,
        notes="Nguồn: HĐ-2026/Đa Độ 2026/Kênh sau cống Kết - sau tết",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-013",
        project_name="Lỗ vỡ khu vực xã An Lão",
        client_name="Đa Độ",
        location="Xã An Lão",
        description="Hồ sơ xử lý lỗ vỡ khu vực xã An Lão, có dự toán và gói TCXD.",
        project_type="emergency-repair",
        status="active",
        priority="high",
        progress_percent=50,
        notes="Nguồn: HĐ-2026/Đa Độ 2026/LỖ VỠ KHU VỰC XÃ AN LÃO",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-014",
        project_name="Lỗ vỡ xã Kiến Hưng",
        client_name="Đa Độ",
        location="Xã Kiến Hưng",
        description="Hồ sơ xử lý lỗ vỡ xã Kiến Hưng với nhiều phương án và hồ sơ nghiệm thu/quyết toán.",
        project_type="emergency-repair",
        status="active",
        priority="high",
        progress_percent=58,
        notes="Nguồn: HĐ-2026/Đa Độ 2026/Lỗ vỡ xã Kiến Hưng",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-015",
        project_name="Thương mại & Giao nhận Anh Quang",
        client_name="Anh Quang",
        location="Hải Phòng",
        description="Hồ sơ giao nhận vật tư và hợp đồng nguyên tắc Anh Quang - Định Sơn 2026.",
        project_type="commercial_contract",
        status="active",
        priority="medium",
        progress_percent=80,
        notes="Nguồn: HĐ-2026/Anh Quang-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-016",
        project_name="Vận tải & Bốc xúc Anh Thư - Anh Khoa",
        client_name="Anh Thư",
        location="Hải Phòng",
        description="Hồ sơ dịch vụ vận chuyển bốc xúc và đề nghị thanh toán Anh Khoa - Định Sơn 2026.",
        project_type="fleet-logistics",
        status="active",
        priority="medium",
        progress_percent=75,
        notes="Nguồn: HĐ-2026/Anh Thư-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-017",
        project_name="Cung cấp vật tư Bình Minh PL",
        client_name="Bình Minh PL",
        location="Hải Phòng",
        description="Hồ sơ hợp đồng kinh tế và cung cấp vật tư Bình Minh - Định Sơn 2026.",
        project_type="material-supply",
        status="active",
        priority="medium",
        progress_percent=85,
        notes="Nguồn: HĐ-2026/Bình Minh PL-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-018",
        project_name="Mặt bằng xây dựng Hoàng Phúc",
        client_name="Hoàng Phúc",
        location="Hải Phòng",
        description="Hợp đồng mặt bằng xây dựng Hoàng Phúc - Định Sơn 2026.",
        project_type="commercial_contract",
        status="active",
        priority="medium",
        progress_percent=70,
        notes="Nguồn: HĐ-2026/Hoàng Phúc-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-019",
        project_name="Tổng mặt bằng Kiến Hải",
        client_name="Kiến Hải",
        location="Kiến Hải",
        description="Hồ sơ bản vẽ và tổng mặt bằng dự án Kiến Hải 2026.",
        project_type="infrastructure",
        status="planning",
        priority="medium",
        progress_percent=30,
        notes="Nguồn: HĐ-2026/Kiến Hải-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-020",
        project_name="Vật tư tôn Lâm Cường Thịnh",
        client_name="Lâm Cường Thịnh",
        location="Hải Phòng",
        description="Hồ sơ theo dõi tồn kho và vật tư tôn Lâm Cường Thịnh - Định Sơn 2026.",
        project_type="material-supply",
        status="active",
        priority="medium",
        progress_percent=90,
        notes="Nguồn: HĐ-2026/Lâm Cường Thịnh-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-021",
        project_name="Bốc xúc tại bến KQ Mai Hoa",
        client_name="Mai Hoa",
        location="Bến Kiến Quốc",
        description="Hồ sơ theo dõi bốc xúc vật liệu tại bến KQ Mai Hoa - Định Sơn 2026.",
        project_type="fleet-logistics",
        status="active",
        priority="medium",
        progress_percent=80,
        notes="Nguồn: HĐ-2026/Mai Hoa-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-022",
        project_name="Hợp đồng & Quyết toán Mai Hoan",
        client_name="Mai Hoan",
        location="Hải Phòng",
        description="Hợp đồng và quyết toán thi công cơ giới Mai Hoan - Định Sơn 2026.",
        project_type="commercial_contract",
        status="active",
        priority="medium",
        progress_percent=85,
        notes="Nguồn: HĐ-2026/Mai Hoan-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-023",
        project_name="Dịch vụ vận tải Phú Quý",
        client_name="Phú Quý",
        location="Hải Phòng",
        description="Hồ sơ hợp đồng và dịch vụ vận tải Phú Quý - Định Sơn 2026.",
        project_type="fleet-logistics",
        status="active",
        priority="medium",
        progress_percent=70,
        notes="Nguồn: HĐ-2026/Phú Quý-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-024",
        project_name="Dịch vụ vận tải Thái An",
        client_name="Thái An",
        location="Hải Phòng",
        description="Hồ sơ cung ứng vận chuyển đất cát Thái An - Định Sơn 2026.",
        project_type="fleet-logistics",
        status="active",
        priority="medium",
        progress_percent=75,
        notes="Nguồn: HĐ-2026/Thái An-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-025",
        project_name="Hợp đồng thương mại Thiên Khang",
        client_name="Thiên Khang",
        location="Hải Phòng",
        description="Hồ sơ hợp đồng cung ứng và thương mại Thiên Khang - Định Sơn 2026.",
        project_type="commercial_contract",
        status="active",
        priority="medium",
        progress_percent=80,
        notes="Nguồn: HĐ-2026/Thiên Khang-2026",
    ),
    ProjectCandidate(
        project_code="DS-HĐ26-026",
        project_name="Hồ sơ đối tác X88",
        client_name="X88",
        location="Hải Phòng",
        description="Hồ sơ pháp lý và năng lực cung ứng đối tác X88 - Định Sơn 2026.",
        project_type="vendor_profile",
        status="active",
        priority="medium",
        progress_percent=90,
        notes="Nguồn: HĐ-2026/X88-2026",
    ),
]


def build_document_type_rules() -> list[DocumentTypeRule]:
    # Gom rule vào file riêng để script chính gọn hơn.
    raw_rules = [
        DocumentTypeRule(
            "quyet_dinh_phe_duyet_nhiem_vu",
            "nhiem vu",
            "any",
            10,
            "project_approval",
            "decision_document",
            "pre_award",
            "decision",
            ("pre_award",),
            "Quyết định phê duyệt nhiệm vụ",
        ),
        DocumentTypeRule(
            "quyet_dinh_phe_duyet_bcktkt",
            "bcktkt",
            "any",
            10,
            "project_approval",
            "decision_document",
            "pre_award",
            "decision",
            ("pre_award",),
            "Quyết định phê duyệt BCKTKT",
        ),
        DocumentTypeRule(
            "quyet_dinh_phe_duyet_khlcnt",
            "khlcnt",
            "any",
            10,
            "procurement_tender",
            "decision_document",
            "pre_award",
            "decision",
            ("pre_award", "contracting"),
            "Quyết định phê duyệt KHLCNT",
        ),
        DocumentTypeRule(
            "quyet_dinh_phe_duyet_kqlcnt",
            "kqlcnt",
            "any",
            10,
            "procurement_tender",
            "decision_document",
            "contracting",
            "decision",
            ("contracting",),
            "Quyết định phê duyệt KQLCNT",
        ),
        DocumentTypeRule(
            "bien_ban_thuong_thao_hop_dong",
            "thuong thao",
            "any",
            20,
            "contract_management",
            "negotiation_record",
            "contracting",
            "contract",
            ("contracting",),
            "Biên bản thương thảo hợp đồng",
        ),
        DocumentTypeRule(
            "phu_luc_hop_dong",
            "phu luc hop dong",
            "any",
            20,
            "contract_management",
            "contract_document",
            "contracting",
            "contract",
            ("contracting", "payment", "finalization"),
            "Phụ lục hợp đồng",
        ),
        DocumentTypeRule(
            "hop_dong_thi_cong",
            "hop dong",
            "any",
            30,
            "contract_management",
            "contract_document",
            "contracting",
            "contract",
            ("contracting", "payment", "finalization"),
            "Hợp đồng thi công",
        ),
        DocumentTypeRule(
            "hop_dong_thi_cong",
            "hd ",
            "filename",
            30,
            "contract_management",
            "contract_document",
            "contracting",
            "contract",
            ("contracting", "payment", "finalization"),
            "Hợp đồng thi công",
        ),
        DocumentTypeRule(
            "hop_dong_thi_cong",
            "hdnt",
            "filename",
            30,
            "contract_management",
            "contract_document",
            "contracting",
            "contract",
            ("contracting", "payment", "finalization"),
            "Hợp đồng nguyên tắc",
        ),
        DocumentTypeRule(
            "bao_lanh_thuc_hien_hop_dong",
            "bao lanh thuc hien",
            "any",
            15,
            "contract_management",
            "guarantee_document",
            "contracting",
            "guarantee",
            ("contracting",),
            "Bảo lãnh thực hiện hợp đồng",
        ),
        DocumentTypeRule(
            "bao_lanh_tam_ung",
            "bao lanh tam ung",
            "any",
            15,
            "payment_support",
            "guarantee_document",
            "payment",
            "guarantee",
            ("payment",),
            "Bảo lãnh tạm ứng",
        ),
        DocumentTypeRule(
            "ban_ve_hoan_cong",
            "hoan cong",
            "any",
            10,
            "closeout_documentation",
            "as_built_drawing",
            "finalization",
            "drawing",
            ("finalization",),
            "Bản vẽ hoàn công",
        ),
        DocumentTypeRule(
            "ho_so_hoan_cong",
            "ho so hoan cong",
            "any",
            5,
            "closeout_documentation",
            "as_built_record",
            "finalization",
            "closeout",
            ("finalization",),
            "Hồ sơ hoàn công",
        ),
        DocumentTypeRule(
            "ban_ve_chi_tiet",
            "chi tiet",
            "filename",
            20,
            "technical_delivery",
            "technical_drawing",
            "execution",
            "drawing",
            ("execution", "payment"),
            "Bản vẽ chi tiết",
        ),
        DocumentTypeRule(
            "ban_ve_thi_cong",
            "bd_",
            "filename",
            20,
            "technical_delivery",
            "technical_drawing",
            "execution",
            "drawing",
            ("execution", "payment"),
            "Bản vẽ thi công",
        ),
        DocumentTypeRule(
            "ban_ve_thi_cong",
            "ban ve",
            "any",
            25,
            "technical_delivery",
            "technical_drawing",
            "execution",
            "drawing",
            ("execution", "payment"),
            "Bản vẽ thi công",
        ),
        DocumentTypeRule(
            "ban_ve_thi_cong",
            "mat bang",
            "any",
            25,
            "technical_delivery",
            "technical_drawing",
            "execution",
            "drawing",
            ("execution", "payment"),
            "Bản vẽ mặt bằng",
        ),
        DocumentTypeRule(
            "du_toan",
            "du toan",
            "any",
            20,
            "cost_management",
            "estimate_document",
            "pre_award",
            "cost",
            ("pre_award", "contracting"),
            "Dự toán",
        ),
        DocumentTypeRule(
            "du_toan",
            "tmdt",
            "any",
            20,
            "cost_management",
            "estimate_document",
            "pre_award",
            "cost",
            ("pre_award", "contracting"),
            "Tổng mức đầu tư",
        ),
        DocumentTypeRule(
            "bang_khoi_luong",
            "khoi luong",
            "any",
            20,
            "cost_management",
            "quantity_table",
            "payment",
            "cost",
            ("payment",),
            "Bảng khối lượng",
        ),
        DocumentTypeRule(
            "bang_khoi_luong",
            "ton",
            "filename",
            20,
            "cost_management",
            "quantity_table",
            "payment",
            "cost",
            ("payment",),
            "Bảng tồn kho",
        ),
        DocumentTypeRule(
            "bien_ban_ban_giao_mat_bang",
            "ban giao mat bang",
            "any",
            20,
            "site_handover",
            "handover_record",
            "execution",
            "handover",
            ("execution",),
            "Biên bản bàn giao mặt bằng",
        ),
        DocumentTypeRule(
            "bien_ban_ban_giao_mat_bang",
            "bbgn",
            "filename",
            20,
            "site_handover",
            "handover_record",
            "execution",
            "handover",
            ("execution",),
            "Biên bản giao nhận",
        ),
        DocumentTypeRule(
            "bien_ban_ban_giao_mat_bang",
            "boc xuc",
            "any",
            20,
            "site_execution",
            "site_log",
            "execution",
            "handover",
            ("execution",),
            "Biên bản bốc xúc",
        ),
        DocumentTypeRule(
            "nhat_ky_thi_cong",
            "nhat ky",
            "any",
            20,
            "site_execution",
            "site_log",
            "execution",
            "execution_record",
            ("execution",),
            "Nhật ký thi công",
        ),
        DocumentTypeRule(
            "ho_so_quan_ly_chat_luong",
            "chat luong",
            "any",
            20,
            "quality_management",
            "quality_record",
            "execution",
            "quality",
            ("execution", "finalization"),
            "Hồ sơ quản lý chất lượng",
        ),
        DocumentTypeRule(
            "bien_ban_nghiem_thu_cong_viec",
            "nghiem thu",
            "any",
            20,
            "payment_support",
            "acceptance_record",
            "payment",
            "acceptance",
            ("payment", "finalization"),
            "Biên bản nghiệm thu công việc",
        ),
        DocumentTypeRule(
            "ho_so_thanh_toan",
            "thanh toan",
            "any",
            20,
            "payment_support",
            "payment_document",
            "payment",
            "payment",
            ("payment",),
            "Hồ sơ thanh toán",
        ),
        DocumentTypeRule(
            "ho_so_thanh_toan",
            "dntt",
            "filename",
            20,
            "payment_support",
            "payment_document",
            "payment",
            "payment",
            ("payment",),
            "Đề nghị thanh toán",
        ),
        DocumentTypeRule(
            "bang_gia_tri_thanh_toan",
            "gia tri thanh toan",
            "any",
            15,
            "payment_support",
            "payment_value_table",
            "payment",
            "payment",
            ("payment",),
            "Bảng giá trị thanh toán",
        ),
        DocumentTypeRule(
            "ho_so_quyet_toan_tong_hop",
            "quyet toan",
            "any",
            20,
            "closeout_documentation",
            "settlement_document",
            "finalization",
            "settlement",
            ("finalization",),
            "Hồ sơ quyết toán tổng hợp",
        ),
        DocumentTypeRule(
            "ho_so_quyet_toan_tong_hop",
            "qt ",
            "filename",
            20,
            "closeout_documentation",
            "settlement_document",
            "finalization",
            "settlement",
            ("finalization",),
            "Hồ sơ quyết toán",
        ),
        DocumentTypeRule(
            "bien_ban_thanh_ly_hop_dong",
            "thanh ly",
            "any",
            20,
            "closeout_documentation",
            "liquidation_record",
            "finalization",
            "settlement",
            ("finalization",),
            "Biên bản thanh lý hợp đồng",
        ),
    ]
    return sorted(raw_rules, key=lambda item: item.priority)
