import typing as tp
import mcp_server_solotodo.schemas as schemas


# Brand ID mapping (alphabetically sorted by keys)
BRAND_ID_MAP: dict[schemas.Brand, schemas.Id] = {
    "ASUS": schemas.Id(102009),
    "Acer": schemas.Id(101967),
    "Apple": schemas.Id(101997),
    "CHUWI": schemas.Id(1360228),
    "Dell": schemas.Id(102078),
    "Gigabyte": schemas.Id(102126),
    "HP": schemas.Id(102159),
    "Huawei": schemas.Id(102165),
    "Hyundai": schemas.Id(1073670),
    "Lenovo": schemas.Id(102192),
    "MSI": schemas.Id(102234),
    "Microsoft": schemas.Id(102222),
    "Samsung": schemas.Id(102327),
    "Toshiba": schemas.Id(102384),
    "Urao": schemas.Id(1957916),
}

# Product Line ID mapping (alphabetically sorted by keys)
BRAND_LINE_ID_MAP: dict[schemas.BrandLine, schemas.Id] = {
    "ASUS": schemas.Id(105148),
    "ASUS Chromebook": schemas.Id(1114576),
    "ASUS ExpertBook": schemas.Id(1216191),
    "ASUS ProArt": schemas.Id(2014415),
    "ASUS ProArt StudioBook": schemas.Id(1221066),
    "ASUS ROG": schemas.Id(482397),
    "ASUS TUF": schemas.Id(785476),
    "ASUS VivoBook": schemas.Id(569628),
    "ASUS Zenbook": schemas.Id(105184),
    "Acer Aspire": schemas.Id(104989),
    "Acer Nitro": schemas.Id(1201050),
    "Acer Predator": schemas.Id(105066),
    "Acer Swift": schemas.Id(551560),
    "Acer Travelmate": schemas.Id(105078),
    "Apple MacBook Air": schemas.Id(105122),
    "Apple MacBook Pro": schemas.Id(105135),
    "CHUWI": schemas.Id(1360231),
    "Dell": schemas.Id(928201),
    "Dell Alienware": schemas.Id(105262),
    "Dell Inspiron": schemas.Id(105273),
    "Dell Latitude": schemas.Id(105298),
    "Dell Precision": schemas.Id(105308),
    "Dell Pro": schemas.Id(2094682),
    "Dell Vostro": schemas.Id(105344),
    "Dell XPS": schemas.Id(105353),
    "Gigabyte": schemas.Id(105427),
    "HP": schemas.Id(105458),
    "HP Chromebook": schemas.Id(105468),
    "HP Dragonfly": schemas.Id(1730571),
    "HP Elite": schemas.Id(1069930),
    "HP EliteBook": schemas.Id(105492),
    "HP Envy": schemas.Id(105504),
    "HP Omen": schemas.Id(105534),
    "HP OmniBook Ultra": schemas.Id(2078860),
    "HP Pavilion": schemas.Id(105546),
    "HP ProBook": schemas.Id(105556),
    "HP Spectre": schemas.Id(105567),
    "HP Victus": schemas.Id(1473357),
    "HP ZBook": schemas.Id(105619),
    "Huawei Matebook": schemas.Id(543945),
    "Hyundai HyBook": schemas.Id(1491504),
    "Lenovo": schemas.Id(105648),
    "Lenovo IdeaPad": schemas.Id(105670),
    "Lenovo IdeaPad Slim 3 14AHP10": schemas.Id(2092201),
    "Lenovo IdeaPad Slim 5 16IRL8": schemas.Id(1783394),
    "Lenovo LOQ": schemas.Id(1813205),
    "Lenovo LOQ 15ARP9": schemas.Id(1925882),
    "Lenovo Legion": schemas.Id(1385146),
    "Lenovo ThinkBook": schemas.Id(979316),
    "Lenovo ThinkBook 14 G6 IRL": schemas.Id(1852009),
    "Lenovo ThinkPad": schemas.Id(105701),
    "Lenovo ThinkPad P14s Gen 4 (AMD)": schemas.Id(1821807),
    "Lenovo ThinkPad P15v Gen 3": schemas.Id(1788959),
    "Lenovo V15 G2 ITL": schemas.Id(1768507),
    "Lenovo Yoga": schemas.Id(105712),
    "MSI": schemas.Id(105767),
    "MSI Bravo": schemas.Id(1221633),
    "MSI Cyborg": schemas.Id(1763566),
    "MSI Modern": schemas.Id(1763634),
    "MSI Thin": schemas.Id(2014505),
    "MSI Vector": schemas.Id(1725765),
    "Microsoft Surface": schemas.Id(105755),
    "Samsung": schemas.Id(105884),
    "Toshiba Dynabook": schemas.Id(1159367),
    "Urao": schemas.Id(1957919),
}


# Processor Brand ID mapping (alphabetically sorted by keys)
PROCESSOR_BRAND_ID_MAP: dict[schemas.ProcessorBrand, schemas.Id] = {
    "AMD": schemas.Id(102438),
    "Apple": schemas.Id(1294924),
    "Intel": schemas.Id(102440),
    "Mediatek": schemas.Id(1298968),
    "Qualcomm": schemas.Id(1726995),
}


# Processor Line ID mapping (alphabetically sorted by keys)
PROCESSOR_LINE_ID_MAP: dict[schemas.ProcessorLine, schemas.Id] = {
    "AMD A12": schemas.Id(1173707),
    "AMD A6": schemas.Id(1173695),
    "AMD A9": schemas.Id(1173701),
    "AMD Athlon": schemas.Id(1074597),
    "AMD Ryzen 3": schemas.Id(1725362),
    "AMD Ryzen 5": schemas.Id(1725365),
    "AMD Ryzen 7": schemas.Id(1725368),
    "AMD Ryzen 9": schemas.Id(1725371),
    "AMD Ryzen AI 5": schemas.Id(2067602),
    "AMD Ryzen AI 7": schemas.Id(1944248),
    "AMD Ryzen AI 9": schemas.Id(1977344),
    "Apple": schemas.Id(1294925),
    "Intel": schemas.Id(1886213),
    "Intel Celeron": schemas.Id(103690),
    "Intel Core 5": schemas.Id(1895272),
    "Intel Core 7": schemas.Id(1955042),
    "Intel Core Ultra 5": schemas.Id(1876850),
    "Intel Core Ultra 7": schemas.Id(1876790),
    "Intel Core Ultra 9": schemas.Id(1892482),
    "Intel Core i3": schemas.Id(103702),
    "Intel Core i5": schemas.Id(103705),
    "Intel Core i7": schemas.Id(103708),
    "Intel Core i9": schemas.Id(788517),
    "Intel Pentium": schemas.Id(103714),
    "Intel Xeon": schemas.Id(497974),
    "Mediatek": schemas.Id(1310407),
    "Qualcomm Snapdragon X": schemas.Id(2020221),
    "Qualcomm Snapdragon X Elite": schemas.Id(1935015),
    "Qualcomm Snapdragon X Plus": schemas.Id(1965056),
}


# Processor Thread Count ID mapping (sorted numerically by keys)
PROCESSOR_THREAD_COUNT_ID_MAP: dict[schemas.ProcessorThreadCount, schemas.Id] = {
    "2": schemas.Id(675537),
    "4": schemas.Id(675543),
    "6": schemas.Id(696259),
    "8": schemas.Id(696417),
    "10": schemas.Id(1509919),
    "11": schemas.Id(1836405),
    "12": schemas.Id(1173110),
    "14": schemas.Id(1562985),
    "16": schemas.Id(1173113),
    "18": schemas.Id(1876855),
    "20": schemas.Id(1563018),
    "22": schemas.Id(1876795),
    "24": schemas.Id(1626772),
    "28": schemas.Id(1790337),
    "32": schemas.Id(1732649),
}


# Processor Model ID mapping (alphabetically sorted by keys)
PROCESSOR_MODEL_ID_MAP: dict[schemas.Processor, schemas.Id] = {
    "AMD A12-8830B": schemas.Id(702310),
    "AMD A6-9220C": schemas.Id(940703),
    "AMD A9-9425": schemas.Id(799632),
    "AMD Athlon 3020e": schemas.Id(1245249),
    "AMD Ryzen 3 2200U": schemas.Id(770725),
    "AMD Ryzen 3 3250U": schemas.Id(1195661),
    "AMD Ryzen 3 3300U": schemas.Id(1019833),
    "AMD Ryzen 3 3350U": schemas.Id(1492568),
    "AMD Ryzen 3 4300U": schemas.Id(1276064),
    "AMD Ryzen 3 5300U": schemas.Id(1411926),
    "AMD Ryzen 3 5400U": schemas.Id(1551531),
    "AMD Ryzen 3 7320U": schemas.Id(1709946),
    "AMD Ryzen 3 7330U": schemas.Id(1870515),
    "AMD Ryzen 3 7335U": schemas.Id(1907363),
    "AMD Ryzen 3 PRO 4450U": schemas.Id(1336890),
    "AMD Ryzen 5 2500U": schemas.Id(735177),
    "AMD Ryzen 5 3450U": schemas.Id(1271460),
    "AMD Ryzen 5 3500U": schemas.Id(941577),
    "AMD Ryzen 5 4500U": schemas.Id(1203806),
    "AMD Ryzen 5 4600H": schemas.Id(1203363),
    "AMD Ryzen 5 5500U": schemas.Id(1423177),
    "AMD Ryzen 5 5600H": schemas.Id(1420887),
    "AMD Ryzen 5 5600U": schemas.Id(1412546),
    "AMD Ryzen 5 5625U": schemas.Id(1653088),
    "AMD Ryzen 5 5730U": schemas.Id(1991574),
    "AMD Ryzen 5 7235HS": schemas.Id(1945980),
    "AMD Ryzen 5 7430U": schemas.Id(1973022),
    "AMD Ryzen 5 7520U": schemas.Id(1718358),
    "AMD Ryzen 5 7530U": schemas.Id(1763629),
    "AMD Ryzen 5 7535HS": schemas.Id(1789553),
    "AMD Ryzen 5 7535U": schemas.Id(1894570),
    "AMD Ryzen 5 7640HS": schemas.Id(1813239),
    "AMD Ryzen 5 7640U": schemas.Id(1991491),
    "AMD Ryzen 5 8645HS": schemas.Id(1900257),
    "AMD Ryzen 5 PRO 7530U": schemas.Id(2100482),
    "AMD Ryzen 5 PRO 7540U": schemas.Id(1876717),
    "AMD Ryzen 5 PRO 8540U": schemas.Id(1975627),
    "AMD Ryzen 5 PRO 8640HS": schemas.Id(1975203),
    "AMD Ryzen 7 250": schemas.Id(2094216),
    "AMD Ryzen 7 3700U": schemas.Id(960479),
    "AMD Ryzen 7 3750H": schemas.Id(942142),
    "AMD Ryzen 7 4700U": schemas.Id(1224071),
    "AMD Ryzen 7 4800H": schemas.Id(1186906),
    "AMD Ryzen 7 4800HS": schemas.Id(1207748),
    "AMD Ryzen 7 5700U": schemas.Id(1403302),
    "AMD Ryzen 7 5800H": schemas.Id(1376844),
    "AMD Ryzen 7 5800HS": schemas.Id(1366130),
    "AMD Ryzen 7 5825U": schemas.Id(1719237),
    "AMD Ryzen 7 6800H": schemas.Id(1568888),
    "AMD Ryzen 7 7435HS": schemas.Id(1925885),
    "AMD Ryzen 7 7730U": schemas.Id(1760557),
    "AMD Ryzen 7 7735HS": schemas.Id(1751438),
    "AMD Ryzen 7 7735U": schemas.Id(1769761),
    "AMD Ryzen 7 7736U": schemas.Id(1905950),
    "AMD Ryzen 7 7840HS": schemas.Id(1784937),
    "AMD Ryzen 7 7840U": schemas.Id(1991524),
    "AMD Ryzen 7 8840HS": schemas.Id(1900805),
    "AMD Ryzen 7 8845HS": schemas.Id(1896444),
    "AMD Ryzen 7 PRO 4750U": schemas.Id(1211318),
    "AMD Ryzen 7 PRO 5850U": schemas.Id(1467575),
    "AMD Ryzen 7 PRO 5875U": schemas.Id(1623407),
    "AMD Ryzen 7 PRO 6850H": schemas.Id(1649529),
    "AMD Ryzen 7 PRO 7840U": schemas.Id(1821802),
    "AMD Ryzen 7 PRO 8840HS": schemas.Id(1975223),
    "AMD Ryzen 7 PRO 8840U": schemas.Id(1975594),
    "AMD Ryzen 7 Pro 3700U": schemas.Id(1174511),
    "AMD Ryzen 7 Pro 6850U": schemas.Id(1735323),
    "AMD Ryzen 9 270": schemas.Id(2076556),
    "AMD Ryzen 9 4900HS": schemas.Id(1209580),
    "AMD Ryzen 9 5900HS": schemas.Id(1379811),
    "AMD Ryzen 9 5900HX": schemas.Id(1326895),
    "AMD Ryzen 9 6900HS": schemas.Id(1648638),
    "AMD Ryzen 9 6900HX": schemas.Id(1617333),
    "AMD Ryzen 9 7845HX": schemas.Id(1763652),
    "AMD Ryzen 9 7940HS": schemas.Id(1764186),
    "AMD Ryzen 9 7940HX": schemas.Id(1951569),
    "AMD Ryzen 9 8940HX": schemas.Id(2091940),
    "AMD Ryzen 9 8945HS": schemas.Id(1936439),
    "AMD Ryzen AI 5 340": schemas.Id(2067610),
    "AMD Ryzen AI 5 Pro 340": schemas.Id(2088151),
    "AMD Ryzen AI 7 350": schemas.Id(2059829),
    "AMD Ryzen AI 7 Pro 350": schemas.Id(2088129),
    "AMD Ryzen AI 7 Pro 360": schemas.Id(1977333),
    "AMD Ryzen AI 9 365": schemas.Id(1975864),
    "AMD Ryzen AI 9 HX 370": schemas.Id(1944260),
    "AMD Ryzen AI 9 HX 375": schemas.Id(2069687),
    "Apple M-Series M1": schemas.Id(1294939),
    "Apple M-Series M1 Pro 10 Core": schemas.Id(1516502),
    "Apple M-Series M1 Pro 8 Core": schemas.Id(1516460),
    "Apple M-Series M2 10-Core GPU": schemas.Id(1621660),
    "Apple M-Series M2 8-Core GPU": schemas.Id(1630094),
    "Apple M-Series M2 Pro 16-Core GPU": schemas.Id(1723370),
    "Apple M-Series M3 (8-Core CPU / 10-Core GPU)": schemas.Id(1836475),
    "Apple M-Series M3 (8-Core CPU / 8-Core GPU)": schemas.Id(1890899),
    "Apple M-Series M3 Max (14-Core CPU / 30-Core GPU)": schemas.Id(1836273),
    "Apple M-Series M3 Pro (11-Core CPU / 14-Core GPU)": schemas.Id(1836411),
    "Apple M-Series M3 Pro (12-Core CPU / 18-Core GPU)": schemas.Id(1836307),
    "Apple M-Series M4 (10-Core CPU / 10-Core GPU)": schemas.Id(1974734),
    "Apple M-Series M4 (10-Core CPU / 8-Core GPU)": schemas.Id(2055849),
    "Apple M-Series M4 Max (14-Core CPU / 32-Core GPU)": schemas.Id(2022989),
    "Apple M-Series M4 Pro (12-Core CPU / 16-Core GPU)": schemas.Id(2022955),
    "Apple M-Series M4 Pro (14-Core CPU / 20-Core GPU)": schemas.Id(2022969),
    "Intel Celeron N4000": schemas.Id(762707),
    "Intel Celeron N4020": schemas.Id(1154251),
    "Intel Celeron N4500": schemas.Id(1420078),
    "Intel Celeron N5095": schemas.Id(1957921),
    "Intel Core 5-120U": schemas.Id(1895279),
    "Intel Core 5-210H": schemas.Id(2067712),
    "Intel Core 5-220U": schemas.Id(2087915),
    "Intel Core 7 150U": schemas.Id(1895325),
    "Intel Core 7 240H": schemas.Id(2039998),
    "Intel Core Ultra 5 125H": schemas.Id(1876861),
    "Intel Core Ultra 5 125U": schemas.Id(1910362),
    "Intel Core Ultra 5 135H": schemas.Id(1948849),
    "Intel Core Ultra 5 135U": schemas.Id(1897306),
    "Intel Core Ultra 5 225U": schemas.Id(2095632),
    "Intel Core Ultra 5 226V": schemas.Id(2015121),
    "Intel Core Ultra 5 228V": schemas.Id(2022377),
    "Intel Core Ultra 5 235U": schemas.Id(2094748),
    "Intel Core Ultra 7 155H": schemas.Id(1876803),
    "Intel Core Ultra 7 155U": schemas.Id(1900978),
    "Intel Core Ultra 7 165H": schemas.Id(1907475),
    "Intel Core Ultra 7 165U": schemas.Id(1897324),
    "Intel Core Ultra 7 255H": schemas.Id(2073843),
    "Intel Core Ultra 7 255HX": schemas.Id(2072719),
    "Intel Core Ultra 7 255U": schemas.Id(2094783),
    "Intel Core Ultra 7 256V": schemas.Id(1976585),
    "Intel Core Ultra 7 258V": schemas.Id(1968003),
    "Intel Core Ultra 7 268V": schemas.Id(2015071),
    "Intel Core Ultra 9 185H": schemas.Id(1892489),
    "Intel Core Ultra 9 275HX": schemas.Id(2047948),
    "Intel Core Ultra 9 285H": schemas.Id(2067692),
    "Intel Core i3-1005G1": schemas.Id(1019347),
    "Intel Core i3-10110U": schemas.Id(1043199),
    "Intel Core i3-1115G4": schemas.Id(1294448),
    "Intel Core i3-1125G4": schemas.Id(1434471),
    "Intel Core i3-1215U": schemas.Id(1633370),
    "Intel Core i3-1305U": schemas.Id(1771757),
    "Intel Core i3-1315U": schemas.Id(1870124),
    "Intel Core i3-7020U": schemas.Id(762643),
    "Intel Core i3-8130U": schemas.Id(763449),
    "Intel Core i3-8145U": schemas.Id(871359),
    "Intel Core i3-N300": schemas.Id(1898989),
    "Intel Core i3-N305": schemas.Id(1779071),
    "Intel Core i5-10210U": schemas.Id(1020712),
    "Intel Core i5-10300H": schemas.Id(1203412),
    "Intel Core i5-1030NG7": schemas.Id(1144585),
    "Intel Core i5-10310U": schemas.Id(1222400),
    "Intel Core i5-1035G1": schemas.Id(1019531),
    "Intel Core i5-1035G4": schemas.Id(1023188),
    "Intel Core i5-1038NG7": schemas.Id(1192254),
    "Intel Core i5-11300H": schemas.Id(1412836),
    "Intel Core i5-1130G7": schemas.Id(1414002),
    "Intel Core i5-1135G7": schemas.Id(1279757),
    "Intel Core i5-11400H": schemas.Id(1412279),
    "Intel Core i5-1235U": schemas.Id(1570721),
    "Intel Core i5-1240P": schemas.Id(1564121),
    "Intel Core i5-12450H": schemas.Id(1588565),
    "Intel Core i5-12450HX": schemas.Id(1890182),
    "Intel Core i5-12500H": schemas.Id(1610205),
    "Intel Core i5-1334U": schemas.Id(1910452),
    "Intel Core i5-1335U": schemas.Id(1740676),
    "Intel Core i5-13420H": schemas.Id(1771724),
    "Intel Core i5-13450HX": schemas.Id(1820182),
    "Intel Core i5-1345U": schemas.Id(1848241),
    "Intel Core i5-13600HX": schemas.Id(1870272),
    "Intel Core i5-5200U": schemas.Id(124604),
    "Intel Core i5-5250U": schemas.Id(124691),
    "Intel Core i5-5350U": schemas.Id(649758),
    "Intel Core i5-6200U": schemas.Id(124857),
    "Intel Core i5-6260U": schemas.Id(540766),
    "Intel Core i5-6300U": schemas.Id(482109),
    "Intel Core i5-7200U": schemas.Id(545595),
    "Intel Core i5-7300HQ": schemas.Id(579410),
    "Intel Core i5-8210Y": schemas.Id(846097),
    "Intel Core i5-8250U": schemas.Id(674295),
    "Intel Core i5-8259U": schemas.Id(808799),
    "Intel Core i5-8265U": schemas.Id(842504),
    "Intel Core i5-8279U": schemas.Id(935296),
    "Intel Core i5-8300H": schemas.Id(746123),
    "Intel Core i5-8350U": schemas.Id(763201),
    "Intel Core i5-8365U": schemas.Id(971180),
    "Intel Core i5-9300H": schemas.Id(959393),
    "Intel Core i7-10510U": schemas.Id(1015092),
    "Intel Core i7-10610U": schemas.Id(1218866),
    "Intel Core i7-1065G7": schemas.Id(1019502),
    "Intel Core i7-10750H": schemas.Id(1168823),
    "Intel Core i7-10850H": schemas.Id(1217127),
    "Intel Core i7-11370H": schemas.Id(1358905),
    "Intel Core i7-1165G7": schemas.Id(1259058),
    "Intel Core i7-11800H": schemas.Id(1411020),
    "Intel Core i7-1180G7": schemas.Id(1680981),
    "Intel Core i7-11850H": schemas.Id(1557154),
    "Intel Core i7-1185G7": schemas.Id(1297461),
    "Intel Core i7-1255U": schemas.Id(1592099),
    "Intel Core i7-1260P": schemas.Id(1558876),
    "Intel Core i7-12650H": schemas.Id(1612303),
    "Intel Core i7-1265U": schemas.Id(1626638),
    "Intel Core i7-12700H": schemas.Id(1563021),
    "Intel Core i7-12800H": schemas.Id(1618847),
    "Intel Core i7-12800HX": schemas.Id(1648492),
    "Intel Core i7-1355U": schemas.Id(1741169),
    "Intel Core i7-1360P": schemas.Id(1720951),
    "Intel Core i7-13620H": schemas.Id(1741667),
    "Intel Core i7-13650HX": schemas.Id(1750673),
    "Intel Core i7-1365U": schemas.Id(1766222),
    "Intel Core i7-13700H": schemas.Id(1732912),
    "Intel Core i7-13700HX": schemas.Id(1744308),
    "Intel Core i7-13850HX": schemas.Id(1790343),
    "Intel Core i7-14650HX": schemas.Id(1930539),
    "Intel Core i7-14700HX": schemas.Id(1876772),
    "Intel Core i7-6600U": schemas.Id(126578),
    "Intel Core i7-6700HQ": schemas.Id(126615),
    "Intel Core i7-7500U": schemas.Id(546895),
    "Intel Core i7-7600U": schemas.Id(598049),
    "Intel Core i7-8550U": schemas.Id(684650),
    "Intel Core i7-8565U": schemas.Id(842528),
    "Intel Core i7-8650U": schemas.Id(775292),
    "Intel Core i7-8665U": schemas.Id(986321),
    "Intel Core i7-8750H": schemas.Id(735986),
    "Intel Core i7-8850H": schemas.Id(808240),
    "Intel Core i7-9750H": schemas.Id(935404),
    "Intel Core i9-11950H": schemas.Id(1620068),
    "Intel Core i9-12950HX": schemas.Id(1627097),
    "Intel Core i9-13900H": schemas.Id(1732685),
    "Intel Core i9-13900HK": schemas.Id(1786854),
    "Intel Core i9-13900HX": schemas.Id(1732837),
    "Intel Core i9-13950HX": schemas.Id(1732656),
    "Intel Core i9-13980HX": schemas.Id(1736156),
    "Intel Core i9-14900HX": schemas.Id(1876738),
    "Intel Core i9-9880H": schemas.Id(935366),
    "Intel N150": schemas.Id(2094975),
    "Intel Pentium Gold 4425Y": schemas.Id(1159210),
    "Intel Pentium Gold 7505": schemas.Id(1398792),
    "Intel Xeon W-11955M": schemas.Id(1560600),
    "Mediatek-Kompanio 520": schemas.Id(2011342),
    "Qualcomm Snapdragon X Elite X1E-78-100": schemas.Id(1935025),
    "Qualcomm Snapdragon X Plus X1P-42-100": schemas.Id(1965060),
    "Qualcomm Snapdragon X X1-26-100": schemas.Id(2020230),
}


# RAM Quantity ID mapping (sorted numerically by keys)
RAM_QUANTITY_ID_MAP: dict[schemas.RAMQuantity, schemas.Id] = {
    "4 GB": schemas.Id(103190),
    "6 GB": schemas.Id(103193),
    "8 GB": schemas.Id(103196),
    "12 GB": schemas.Id(103199),
    "16 GB": schemas.Id(103202),
    "18 GB": schemas.Id(1836325),
    "24 GB": schemas.Id(103205),
    "32 GB": schemas.Id(103208),
    "36 GB": schemas.Id(1836255),
    "40 GB": schemas.Id(1662457),
    "48 GB": schemas.Id(1186670),
    "64 GB": schemas.Id(526588),
}


# RAM Type ID mapping (alphabetically sorted by keys)
RAM_TYPE_ID_MAP: dict[schemas.RAMType, schemas.Id] = {
    "DDR3": schemas.Id(103217),
    "DDR3L": schemas.Id(103220),
    "DDR4": schemas.Id(103223),
    "DDR4L": schemas.Id(763303),
    "DDR5": schemas.Id(1563029),
    "LPDDR3": schemas.Id(1215599),
    "LPDDR4": schemas.Id(1233530),
    "LPDDR4X": schemas.Id(1213113),
    "LPDDR5": schemas.Id(1558884),
    "LPDDR5X": schemas.Id(1766349),
    "UMA": schemas.Id(1294989),
}


# Screen Size ID mapping (sorted numerically by keys)
SCREEN_SIZE_ID_MAP: dict[schemas.ScreenSize, schemas.Id] = {
    "7\"": schemas.Id(103117),
    "8\"": schemas.Id(103120),
    "10\"": schemas.Id(103123),
    "11\"": schemas.Id(103126),
    "12\"": schemas.Id(103129),
    "13\"": schemas.Id(103132),
    "14\"": schemas.Id(103135),
    "15\"": schemas.Id(103138),
    "16\"": schemas.Id(103141),
    "17\"": schemas.Id(103144),
    "18\"": schemas.Id(103147),
    "20\"": schemas.Id(103120),
}


# Screen Type ID mapping (alphabetically sorted by keys)
SCREEN_TYPE_ID_MAP: dict[schemas.ScreenType, schemas.Id] = {
    "AMOLED": schemas.Id(1726439),
    "LED": schemas.Id(1726210),
    "OLED": schemas.Id(1726212),
}

# Screen Resolution ID mapping (sorted numerically by total pixels)
SCREEN_RESOLUTION_ID_MAP: dict[schemas.ScreenResolution, schemas.Id] = {
    "1366x768": schemas.Id(103050),
    "1440x900": schemas.Id(103054),
    "1600x900": schemas.Id(103062),
    "1920x1080": schemas.Id(103078),
    "1980x1080": schemas.Id(1760483),
    "1920x1200": schemas.Id(103082),
    "1920x1280": schemas.Id(1225940),
    "2048x1280": schemas.Id(1876810),
    "2160x1440": schemas.Id(536393),
    "2240x1400": schemas.Id(1389337),
    "2256x1504": schemas.Id(867034),
    "2560x1440": schemas.Id(103090),
    "2560x1600": schemas.Id(103094),
    "2560x1664": schemas.Id(1630101),
    "2880x1620": schemas.Id(103098),
    "2880x1800": schemas.Id(103102),
    "2880x1864": schemas.Id(1793127),
    "2880x1920": schemas.Id(570076),
    "2944x1840": schemas.Id(1935006),
    "3000x2000": schemas.Id(524146),
    "3024x1964": schemas.Id(1516478),
    "3072x1920": schemas.Id(1072760),
    "3200x2000": schemas.Id(1764104),
    "3456x2234": schemas.Id(1516564),
    "3840x2160": schemas.Id(103110),
    "3840x2400": schemas.Id(1078104),
}


# Screen Refresh Rate ID mapping (sorted numerically by keys)
SCREEN_REFRESH_RATE_ID_MAP: dict[schemas.ScreenRefreshRate, schemas.Id] = {
    "60 Hz": schemas.Id(1173497),
    "90 Hz": schemas.Id(1392259),
    "120 Hz": schemas.Id(1173499),
    "144 Hz": schemas.Id(1173501),
    "165 Hz": schemas.Id(1383826),
    "240 Hz": schemas.Id(1174227),
    "300 Hz": schemas.Id(1189161),
    "360 Hz": schemas.Id(1422310),
}


# Video Card Type ID mapping (alphabetically sorted by keys)
VIDEO_CARD_TYPE_ID_MAP: dict[schemas.VideoCardType, schemas.Id] = {
    "Dedicada": schemas.Id(102978),
    "Integrada": schemas.Id(102975),
}

# Video Card Brand ID mapping (alphabetically sorted by keys)
VIDEO_CARD_BRAND_ID_MAP: dict[schemas.VideoCardBrand, schemas.Id] = {
    "AMD": schemas.Id(102981),
    "ARM": schemas.Id(102983),
    "Apple": schemas.Id(1294933),
    "Intel": schemas.Id(102985),
    "NVIDIA": schemas.Id(102987),
    "Qualcomm": schemas.Id(1727001),
}


# Video Card Line ID mapping (alphabetically sorted by keys)
VIDEO_CARD_LINE_ID_MAP: dict[schemas.VideoCardLine, schemas.Id] = {
    "AMD Radeon": schemas.Id(103888),
    "ARM Mali": schemas.Id(103891),
    "Apple M-Series": schemas.Id(1294934),
    "Intel Arc": schemas.Id(1597454),
    "Intel HD Graphics": schemas.Id(492623),
    "Intel Iris": schemas.Id(103897),
    "Intel UHD Graphics": schemas.Id(735969),
    "NVIDIA GeForce": schemas.Id(103900),
    "NVIDIA Quadro": schemas.Id(103906),
    "NVIDIA RTX": schemas.Id(1498566),
    "Qualcomm Snapdragon": schemas.Id(1727002),
}


# Video Card ID mapping (alphabetically sorted by keys)
VIDEO_CARD_ID_MAP: dict[schemas.VideoCard, schemas.Id] = {
    "AMD Radeon 530 (2 GB)": schemas.Id(646126),
    "AMD Radeon 610M (Integrada)": schemas.Id(1709941),
    "AMD Radeon 660M (Integrada)": schemas.Id(1630891),
    "AMD Radeon 680M (Integrada)": schemas.Id(1597946),
    "AMD Radeon 740M (Integrada)": schemas.Id(1876714),
    "AMD Radeon 760M (Integrada)": schemas.Id(1813236),
    "AMD Radeon 780M (Integrada)": schemas.Id(1764183),
    "AMD Radeon 840M (Integrada)": schemas.Id(2067607),
    "AMD Radeon 860M (Integrada)": schemas.Id(2059826),
    "AMD Radeon 880M (Integrada)": schemas.Id(1975861),
    "AMD Radeon 890M (Integrada)": schemas.Id(1944257),
    "AMD Radeon Pro 450 (2 GB)": schemas.Id(558135),
    "AMD Radeon Pro 5300M (4 GB)": schemas.Id(1072824),
    "AMD Radeon Pro 5500M (4 GB)": schemas.Id(1072755),
    "AMD Radeon Pro 555X (4 GB)": schemas.Id(808176),
    "AMD Radeon R4 Graphics (Stoney Ridge) (Integrada)": schemas.Id(646148),
    "AMD Radeon R5 Graphics (Stoney Ridge) (Integrada)": schemas.Id(568486),
    "AMD Radeon R7 (Carrizo) (Integrada)": schemas.Id(579655),
    "AMD Radeon RX 5500M (4 GB)": schemas.Id(1072723),
    "AMD Radeon RX 560X (4 GB)": schemas.Id(833129),
    "AMD Radeon RX 6500M (4 GB)": schemas.Id(1638790),
    "AMD Radeon RX 6600M (8 GB)": schemas.Id(1553413),
    "AMD Radeon RX 6700S (8 GB)": schemas.Id(1648643),
    "AMD Radeon RX Vega 10 (Integrada)": schemas.Id(863493),
    "AMD Radeon RX Vega 3 (Integrada)": schemas.Id(770720),
    "AMD Radeon RX Vega 5 (Integrada)": schemas.Id(1276061),
    "AMD Radeon RX Vega 6 (Integrada)": schemas.Id(764087),
    "AMD Radeon RX Vega 6 (Ryzen 2000/3000) (Integrada)": schemas.Id(1492565),
    "AMD Radeon RX Vega 6 (Ryzen 4000) (Integrada)": schemas.Id(1229921),
    "AMD Radeon RX Vega 6 (Ryzen 4000/5000) (Integrada)": schemas.Id(1627568),
    "AMD Radeon RX Vega 7 (Integrada)": schemas.Id(1186899),
    "AMD Radeon RX Vega 8 (Integrada)": schemas.Id(735172),
    "ARM Mali G52 MC2 2EE (Integrada)": schemas.Id(2011335),
    "Apple M-Series M1 (Integrada)": schemas.Id(1294936),
    "Apple M-Series M1 Pro (Integrada)": schemas.Id(1516431),
    "Apple M-Series M2 10-Core GPU (Integrada)": schemas.Id(1621657),
    "Apple M-Series M2 8-Core GPU (Integrada)": schemas.Id(1630091),
    "Apple M-Series M2 Pro 16-Core GPU (Integrada)": schemas.Id(1723367),
    "Apple M-Series M3 10-Core GPU (Integrada)": schemas.Id(1890904),
    "Apple M-Series M3 8-Core GPU (Integrada)": schemas.Id(1836472),
    "Apple M-Series M3 Max 30-Core GPU (Integrada)": schemas.Id(1836270),
    "Apple M-Series M3 Pro 14-Core GPU (Integrada)": schemas.Id(1836408),
    "Apple M-Series M3 Pro 18-Core GPU (Integrada)": schemas.Id(1836304),
    "Apple M-Series M4 10-Core GPU (Integrada)": schemas.Id(1974731),
    "Apple M-Series M4 16-Core GPU (Integrada)": schemas.Id(2022949),
    "Apple M-Series M4 20-Core GPU (Integrada)": schemas.Id(2022966),
    "Apple M-Series M4 32-Core GPU (Integrada)": schemas.Id(2022976),
    "Apple M-Series M4 8-Core GPU (Integrada)": schemas.Id(2055846),
    "Intel Arc 4-Cores iGPU (Integrada)": schemas.Id(1897303),
    "Intel Arc 7-Cores iGPU (Integrada)": schemas.Id(1876858),
    "Intel Arc 8-Core iGPU (Integrada)": schemas.Id(1892486),
    "Intel Arc 8-Cores iGPU (Integrada)": schemas.Id(1876800),
    "Intel Arc A350M (4 GB)": schemas.Id(1597456),
    "Intel Arc Graphics 130V (Integrada)": schemas.Id(2015118),
    "Intel Arc Graphics 140T (Integrada)": schemas.Id(2067676),
    "Intel Arc Graphics 140V (Integrada)": schemas.Id(1967998),
    "Intel Arc LPG 96EU (Integrada)": schemas.Id(1948846),
    "Intel Arc Pro A30M (4 GB)": schemas.Id(1870277),
    "Intel Arc Xe-LPG Graphics 64EU (Integrada)": schemas.Id(2047945),
    "Intel HD Graphics 520 (Integrada)": schemas.Id(108391),
    "Intel HD Graphics 5500 (Integrada)": schemas.Id(108611),
    "Intel HD Graphics 6000 (Integrada)": schemas.Id(108471),
    "Intel HD Graphics 620 (Integrada)": schemas.Id(545590),
    "Intel Iris Graphics 540 (Integrada)": schemas.Id(498112),
    "Intel Iris Plus Graphics 655 (128 MB)": schemas.Id(808794),
    "Intel Iris Plus Graphics G4 (Integrada)": schemas.Id(1023183),
    "Intel Iris Plus Graphics G7 (Integrada)": schemas.Id(1019497),
    "Intel Iris Xe Graphics G7 80EUs (Integrada)": schemas.Id(1341671),
    "Intel Iris Xe Graphics G7 96EUs (Integrada)": schemas.Id(1259053),
    "Intel UHD Graphics 24EUs (Alder Lake-N) (Integrada)": schemas.Id(1917878),
    "Intel UHD Graphics 600 (Integrada)": schemas.Id(762702),
    "Intel UHD Graphics 615 (Integrada)": schemas.Id(933331),
    "Intel UHD Graphics 617 (Integrada)": schemas.Id(846092),
    "Intel UHD Graphics 620 (Integrada)": schemas.Id(763196),
    "Intel UHD Graphics 630 (Integrada)": schemas.Id(735971),
    "Intel UHD Graphics 64EUs (Alder Lake 12th Gen) (Integrada)": schemas.Id(1612300),
    "Intel UHD Graphics 770 (Alder Lake) (Integrada)": schemas.Id(1627094),
    "Intel UHD Graphics 770 (Integrada)": schemas.Id(1790340),
    "Intel UHD Graphics G1 (Integrada)": schemas.Id(1019526),
    "Intel UHD Graphics G4 48EUs (Integrada)": schemas.Id(1294445),
    "Intel UHD Graphics Jasper Lake 16 EU (Integrada)": schemas.Id(1420075),
    "Intel UHD Graphics Xe 32EUs (Integrada)": schemas.Id(1464921),
    "Intel UHD Graphics Xe 750 32EUs (Integrada)": schemas.Id(1411017),
    "Intel UHD Graphics Xe G4 48EUs (Integrada)": schemas.Id(1588562),
    "NVIDIA GeForce 940MX (4 GB)": schemas.Id(546774),
    "NVIDIA GeForce GTX 1050 (2 GB)": schemas.Id(577664),
    "NVIDIA GeForce GTX 1050 (3 GB)": schemas.Id(970142),
    "NVIDIA GeForce GTX 1650 (4 GB)": schemas.Id(962521),
    "NVIDIA GeForce GTX 1650 Max-Q (4 GB)": schemas.Id(928362),
    "NVIDIA GeForce GTX 1650 Ti (4 GB)": schemas.Id(1189334),
    "NVIDIA GeForce GTX 1660 Ti (6 GB)": schemas.Id(937226),
    "NVIDIA GeForce GTX 1660 Ti Max-Q (6 GB)": schemas.Id(998139),
    "NVIDIA GeForce MX110 (2 GB)": schemas.Id(762681),
    "NVIDIA GeForce MX130 (2 GB)": schemas.Id(721136),
    "NVIDIA GeForce MX250 (2 GB)": schemas.Id(900861),
    "NVIDIA GeForce MX330 (2 GB)": schemas.Id(1189045),
    "NVIDIA GeForce MX350 (2 GB)": schemas.Id(1212934),
    "NVIDIA GeForce MX450 (2 GB)": schemas.Id(1301584),
    "NVIDIA GeForce MX550 (2 GB)": schemas.Id(1677512),
    "NVIDIA GeForce MX570 (2 GB)": schemas.Id(1843979),
    "NVIDIA GeForce RTX 2050 (4 GB)": schemas.Id(1768479),
    "NVIDIA GeForce RTX 2060 (6 GB)": schemas.Id(878111),
    "NVIDIA GeForce RTX 2060 Max-Q (6 GB)": schemas.Id(993114),
    "NVIDIA GeForce RTX 2070 (8 GB)": schemas.Id(878090),
    "NVIDIA GeForce RTX 2070 Super Max-Q (8 GB)": schemas.Id(1200041),
    "NVIDIA GeForce RTX 3050 (4 GB)": schemas.Id(1410962),
    "NVIDIA GeForce RTX 3050 (6 GB)": schemas.Id(1746458),
    "NVIDIA GeForce RTX 3050 Ti (4 GB)": schemas.Id(1412964),
    "NVIDIA GeForce RTX 3060 (6 GB)": schemas.Id(1342997),
    "NVIDIA GeForce RTX 3060 Max-Q (6 GB)": schemas.Id(1488190),
    "NVIDIA GeForce RTX 3070 (8 GB)": schemas.Id(1326123),
    "NVIDIA GeForce RTX 3070 Ti (8 GB)": schemas.Id(1588522),
    "NVIDIA GeForce RTX 3080 (8 GB)": schemas.Id(1326072),
    "NVIDIA GeForce RTX 3080 Ti (16 GB)": schemas.Id(1612143),
    "NVIDIA GeForce RTX 4050 (6 GB)": schemas.Id(1732917),
    "NVIDIA GeForce RTX 4050 (8 GB)": schemas.Id(2100608),
    "NVIDIA GeForce RTX 4060 (8 GB)": schemas.Id(1740392),
    "NVIDIA GeForce RTX 4070 (8 GB)": schemas.Id(1730838),
    "NVIDIA GeForce RTX 4080 (12 GB)": schemas.Id(1725748),
    "NVIDIA GeForce RTX 4090 (16 GB)": schemas.Id(1732842),
    "NVIDIA GeForce RTX 5060 (8 GB)": schemas.Id(2092602),
    "NVIDIA GeForce RTX 5070 (8 GB)": schemas.Id(2078325),
    "NVIDIA GeForce RTX 5070 Ti (12 GB)": schemas.Id(2074469),
    "NVIDIA GeForce RTX 5080 (16 GB)": schemas.Id(2047955),
    "NVIDIA GeForce RTX 5090 (24 GB)": schemas.Id(2067347),
    "NVIDIA Quadro P1000 (4 GB)": schemas.Id(847739),
    "NVIDIA Quadro P520 (2 GB)": schemas.Id(1008972),
    "NVIDIA Quadro P520 (4 GB)": schemas.Id(1257200),
    "NVIDIA Quadro P620 (4 GB)": schemas.Id(1019601),
    "NVIDIA Quadro RTX 4000 (12 GB)": schemas.Id(1782993),
    "NVIDIA Quadro T1000 (4 GB)": schemas.Id(997872),
    "NVIDIA Quadro T2000 (4 GB)": schemas.Id(946499),
    "NVIDIA Quadro T500 (4 GB)": schemas.Id(1367237),
    "NVIDIA Quadro T550 (4 GB)": schemas.Id(1683088),
    "NVIDIA Quadro T600 (4 GB)": schemas.Id(1524880),
    "NVIDIA RTX 1000 Ada (6 GB)": schemas.Id(1936045),
    "NVIDIA RTX 2000 Ada (8 GB)": schemas.Id(1790348),
    "NVIDIA RTX 3000 Ada (8 GB)": schemas.Id(1936027),
    "NVIDIA RTX 4000 Ada (12 GB)": schemas.Id(1814423),
    "NVIDIA RTX 500 Ada (4 GB)": schemas.Id(1934562),
    "NVIDIA RTX 5000 Ada (16 GB)": schemas.Id(1814640),
    "NVIDIA RTX A1000 (4 GB)": schemas.Id(1681296),
    "NVIDIA RTX A1000 (6 GB)": schemas.Id(1786859),
    "NVIDIA RTX A2000 (8 GB)": schemas.Id(1648447),
    "NVIDIA RTX A3000 (6 GB)": schemas.Id(1560541),
    "NVIDIA RTX A500 (4 GB)": schemas.Id(1779320),
    "Qualcomm Snapdragon X Adreno X1-45 (Integrada)": schemas.Id(2020227),
    "Qualcomm Snapdragon X Adreno X1-85 (Integrada)": schemas.Id(1935022),
}


# Storage Capacity ID mapping (sorted numerically by keys)
STORAGE_CAPACITY_ID_MAP: dict[schemas.StorageCapacity, schemas.Id] = {
    "32 GB": schemas.Id(103501),
    "64 GB": schemas.Id(103513),
    "128 GB": schemas.Id(103528),
    "240 GB": schemas.Id(103540),
    "250 GB": schemas.Id(103543),
    "256 GB": schemas.Id(1119652),
    "480 GB": schemas.Id(722730),
    "500 GB": schemas.Id(103561),
    "512 GB": schemas.Id(103564),
    "960 GB": schemas.Id(1687975),
    "1 TB": schemas.Id(103573),
    "2 TB": schemas.Id(103579),
    "4 TB": schemas.Id(1749454),
}

# Storage Drive Type ID mapping (alphabetically sorted by keys)
STORAGE_DRIVE_TYPE_ID_MAP: dict[schemas.StorageDriveType, schemas.Id] = {
    "HDD": schemas.Id(103456),
    "SSD": schemas.Id(103459),
    "Super RAID": schemas.Id(103468),
    "eMMC": schemas.Id(496889),
}


# Storage Drive RPM ID mapping (sorted numerically by keys)
STORAGE_DRIVE_RPM_ID_MAP: dict[schemas.StorageDriveRPM, schemas.Id] = {
    "0 rpm (Flash)": schemas.Id(103471),
    "5400 rpm": schemas.Id(103477),
    "7200 rpm": schemas.Id(103480),
}


# Operating System ID mapping (alphabetically sorted by keys)
OPERATING_SYSTEM_ID_MAP: dict[schemas.OperatingSystem, schemas.Id] = {
    "Apple macOS": schemas.Id(104014),
    "FreeDOS": schemas.Id(104002),
    "Google Chrome OS": schemas.Id(104008),
    "Linux": schemas.Id(104011),
    "Microsoft Windows 10": schemas.Id(104017),
    "Microsoft Windows 11": schemas.Id(1483706),
    "Microsoft Windows 7": schemas.Id(104020),
}


# Specific Operating System ID mapping (alphabetically sorted by keys)
SPECIFIC_OPERATING_SYSTEM_ID_MAP: dict[schemas.SpecificOperatingSystem, schemas.Id] = {
    "Apple macOS Big Sur": schemas.Id(1294986),
    "Apple macOS Catalina": schemas.Id(1072771),
    "Apple macOS High Sierra": schemas.Id(808374),
    "Apple macOS Mojave": schemas.Id(846103),
    "Apple macOS Monterey": schemas.Id(1516499),
    "Apple macOS Sequoia": schemas.Id(1974741),
    "Apple macOS Sierra": schemas.Id(558052),
    "Apple macOS Sonoma": schemas.Id(1836196),
    "Apple macOS Ventura": schemas.Id(1684115),
    "Apple macOS Yosemite": schemas.Id(114605),
    "FreeDOS": schemas.Id(114488),
    "Google Chrome OS": schemas.Id(114513),
    "Linux Ubuntu": schemas.Id(1089822),
    "Microsoft Windows 10 Home": schemas.Id(114622),
    "Microsoft Windows 10 Professional": schemas.Id(114639),
    "Microsoft Windows 11 Home": schemas.Id(1483708),
    "Microsoft Windows 11 Pro": schemas.Id(1509119),
    "Microsoft Windows 7 Professional + Upgrade Windows 10 Pro": schemas.Id(114700),
    "Microsoft Windows 7 Professional + Upgrade Windows 8.1 Pro": schemas.Id(114718),
}


# Keyboard Layout ID mapping (alphabetically sorted by keys)
KEYBOARD_LAYOUT_ID_MAP: dict[schemas.KeyboardLayout, schemas.Id] = {
    "Desconocido": schemas.Id(1652562),
    "Español": schemas.Id(1652564),
    "Inglés": schemas.Id(1652566),
}

# Dictionary mapping attributes to their corresponding ID mapping dictionaries
TABLE: dict[str, dict[tp.Any, schemas.Id]] = {
    # Brand and product line mappings
    "brands": BRAND_ID_MAP,
    "lines": BRAND_LINE_ID_MAP,
    
    # Processor mappings
    "processor_brands": PROCESSOR_BRAND_ID_MAP,
    "processor_lines": PROCESSOR_LINE_ID_MAP,
    "processor_thread_count_min": PROCESSOR_THREAD_COUNT_ID_MAP,
    "processors": PROCESSOR_MODEL_ID_MAP,
    
    # RAM mappings
    "ram_quantity_min": RAM_QUANTITY_ID_MAP,
    "ram_types": RAM_TYPE_ID_MAP,
    
    # Screen mappings
    "screen_size_min": SCREEN_SIZE_ID_MAP,
    "screen_size_max": SCREEN_SIZE_ID_MAP,
    "screen_types": SCREEN_TYPE_ID_MAP,
    "screen_resolution_min": SCREEN_RESOLUTION_ID_MAP,
    "screen_refresh_rate_min": SCREEN_REFRESH_RATE_ID_MAP,
    
    # Video card mappings
    "video_card_types": VIDEO_CARD_TYPE_ID_MAP,
    "video_card_brands": VIDEO_CARD_BRAND_ID_MAP,
    "video_card_lines": VIDEO_CARD_LINE_ID_MAP,
    "video_cards": VIDEO_CARD_ID_MAP,
    
    # Storage mappings
    "storage_capacity_min": STORAGE_CAPACITY_ID_MAP,
    "storage_drive_types": STORAGE_DRIVE_TYPE_ID_MAP,
    "storage_drive_rpm": STORAGE_DRIVE_RPM_ID_MAP,
    
    # Operating system mappings
    "operating_systems": OPERATING_SYSTEM_ID_MAP,
    "specific_operating_systems": SPECIFIC_OPERATING_SYSTEM_ID_MAP,
    "keyboard_layouts": KEYBOARD_LAYOUT_ID_MAP,
}