
DKVU2XML = {
    "Ký hiệu mẫu hóa đơn": "form_no",
    "Ký hiệu hóa đơn": "serial_no",
    "Số hóa đơn": "invoice_no",
    "Ngày, tháng, năm lập hóa đơn": "issue_date",
    "Tên người bán": "seller_name",
    "Mã số thuế người bán": "seller_tax_code",
    "Thuế suất": "tax_rate",
    "Thuế GTGT đủ điều kiện khấu trừ thuế": "VAT_input_amount",
    "Mặt hàng": "item",
    "Đơn vị tính": "unit",
    "Số lượng": "quantity",
    "Đơn giá": "unit_price",
    "Doanh số mua chưa có thuế": "amount"
}


def ap_dictionary(header: bool):
    header_dictionary = {
        'productname': ['description', 'paticulars', 'articledescription', 'descriptionofgood', 'itemdescription', 'product', 'productdescription', 'modelname', 'device', 'items', 'itemno'],
        'modelnumber': ['serialno', 'model', 'code', 'mcode', 'simimeiserial', 'serial', 'productcode', 'product', 'imeiccid', 'articles', 'article', 'articlenumber', 'articleidmaterialcode', 'transaction', 'itemcode'],
        'qty': ['quantity', 'invoicequantity']
    }
    
    key_dictionary = {
        'purchase_date': ['date', 'purchasedate', 'datetime', 'orderdate', 'orderdatetime', 'invoicedate', 'dateredeemed', 'issuedate', 'billingdocdate'],
        'retailername': ['retailer', 'retailername', 'ownedoperatedby'],
        'serial_number': ['serialnumber', 'serialno'],
        'imei_number': ['imeiesim', 'imeislot1', 'imeislot2', 'imei', 'imei1', 'imei2']
    }
    
    return header_dictionary if header else key_dictionary


def vat_dictionary(header: bool):
    header_dictionary = {
        'Mặt hàng': ['tenhanghoa,dichvu', 'danhmuc,dichvu', 'dichvusudung', 'sanpham', 'tenquycachhanghoa','description', 'descriptionofgood', 'itemdescription'],
        'Đơn vị tính': ['dvt', 'donvitinh'],
        'Số lượng': ['soluong', 'sl','qty', 'quantity', 'invoicequantity'],
        'Đơn giá': ['dongia'],
        'Doanh số mua chưa có thuế': ['thanhtien', 'thanhtientruocthuegtgt', 'tienchuathue'],
        # 'Số sản phẩm': ['serialno', 'model', 'mcode', 'simimeiserial', 'serial', 'sku', 'sn', 'productcode', 'product', 'particulars', 'imeiccid', 'articles', 'article', 'articleidmaterialcode', 'transaction', 'imei', 'articlenumber']
    }
    
    key_dictionary = {
        'Ký hiệu mẫu hóa đơn': ['mausoformno', 'mauso'],
        'Ký hiệu hóa đơn': ['kyhieuserialno', 'kyhieuserial', 'kyhieu'],
        'Số hóa đơn': ['soinvoiceno', 'invoiceno'],
        'Ngày, tháng, năm lập hóa đơn': [],
        'Tên người bán': ['donvibanseller', 'donvibanhangsalesunit', 'donvibanhangseller', 'kyboisignedby'],
        'Mã số thuế người bán': ['masothuetaxcode', 'maxsothuetaxcodenumber', 'masothue'],
        'Thuế suất': ['thuesuatgtgttaxrate', 'thuesuatgtgt'],
        'Thuế GTGT đủ điều kiện khấu trừ thuế': ['tienthuegtgtvatamount', 'tienthuegtgt'],
        # 'Ghi chú': [],
        # 'Ngày': ['ngayday', 'ngay', 'day'],
        # 'Tháng': ['thangmonth', 'thang', 'month'],
        # 'Năm': ['namyear', 'nam', 'year']
    }
    
    # exact_dictionary = {
    #     'Số hóa đơn': ['sono', 'so'],
    #     'Mã số thuế người bán': ['mst'],
    #     'Tên người bán': ['kyboi'],
    #     'Ngày, tháng, năm lập hóa đơn': ['kyngay', 'kyngaydate']
    # }
    
    return header_dictionary if header else key_dictionary

def manulife_dictionary(type: str):
    key_dict = {
        "Document type": ["documenttype", "loaichungtu"],
        "Document name": ["documentname", "tenchungtu"],
        "Patient Name": ["patientname", "tenbenhnhan"],
        "Date of Birth/Year of birth": [
            "dateofbirth",
            "yearofbirth",
            "ngaythangnamsinh",
            "namsinh",
        ],
        "Age": ["age", "tuoi"],
        "Gender": ["gender", "gioitinh"],
        "Social insurance card No.": ["socialinsurancecardno", "sothebhyt"],
        "Medical service provider name": ["medicalserviceprovidername", "tencosoyte"],
        "Department name": ["departmentname", "tenkhoadieutri"],
        "Diagnosis description": ["diagnosisdescription", "motachandoan"],
        "Diagnosis code": ["diagnosiscode", "machandoan"],
        "Admission date": ["admissiondate", "ngaynhapvien"],
        "Discharge date": ["dischargedate", "ngayxuatvien"],
        "Treatment method": ["treatmentmethod", "phuongphapdieutri"],
        "Treatment date": ["treatmentdate", "ngaydieutri", "ngaykham"],
        "Follow up treatment date": ["followuptreatmentdate", "ngaytaikham"],
        # "Name of precribed medicine": [],
        # "Quantity of prescribed medicine": [],
        # "Dosage for each medicine": []
        "Medical expense": ["Medical expense", "chiphiyte"],
        "Invoice No.": ["invoiceno", "sohoadon"],
    }

    title_dict = {
        "Chứng từ y tế": [
            "giayravien",
            "giaychungnhanphauthuat",
            "cachthucphauthuat",
            "phauthuat",
            "tomtathosobenhan",
            "donthuoc",
            "toathuoc",
            "donbosung",
            "ketquaconghuongtu"
            "ketqua",
            "phieuchidinh",
            "phieudangkykham",
            "giayhenkhamlai",
            "phieukhambenh",
            "phieukhambenhvaovien",
            "phieuxetnghiem",
            "phieuketquaxetnghiem",
            "phieuchidinhxetnghiem",
            "ketquasieuam",
            "phieuchidinhxetnghiem"
        ],
        "Chứng từ thanh toán": [
            "hoadon",
            "hoadongiatrigiatang",
            "hoadongiatrigiatangchuyendoituhoadondientu",
            "bangkechiphibaohiem",
            "bienlaithutien",
            "bangkechiphidieutrinoitru"
        ],
    }

    if type == "key":
        return key_dict
    elif type == "title":
        return title_dict
    else:
        raise ValueError(f"[ERROR] Dictionary type of {type} is not supported")