from __future__ import annotations

# Standard Unit Normalization Sets
EQUIPMENT_PURCHASE_UNITS = {"chiếc", "cái", "bộ", "hệ", "xe", "máy"}
EQUIPMENT_RENTAL_UNITS = {
    "ca",
    "giờ",
    "h",
    "ngày",
    "tháng",
    "chuyến",
    "m3",
    "m2",
    "md",
    "m",
}

# Machine & Equipment Classification Keywords
MACHINE_KEYWORDS = {
    "excavator": [
        "máy đào",
        "máy xúc",
        "excavator",
        "gầu",
        "pc200",
        "pc300",
        "pc450",
        "ec210",
        "ec200",
        "ec300",
        "sk200",
        "cat 320",
        "cat320",
        "doosan dx",
        "hitachi zx",
        "volvo ew",
        "ew140",
        "dx140",
        "zx200",
    ],
    "bulldozer": [
        "máy ủi",
        "bulldozer",
        "d31",
        "d50",
        "d65",
        "d85",
        "ủi bánh xích",
        "ủi bánh lốp",
    ],
    "roller": [
        "xe lu",
        "lu rung",
        "roller",
        "lu tĩnh",
        "lu bánh lốp",
        "sv512",
        "bw211",
        "ca250",
        "sakai",
        "bomag",
        "dynapac",
    ],
    "truck": [
        "xe ben",
        "xe tải",
        "xe tự đổ",
        "howo",
        "hino",
        "hyundai hd",
        "isuzu",
        "dongfeng",
        "thaco",
        "shacman",
        "xe đầu kéo",
        "forland",
        "auman",
        "towner",
        "ô tô tải",
        "oto tải",
    ],
    "concrete_cutter": [
        "máy cắt bê tông",
        "máy cắt đường",
        "cắt bê tông",
        "kc16",
        "kc20",
        "honda gx390",
        "lưỡi cắt bê tông",
        "máy cắt mặt đường",
    ],
    "steel_bender": [
        "máy cắt sắt",
        "máy uốn sắt",
        "gq40",
        "gw40",
        "gq50",
        "uốn sắt",
        "cắt sắt xây dựng",
        "máy bẻ đai",
    ],
    "welder": [
        "máy hàn",
        "máy hàn que",
        "máy hàn tig",
        "máy hàn mig",
        "máy cắt plasma",
        "jasic",
        "riland",
        "jasic zx7",
        "jasic cut",
        "hàn điện tử",
        "máy hàn công nghiệp",
    ],
    "drill": [
        "máy khoan",
        "máy khoan bê tông",
        "khoan rút lõi",
        "bosch gdb",
        "makita hr",
        "máy đục bê tông",
        "makita hm",
        "mũi khoan rút lõi",
        "máy đục phá",
    ],
    "compactor": [
        "máy đầm",
        "máy đầm cóc",
        "đầm cóc",
        "mikasa mt72",
        "đầm bàn",
        "conmec",
        "đầm dùi",
        "jinlong",
        "đầm cóc mikasa",
        "máy đầm nền",
    ],
    "crane": [
        "cần cẩu",
        "cẩu tháp",
        "cẩu tự hành",
        "cẩu bánh xích",
        "cẩu bánh lốp",
        "crane",
        "tadano",
        "kato",
        "kobelco 7055",
        "sany",
    ],
    "generator": [
        "máy phát điện",
        "generator",
        "genset",
        "cummins",
        "denyo",
        "mitsubishi",
        "perkins",
        "100kva",
        "250kva",
        "500kva",
        "25kva",
    ],
    "compressor": [
        "máy nén khí",
        "compressor",
        "puma",
        "fusheng",
        "pegasus",
        "nén khí trục vít",
    ],
    "mixer": [
        "máy trộn",
        "máy trộn bê tông",
        "mixer",
        "trộn cưỡng bức",
        "trộn tự hành",
    ],
    "pump": [
        "máy bơm bê tông",
        "bơm tĩnh",
        "bơm cần",
        "concrete pump",
        "máy bơm nước",
        "bơm chìm",
        "máy bơm chìm",
        "ebara",
        "tsurumi",
        "pentax",
        "máy bơm hố móng",
    ],
    "pile_driver": [
        "máy ép cọc",
        "máy khoan cọc",
        "khoan nhồi",
        "khoan roton",
        "búa rung",
        "búa đóng cọc",
        "ép robot",
    ],
}

# Material Group Keywords
MATERIAL_GROUP_KEYWORDS = {
    "AGGREGATE": [
        "cát vàng",
        "cát đen",
        "cát san lấp",
        "cát san nền",
        "cát xây",
        "cát tô",
        "san lấp",
        "tôn nền",
        "tôn đắp",
        "tôn lấp",
        "tôn mặt bằng",
        "đá 1x2",
        "đá 4x6",
        "đá 2x4",
        "đá hộc",
        "đá mi",
        "cấp phối",
        "đá dăm",
        "đất đắp",
        "đá bây",
    ],
    "STEEL": [
        "thép",
        "sắt",
        "cốt thép",
        "xà gồ",
        "tôn lợp",
        "tôn mạ",
        "tôn kẽm",
        "tôn màu",
        "tôn sóng",
        "tôn cuộn",
        "tôn tấm",
        "tấm tôn",
        "tôn xà gồ",
        "thép hình",
        "thép tấm",
        "thép hộp",
        "thép góc",
        "thép tròn",
        "thép cuộn",
        "lưới b40",
        "que hàn",
        "bu lông",
    ],
    "CEMENT": [
        "xi măng",
        "cement",
        "clinker",
        "tro bay",
        "xi măng chinfon",
        "xi măng vicem",
        "xi măng bút sơn",
        "xi măng hoàng thạch",
        "pcb40",
        "pcb30",
    ],
    "CONCRETE": [
        "bê tông",
        "bê tông tươi",
        "bê tông thương phẩm",
        "vữa",
        "r28",
        "mác 200",
        "mác 250",
        "mác 300",
        "mác 350",
        "mác 400",
    ],
    "BRICK": [
        "gạch",
        "gạch xây",
        "gạch tuynel",
        "gạch block",
        "gạch không nung",
        "gạch đỏ",
        "ngói",
        "gạch lát",
        "gạch ốp",
    ],
    "PIPES_FITTINGS": [
        "ống nhựa",
        "ống pvc",
        "ống hdpe",
        "ống ppr",
        "ống cống",
        "van",
        "cút",
        "tê",
        "măng sông",
        "phụ kiện nước",
        "dây điện",
        "cáp điện",
        "đèn chiếu sáng",
    ],
    "FINISHING_PAINT": [
        "sơn",
        "sơn lót",
        "sơn phủ",
        "bột bả",
        "chống thấm",
        "sika",
        "keo",
        "hóa chất",
        "chất kết dính",
        "vải địa",
        "màng chống thấm",
    ],
    "FUEL_OIL": [
        "xăng",
        "dầu",
        "diesel",
        "do 0.05s",
        "ron 95",
        "ron 92",
        "dầu nhớt",
        "mỡ bôi trơn",
        "dầu thủy lực",
        "nhiên liệu",
    ],
    "SAFETY_EQUIPMENT": [
        "bảo hộ",
        "mũ bảo hộ",
        "giày bảo hộ",
        "áo phản quang",
        "dây an toàn",
        "găng tay",
        "kính bảo hộ",
        "lưới an toàn",
        "cốp pha",
        "giàn giáo",
        "cây chống",
    ],
}
