source: database/drizzle/util/seed.ts@ a508480

main
Last change on this file since a508480 was c586cbd, checked in by Tome <gjorgievtome@…>, 5 months ago

Update seed data

  • Property mode set to 100644
File size: 95.7 KB
Line 
1import pg from 'pg';
2
3const dataSQL = `
4TRUNCATE TABLE
5suggestions,
6cooler_cpu_sockets,
7case_mobo_form_factors,
8case_ps_form_factors,
9case_storage_form_factors,
10build_component,
11favorite_build,
12rating_build,
13review,
14build,
15admins,
16users,
17network_card,
18network_adapter,
19cables,
20sound_card,
21optical_drive,
22memory_card,
23storage,
24motherboard,
25cooler,
26pc_case,
27power_supply,
28memory,
29gpu,
30cpu,
31components
32RESTART IDENTITY CASCADE;
33
34INSERT INTO users (username, password, email) VALUES
35('tome', 'tg', 'tome.gjorgiev@gmail.com'),
36('mihail', 'mn', 'mihail.naumov@gmail.com'),
37('stefan', 'sv', 'stefan.velkovski@gmail.com'),
38('admin', 'admin', 'admin@gmail.com'),
39('pc_wizard', 'pw', 'wizard@gmail.com'),
40('budget_king', 'bk', 'budget@gmail.com'),
41('rgb_lover', 'rgb', 'rgblover@gmail.com'),
42('streamer_pro', 'sp', 'streamer@gmail.com'),
43('office_guy', 'og', 'office@gmail.com'),
44('linux_fan', 'lf', 'linux@gmail.com'),
45('first_timer', 'ft', 'noob@gmail.com');
46
47INSERT INTO admins (user_id) VALUES (4);
48
49INSERT INTO components (name, brand, price, type, img_url) VALUES
50('Air Cooler', 'Noctua', 69.99, 'cooler', 'https://cdn.brandfetch.io/idSeoCDyH9/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
51('B550 Motherboard', 'ASUS', 149.99, 'motherboard', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
52('1TB NVMe SSD', 'Samsung', 129.99, 'storage', 'https://cdn.brandfetch.io/iduaw_nOnR/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
53('Sound Card', 'Creative', 59.99, 'sound_card', 'https://cdn.brandfetch.io/idkZSfybrG/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
54('Network Card', 'Intel', 39.99, 'network_card', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
55('Network Adapter', 'TP-Link', 29.99, 'network_adapter', 'https://cdn.brandfetch.io/idfUqCiOVX/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
56('Optical Drive', 'LG', 19.99, 'optical_drive', 'https://cdn.brandfetch.io/idEI6u48uh/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
57('Storage Card', 'SanDisk', 15.99, 'memory_card', 'https://cdn.brandfetch.io/idM3tf3Iq8/w/800/h/800/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
58('Cables Pack', 'Corsair', 9.99, 'cables', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
59
60-- CPUS
61('Ryzen 5 5600X', 'AMD', 199.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-5-5600.png'),
62('Ryzen 5 7600', 'AMD', 229.00, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-5-7600.png'),
63('Ryzen 7 7800X3D', 'AMD', 399.00, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-7-7800x3d.png'),
64('Ryzen 9 7950X', 'AMD', 599.00, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-9-7950x.png'),
65('Core i3-13100F', 'Intel', 119.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i3-13100.png'),
66('Core i5-13600K', 'Intel', 319.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i5-13600k.png'),
67('Core i7-14700K', 'Intel', 409.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i7-14700k.png'),
68('Core i9-14900KS', 'Intel', 689.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i9-14900ks.png'),
69('Ryzen 5 3600', 'AMD', 149.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-5-3600.png'),
70('Ryzen 7 3700X', 'AMD', 189.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-7-3700x.png'),
71('Ryzen 5 5600', 'AMD', 179.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-5-5600.png'),
72('Ryzen 7 5700X', 'AMD', 219.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-7-5700x.png'),
73('Ryzen 9 5900X', 'AMD', 349.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-9-5900x.png'),
74('Core i5-12400F', 'Intel', 159.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i5-12400.png'),
75('Core i7-12700K', 'Intel', 299.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i7-12700k.png'),
76('Core i5-10400F', 'Intel', 129.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i5-10400.png'),
77('Core i7-11700K', 'Intel', 249.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i7-11700k.png'),
78('Core i9-12900K', 'Intel', 449.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i9-12900k.png'),
79('Ryzen 3 3200G', 'AMD', 99.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-3-3200g.png'),
80('Ryzen 5 3600X', 'AMD', 199.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-5-3600x.png'),
81('Ryzen 9 3900X', 'AMD', 399.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-9-3900x.png'),
82('Ryzen 5 5600G', 'AMD', 159.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-5-5600g.png'),
83('Ryzen 7 5800X', 'AMD', 299.99, 'cpu', 'https://static.hardwaredb.net/badges/ryzen-7-5800x.png'),
84('Core i3-10100F', 'Intel', 89.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i3-10100.png'),
85('Core i3-12100F', 'Intel', 109.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i3-12100.png'),
86('Core i5-11400F', 'Intel', 139.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i5-11400.png'),
87('Core i9-10900K', 'Intel', 399.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i9-10900k.png'),
88('Core i5-13400F', 'Intel', 199.99, 'cpu', 'https://static.hardwaredb.net/badges/core-i5-13400.png'),
89
90-- GPUS
91('RTX 3060', 'NVIDIA', 329.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-3060.png'),
92('Radeon RX 6600', 'PowerColor', 199.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-6600.png'),
93('Radeon RX 7600', 'Sapphire', 269.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-7600.png'),
94('Radeon RX 7800 XT', 'XFX', 499.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-7800-xt.png'),
95('Radeon RX 7900 XTX', 'Sapphire', 999.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-7900-xtx.png'),
96('GeForce RTX 3050', 'MSI', 229.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-3050.png'),
97('GeForce RTX 4060', 'Zotac', 299.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-4060.png'),
98('GeForce RTX 4070 Super', 'ASUS', 599.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-4070-super.png'),
99('GeForce RTX 4080 Super', 'Gigabyte', 999.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-4080-super.png'),
100('GeForce RTX 4090', 'NVIDIA', 1599.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-4090.png'),
101('GeForce RTX 3060 Ti', 'EVGA', 399.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-3060-ti.png'),
102('GeForce RTX 3070', 'MSI', 499.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-3070.png'),
103('GeForce RTX 3070 Ti', 'Gigabyte', 549.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-3070-ti.png'),
104('GeForce RTX 3080', 'ASUS', 699.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-3080.png'),
105('GeForce RTX 3090', 'NVIDIA', 1499.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-3090.png'),
106('GeForce RTX 4060 Ti', 'Zotac', 399.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-4060-ti.png'),
107('GeForce RTX 4070', 'MSI', 549.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-4070.png'),
108('GeForce RTX 4070 Ti', 'Gigabyte', 749.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-4070-ti.png'),
109('GeForce RTX 4080', 'ASUS', 1199.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-4080.png'),
110('GeForce RTX 2060', 'EVGA', 299.99, 'gpu', 'https://static.hardwaredb.net/badges/geforce-rtx-2060.png'),
111('Radeon RX 6700 XT', 'Sapphire', 379.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-6700-xt.png'),
112('Radeon RX 6800', 'PowerColor', 479.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-6800.png'),
113('Radeon RX 6800 XT', 'XFX', 579.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-6800-xt.png'),
114('Radeon RX 6900 XT', 'Sapphire', 699.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-6900-xt.png'),
115('Radeon RX 7700 XT', 'XFX', 449.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-7700-xt.png'),
116('Radeon RX 7900 XT', 'Sapphire', 849.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-7900-xt.png'),
117('Radeon RX 6650 XT', 'PowerColor', 279.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-6650-xt.png'),
118('Radeon RX 6750 XT', 'XFX', 329.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-6750-xt.png'),
119('Radeon RX 5700 XT', 'Sapphire', 349.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-5700-xt.png'),
120('Radeon RX 5600 XT', 'PowerColor', 259.99, 'gpu', 'https://static.hardwaredb.net/badges/radeon-rx-5600-xt.png'),
121('Arc A770', 'Intel', 349.99, 'gpu', 'https://static.hardwaredb.net/badges/arc-a770.png'),
122('Arc A750', 'Intel', 289.99, 'gpu', 'https://static.hardwaredb.net/badges/arc-a750.png'),
123('Arc A580', 'Intel', 179.99, 'gpu', 'https://static.hardwaredb.net/badges/arc-a580.png'),
124('Arc A380', 'Intel', 139.99, 'gpu', 'https://static.hardwaredb.net/badges/arc-a380.png'),
125('Arc A310', 'Intel', 99.99, 'gpu', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
126('Arc B580', 'Intel', 249.99, 'gpu', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
127('Arc B570', 'Intel', 219.99, 'gpu', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
128('Arc A350M', 'Intel', 199.99, 'gpu', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
129('Arc Pro A60', 'Intel', 449.99, 'gpu', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
130('Arc Pro A40', 'Intel', 299.99, 'gpu', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
131
132-- MOTHERBOARDS
133('B450 Tomahawk Max', 'MSI', 109.99, 'motherboard', 'https://images.seeklogo.com/logo-png/30/1/msi-logo-png_seeklogo-304877.png'),
134('B550-A Pro', 'MSI', 139.99, 'motherboard', 'https://images.seeklogo.com/logo-png/30/1/msi-logo-png_seeklogo-304877.png'),
135('X570 AORUS Elite', 'Gigabyte', 189.99, 'motherboard', 'https://images.seeklogo.com/logo-png/39/1/gigabyte-logo-png_seeklogo-398170.png'),
136('B550M TUF Gaming', 'ASUS', 119.99, 'motherboard', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
137('X570 Unify', 'MSI', 279.99, 'motherboard', 'https://images.seeklogo.com/logo-png/30/1/msi-logo-png_seeklogo-304877.png'),
138('B650 AORUS Elite AX', 'Gigabyte', 199.99, 'motherboard', 'https://images.seeklogo.com/logo-png/39/1/gigabyte-logo-png_seeklogo-398170.png'),
139('X670 Gaming Plus WiFi', 'MSI', 249.99, 'motherboard', 'https://images.seeklogo.com/logo-png/30/1/msi-logo-png_seeklogo-304877.png'),
140('B650E TUF Gaming', 'ASUS', 229.99, 'motherboard', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
141('X670E Taichi', 'ASRock', 399.99, 'motherboard', 'https://d1yjjnpx0p53s8.cloudfront.net/styles/logo-thumbnail/s3/0013/7800/brand.gif?itok=5s1HB6L_'),
142('B550 Phantom Gaming', 'ASRock', 129.99, 'motherboard', 'https://d1yjjnpx0p53s8.cloudfront.net/styles/logo-thumbnail/s3/0013/7800/brand.gif?itok=5s1HB6L_'),
143('B660M Pro RS', 'ASRock', 109.99, 'motherboard', 'https://d1yjjnpx0p53s8.cloudfront.net/styles/logo-thumbnail/s3/0013/7800/brand.gif?itok=5s1HB6L_'),
144('B660 Gaming X DDR4', 'Gigabyte', 139.99, 'motherboard', 'https://images.seeklogo.com/logo-png/39/1/gigabyte-logo-png_seeklogo-398170.png'),
145('H610M-E', 'ASUS', 89.99, 'motherboard', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
146('Z690 AORUS Pro', 'Gigabyte', 299.99, 'motherboard', 'https://images.seeklogo.com/logo-png/39/1/gigabyte-logo-png_seeklogo-398170.png'),
147('Z690 Edge WiFi DDR4', 'MSI', 259.99, 'motherboard', 'https://images.seeklogo.com/logo-png/30/1/msi-logo-png_seeklogo-304877.png'),
148('B760M DS3H DDR4', 'Gigabyte', 119.99, 'motherboard', 'https://images.seeklogo.com/logo-png/39/1/gigabyte-logo-png_seeklogo-398170.png'),
149('Z790 TUF Gaming', 'ASUS', 349.99, 'motherboard', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
150('B760 Tomahawk WiFi', 'MSI', 189.99, 'motherboard', 'https://images.seeklogo.com/logo-png/30/1/msi-logo-png_seeklogo-304877.png'),
151('Z790 AORUS Elite', 'Gigabyte', 269.99, 'motherboard', 'https://images.seeklogo.com/logo-png/39/1/gigabyte-logo-png_seeklogo-398170.png'),
152('H670 Steel Legend', 'ASRock', 159.99, 'motherboard', 'https://d1yjjnpx0p53s8.cloudfront.net/styles/logo-thumbnail/s3/0013/7800/brand.gif?itok=5s1HB6L_'),
153('B650M DS3H', 'Gigabyte', 149.99, 'motherboard', 'https://images.seeklogo.com/logo-png/39/1/gigabyte-logo-png_seeklogo-398170.png'),
154('X670E AORUS Master', 'Gigabyte', 459.99, 'motherboard', 'https://images.seeklogo.com/logo-png/39/1/gigabyte-logo-png_seeklogo-398170.png'),
155('B760M Bomber WiFi', 'MSI', 129.99, 'motherboard', 'https://images.seeklogo.com/logo-png/30/1/msi-logo-png_seeklogo-304877.png'),
156('Z790 Maximus Hero', 'ASUS', 599.99, 'motherboard', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
157
158-- RAM MODULES
159('16GB DDR4 Kit', 'Corsair', 79.99, 'memory', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
160('Vengeance LPX 8GB', 'Corsair', 24.99, 'memory', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
161('Ripjaws V 16GB', 'G.Skill', 34.99, 'memory', 'https://cdn.brandfetch.io/id8HgeVn1l/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
162('Fury Beast 16GB', 'Kingston', 39.99, 'memory', 'https://cdn.brandfetch.io/idQrDf3A8-/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
163('Elite 32GB Kit', 'TeamGroup', 59.99, 'memory', 'https://cdn.brandfetch.io/id8A5bRNKu/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
164('Vengeance RGB Pro 32GB', 'Corsair', 79.99, 'memory', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
165('Trident Z RGB 16GB', 'G.Skill', 49.99, 'memory', 'https://cdn.brandfetch.io/id8HgeVn1l/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
166('Aegis 16GB Kit', 'G.Skill', 29.99, 'memory', 'https://cdn.brandfetch.io/id8HgeVn1l/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
167('HyperX Fury 32GB', 'Kingston', 69.99, 'memory', 'https://cdn.brandfetch.io/idQrDf3A8-/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
168('Ballistix 16GB', 'Crucial', 39.99, 'memory', 'https://cdn.brandfetch.io/idcQwroMOv/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
169('Value RAM 8GB', 'Corsair', 19.99, 'memory', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
170('Trident Z5 16GB', 'G.Skill', 64.99, 'memory', 'https://cdn.brandfetch.io/id8HgeVn1l/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
171('Dominator Platinum 32GB', 'Corsair', 159.99, 'memory', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
172('Fury Beast DDR5 16GB', 'Kingston', 69.99, 'memory', 'https://cdn.brandfetch.io/idQrDf3A8-/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
173('Vengeance DDR5 32GB', 'Corsair', 119.99, 'memory', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
174('Trident Z5 RGB 64GB', 'G.Skill', 249.99, 'memory', 'https://cdn.brandfetch.io/id8HgeVn1l/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
175('Elite DDR5 32GB', 'TeamGroup', 109.99, 'memory', 'https://cdn.brandfetch.io/id8A5bRNKu/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
176('Fury Beast DDR5 32GB', 'Kingston', 129.99, 'memory', 'https://cdn.brandfetch.io/idQrDf3A8-/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
177('Vengeance RGB DDR5 64GB', 'Corsair', 249.99, 'memory', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
178('T-Force Delta RGB 32GB', 'TeamGroup', 99.99, 'memory', 'https://cdn.brandfetch.io/id8A5bRNKu/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
179('Flare X5 32GB', 'G.Skill', 134.99, 'memory', 'https://cdn.brandfetch.io/id8HgeVn1l/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
180('Vengeance LPX 16GB', 'Corsair', 39.99, 'memory', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
181('Ripjaws V 32GB', 'G.Skill', 69.99, 'memory', 'https://cdn.brandfetch.io/id8HgeVn1l/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
182('Trident Z5 RGB 32GB', 'G.Skill', 114.99, 'memory', 'https://cdn.brandfetch.io/id8HgeVn1l/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
183('Dominator Platinum 64GB', 'Corsair', 289.99, 'memory', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
184
185-- STORAGE DEVICES
186('Samsung 870 EVO 500GB', 'Samsung', 54.99, 'storage', 'https://cdn.brandfetch.io/iduaw_nOnR/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
187('Samsung 870 QVO 1TB', 'Samsung', 89.99, 'storage', 'https://cdn.brandfetch.io/iduaw_nOnR/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
188('WD Blue 1TB', 'Western Digital', 49.99, 'storage', 'https://cdn.brandfetch.io/id6bAnMJ1y/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
189('Crucial MX500 2TB', 'Crucial', 149.99, 'storage', 'https://cdn.brandfetch.io/idcQwroMOv/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
190('Kingston A400 480GB', 'Kingston', 34.99, 'storage', 'https://cdn.brandfetch.io/idQrDf3A8-/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
191('Samsung 980 Pro 1TB', 'Samsung', 119.99, 'storage', 'https://cdn.brandfetch.io/iduaw_nOnR/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
192('WD Black SN770 1TB', 'Western Digital', 89.99, 'storage', 'https://cdn.brandfetch.io/id6bAnMJ1y/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
193('Crucial P5 Plus 2TB', 'Crucial', 159.99, 'storage', 'https://cdn.brandfetch.io/idcQwroMOv/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
194('Samsung 980 500GB', 'Samsung', 49.99, 'storage', 'https://cdn.brandfetch.io/iduaw_nOnR/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
195('WD Blue SN580 1TB', 'Western Digital', 69.99, 'storage', 'https://cdn.brandfetch.io/id6bAnMJ1y/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
196('Kingston KC3000 1TB', 'Kingston', 99.99, 'storage', 'https://cdn.brandfetch.io/idQrDf3A8-/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
197('Seagate Barracuda 2TB', 'Seagate', 54.99, 'storage', 'https://cdn.brandfetch.io/id5NUik-_s/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
198('WD Blue 4TB HDD', 'Western Digital', 79.99, 'storage', 'https://cdn.brandfetch.io/id6bAnMJ1y/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
199('Seagate IronWolf 4TB', 'Seagate', 99.99, 'storage', 'https://cdn.brandfetch.io/id5NUik-_s/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
200('Toshiba X300 6TB', 'Toshiba', 139.99, 'storage', 'https://cdn.brandfetch.io/idC7lwdfzx/w/200/h/200/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
201('WD Black 6TB HDD', 'Western Digital', 179.99, 'storage', 'https://cdn.brandfetch.io/id6bAnMJ1y/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
202('Seagate Barracuda 8TB', 'Seagate', 149.99, 'storage', 'https://cdn.brandfetch.io/id5NUik-_s/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
203('Crucial BX500 1TB', 'Crucial', 59.99, 'storage', 'https://cdn.brandfetch.io/idcQwroMOv/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
204('Samsung 870 EVO 2TB', 'Samsung', 179.99, 'storage', 'https://cdn.brandfetch.io/iduaw_nOnR/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
205('Kingston NV2 2TB', 'Kingston', 109.99, 'storage', 'https://cdn.brandfetch.io/idQrDf3A8-/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
206('Crucial P3 1TB', 'Crucial', 64.99, 'storage', 'https://cdn.brandfetch.io/idcQwroMOv/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
207('WD Black SN850X 2TB', 'Western Digital', 159.99, 'storage', 'https://cdn.brandfetch.io/id6bAnMJ1y/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
208('Samsung 990 Pro 4TB', 'Samsung', 349.99, 'storage', 'https://cdn.brandfetch.io/iduaw_nOnR/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
209
210-- CASES
211('H5 Elite Hero', 'NZXT', 119.99, 'case', 'https://nzxt.com/cdn/shop/files/h5-elite-hero-black.png?v=1744789660&width=2000'),
212('H510 Elite', 'NZXT', 149.99, 'case', 'https://nzxt.com/cdn/shop/files/h5-elite-hero-white.png?crop=center&height=1200&v=1762528056&width=1200'),
213('H7 Flow', 'NZXT', 129.99, 'case', 'https://nzxt.com/cdn/shop/files/h7-flow-hero-white.png?v=1762528078&width=1000'),
214('5000D Airflow', 'Corsair', 164.99, 'case', 'https://assets.corsair.com/image/upload/c_pad,q_auto,h_1024,w_1024,f_auto/products/Cases/base-5000d-airflow/Gallery/5000D_AF_WHITE_001.webp'),
215('4000D RGB', 'Corsair', 134.99, 'case', 'https://assets.corsair.com/image/upload/c_pad,q_auto,h_1024,w_1024,f_auto/products/Cases/CC-9011240-WW/iCUE-4000D-RGB-AIRFLOW-Mid-Tower-Case_-Black---3x-AF120-RGB-ELITE-Fans---iCUE-Lighting-Node-PRO-Controller---High-airflow-Design-_CN_-0.webp'),
216('iCUE 5000X RGB', 'Corsair', 179.99, 'case', 'https://assets.corsair.com/image/upload/c_pad,q_auto,h_1024,w_1024,f_auto/products/Cases/base-5000x/Gallery/5000X_RGB_BLACK_27.webp?width=1080&quality=85&auto=webp&format=pjpg'),
217('O11 Dynamic XL', 'Lian Li', 199.99, 'case', 'https://ddstore.mk/media/catalog/product/cache/0ee050c3ffc3555709b9bb6062f4d7e9/1/0/1005459-product_11887_0.png'),
218('Lancool 216', 'Lian Li', 109.99, 'case', 'https://lian-li.com/wp-content/uploads/2022/11/1007_136-b.jpg'),
219('Meshify 2 Compact', 'Fractal Design', 119.99, 'case', 'https://www.fractal-design.com/app/uploads/2021/01/Standard-Studio_Meshify2Compact_Black_TGD_Standard_6.-Left-Front.jpg'),
220('Define 7', 'Fractal Design', 169.99, 'case', 'https://www.fractal-design.com/app/uploads/2020/10/Define_7_TGD_Black_Left_Front-810x810.jpg'),
221('Torrent Compact', 'Fractal Design', 179.99, 'case', 'https://www.fractal-design.com/app/uploads/2022/01/Torrent_Compact_Black_RGB_TGL_1-Left-Front.jpg'),
222('View 51 TG', 'Thermaltake', 139.99, 'case', 'https://www.thermaltake.com/media/catalog/product/cache/cc8b24283b13da6bc2ff91682c03b54b/v/i/view51tg_1.jpg'),
223('Core P3 TG', 'Thermaltake', 149.99, 'case', 'https://www.thermaltake.com/media/catalog/product/cache/6af153fd0a0c509bdfcdfb60a394dd9c/c/o/core_p3_new_5.jpg'),
224('H440', 'NZXT', 109.99, 'case', 'https://static.bhphoto.com/images/images500x500/1449769831_1204996.jpg'),
225('P500A', 'Phanteks', 149.99, 'case', 'https://files.pccasegear.com/images/1594876098-PH-EC500ATG_DBK01-thb3.jpg'),
226('Pure Base 500DX', 'Be Quiet', 109.99, 'case', 'https://www.techpowerup.com/review/be-quiet-pure-base-500dx-rgb-atx-chassis/images/small.png'),
227('H500', 'Cooler Master', 119.99, 'case', 'https://a.storyblok.com/f/281110/819c3bb0a3/mch500_g2.png/m/1440x0/smart'),
228('RL08', 'Silverstone', 89.99, 'case', 'https://www.silverstonetek.com/upload/detail/pro_20220426123228_1.jpg'),
229('Air 100 ARGB', 'Montech', 69.99, 'case', 'https://www.montechpc.com/images/375613?stamp=1734689091'),
230('CC560', 'Deepcool', 59.99, 'case', 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTL4Zf68opHbG86D31NTVI3Y4AQhXE1PBYPjw&s'),
231('DF700 Flux', 'Antec', 159.99, 'case', 'https://www.antec.com/product/case/images/gallery-df700-flux-01.jpg'),
232('H5 Flow', 'NZXT', 94.99, 'case', 'https://nzxt.com/cdn/shop/files/h5-flow-rgb-h5-flow-rgb-primary-lg.png?v=1744863470&width=2000'),
233('4000D Airflow', 'Corsair', 104.99, 'case', 'https://assets.corsair.com/image/upload/c_pad,q_auto,h_1024,w_1024,f_auto/products/Cases/base-4000d-airflow-config/Gallery/4000D_AF_BLACK_01.webp'),
234('O11 Dynamic Evo', 'Lian Li', 159.99, 'case', 'https://www.pbtech.co.nz/imgprod/C/H/CHALAN2074__1.jpg?h=2971221114'),
235('Versa H18', 'Thermaltake', 49.99, 'case', 'https://cdn.mwave.com.au/images/400/AC11503_2.jpg'),
236
237-- PSUs
238('650W PSU', 'EVGA', 89.99, 'power_supply', 'https://cdn.brandfetch.io/iddPf9bbl3/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
239('Smart 450W', 'Thermaltake', 34.99, 'power_supply', 'https://cdn.brandfetch.io/idkwuFYTlH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
240('CV550', 'Corsair', 49.99, 'power_supply', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
241('BR600W', 'EVGA', 59.99, 'power_supply', 'https://cdn.brandfetch.io/iddPf9bbl3/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
242('CX650M', 'Corsair', 79.99, 'power_supply', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
243('SuperNOVA 750 G6', 'EVGA', 109.99, 'power_supply', 'https://cdn.brandfetch.io/iddPf9bbl3/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
244('RM850x', 'Corsair', 134.99, 'power_supply', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
245('Toughpower GF1 850W', 'Thermaltake', 119.99, 'power_supply', 'https://cdn.brandfetch.io/idkwuFYTlH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
246('HX1000i', 'Corsair', 199.99, 'power_supply', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
247('SuperNOVA 1200 P2', 'EVGA', 229.99, 'power_supply', 'https://cdn.brandfetch.io/iddPf9bbl3/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
248('RM1000x Shift', 'Corsair', 219.99, 'power_supply', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
249('Smart 500W', 'Thermaltake', 39.99, 'power_supply', 'https://cdn.brandfetch.io/idkwuFYTlH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
250('RM750e', 'Corsair', 99.99, 'power_supply', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
251('SuperNOVA 1000 GT', 'EVGA', 169.99, 'power_supply', 'https://cdn.brandfetch.io/iddPf9bbl3/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
252
253-- COOLERS
254('Hyper 212 RGB Black', 'Cooler Master', 44.99, 'cooler', 'https://cdn.brandfetch.io/idestV9Dp7/theme/dark/logo.svg?c=1dxbfHSJFAPEGdCLU4o5B'),
255('NH-D15', 'Noctua', 109.99, 'cooler', 'https://cdn.brandfetch.io/idSeoCDyH9/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
256('Dark Rock Pro 4', 'Be Quiet', 89.99, 'cooler', 'https://cdn.brandfetch.io/idl3sdUGQK/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
257('NH-U12S', 'Noctua', 69.99, 'cooler', 'https://cdn.brandfetch.io/idSeoCDyH9/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
258('Vetroo V5', 'Vetroo', 29.99, 'cooler', 'https://cdn.brandfetch.io/idTMdoBX11/w/500/h/500/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
259('Assassin X 120 Refined', 'Thermalright', 19.99, 'cooler', 'https://cdn.brandfetch.io/id2Wov4r9a/w/339/h/339/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
260('Pure Rock 2', 'Be Quiet', 49.99, 'cooler', 'https://cdn.brandfetch.io/idl3sdUGQK/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
261('Fuma 3', 'Scythe', 64.99, 'cooler', 'https://cdn.brandfetch.io/ide9kDI3oQ/w/200/h/166/theme/light/logo.png?c=1dxbfHSJFAPEGdCLU4o5B'),
262('Kraken X63', 'NZXT', 149.99, 'cooler', 'https://cdn.brandfetch.io/id6LxRitGO/w/1080/h/1080/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
263('iCUE H100i Elite', 'Corsair', 149.99, 'cooler', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
264('iCUE H150i Elite LCD', 'Corsair', 289.99, 'cooler', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
265('Castle 280 RGB', 'Deepcool', 119.99, 'cooler', 'https://cdn.brandfetch.io/iddrVAMC1d/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
266('MasterLiquid ML240L', 'Cooler Master', 79.99, 'cooler', 'https://cdn.brandfetch.io/idestV9Dp7/theme/dark/logo.svg?c=1dxbfHSJFAPEGdCLU4o5B'),
267('Liquid Freezer II 360', 'Arctic', 119.99, 'cooler', 'https://cdn.brandfetch.io/idPggLGOPA/w/2007/h/2195/theme/dark/logo.png?c=1dxbfHSJFAPEGdCLU4o5B'),
268('EK-AIO 240 D-RGB', 'EK Water Blocks', 109.99, 'cooler', 'https://cdn.brandfetch.io/idEOY10s6I/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
269('Peerless Assassin 120 SE', 'Thermalright', 33.90, 'cooler', 'https://cdn.brandfetch.io/id2Wov4r9a/w/339/h/339/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
270('Kraken Elite 360', 'NZXT', 279.99, 'cooler', 'https://cdn.brandfetch.io/id6LxRitGO/w/1080/h/1080/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
271
272-- SOUND CARDS
273('Sound BlasterX AE-5 Plus', 'Creative', 149.99, 'sound_card', 'https://cdn.brandfetch.io/idkZSfybrG/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
274('Xonar SE', 'ASUS', 44.99, 'sound_card', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
275('Sound Blaster Z', 'Creative', 89.99, 'sound_card', 'https://cdn.brandfetch.io/idkZSfybrG/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
276('Audigy FX', 'Creative', 39.99, 'sound_card', 'https://cdn.brandfetch.io/idkZSfybrG/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
277('Xonar U7', 'ASUS', 79.99, 'sound_card', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
278
279-- NETWORK CARDS
280('PRO/1000 PT', 'Intel', 49.99, 'network_card', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
281('TG-3468', 'TP-Link', 24.99, 'network_card', 'https://cdn.brandfetch.io/idfUqCiOVX/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
282('PCE-AC68', 'ASUS', 69.99, 'network_card', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
283('XG-C100C', 'ASUS', 99.99, 'network_card', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
284('Killer E3100G', 'Intel', 54.99, 'network_card', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
285
286-- NETWORK ADAPTERS
287('Archer TX3000E', 'TP-Link', 49.99, 'network_adapter', 'https://cdn.brandfetch.io/idfUqCiOVX/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
288('AX200', 'Intel', 34.99, 'network_adapter', 'https://cdn.brandfetch.io/idTGhLyv09/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
289('PCE-AXE5400', 'ASUS', 89.99, 'network_adapter', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
290('Archer T6E', 'TP-Link', 39.99, 'network_adapter', 'https://cdn.brandfetch.io/idfUqCiOVX/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
291('WN7200ND', 'Rosewill', 19.99, 'network_adapter', 'https://cdn.brandfetch.io/idyFoDrbp8/w/1298/h/471/theme/dark/logo.png?c=1dxbfHSJFAPEGdCLU4o5B'),
292
293-- MEMORY CARDS
294('M.2 NVMe Adapter Card', 'ASUS', 24.99, 'memory_card', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
295('Dual M.2 PCIe Card', 'Silverstone', 29.99, 'memory_card', 'https://cdn.brandfetch.io/idV16xgPJT/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
296('Quad M.2 RAID Card', 'ASUS', 89.99, 'memory_card', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
297('U.2 NVMe Adapter', 'StarTech', 49.99, 'memory_card', 'https://cdn.brandfetch.io/idXnrkx-Wc/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
298('Triple M.2 Expansion', 'Gigabyte', 44.99, 'memory_card', 'https://images.seeklogo.com/logo-png/39/1/gigabyte-logo-png_seeklogo-398170.png'),
299
300-- OPTICAL DRIVE
301('DVD-RW Drive', 'ASUS', 21.99, 'optical_drive', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
302('Slim DVD Writer', 'LG', 24.99, 'optical_drive', 'https://cdn.brandfetch.io/idEI6u48uh/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
303('BDR-XD07B', 'Pioneer', 89.99, 'optical_drive', 'https://cdn.brandfetch.io/idWn73vTFp/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
304('BP60NB10', 'LG', 69.99, 'optical_drive', 'https://cdn.brandfetch.io/idEI6u48uh/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
305('Blu-ray Writer', 'ASUS', 79.99, 'optical_drive', 'https://cdn.brandfetch.io/idGnlhbTXH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
306
307-- CABLES
308('USB 3.0 Extension 6ft', 'Cable Matters', 8.99, 'cables', 'https://cdn.brandfetch.io/idvRXtmRRE/w/350/h/350/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
309('SATA III Cable 3-Pack', 'Monoprice', 6.99, 'cables', 'https://cdn.brandfetch.io/id7CYiuB0p/theme/dark/logo.svg?c=1dxbfHSJFAPEGdCLU4o5B'),
310('Premium Sleeved Cables', 'Corsair', 79.99, 'cables', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
311('DisplayPort 1.4 Cable', 'Cable Matters', 12.99, 'cables', 'https://cdn.brandfetch.io/idvRXtmRRE/w/350/h/350/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
312('USB-C to USB-A Cable', 'Anker', 9.99, 'cables', 'https://cdn.brandfetch.io/idZx11xCTE/theme/dark/logo.svg?c=1dxbfHSJFAPEGdCLU4o5B'),
313('HDMI 2.1 Cable 10ft', 'Cable Matters', 15.99, 'cables', 'https://cdn.brandfetch.io/idvRXtmRRE/w/350/h/350/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
314('PWM Fan Splitter Cable', 'Noctua', 7.99, 'cables', 'https://cdn.brandfetch.io/idSeoCDyH9/w/400/h/400/theme/dark/icon.png?c=1dxbfHSJFAPEGdCLU4o5B'),
315('RGB LED Strip Extension', 'Corsair', 14.99, 'cables', 'https://cwsmgmt.corsair.com/press/CORSAIRLogo2020_stack_W.png'),
316('PCIe 4.0 Riser Cable', 'Thermaltake', 49.99, 'cables', 'https://cdn.brandfetch.io/idkwuFYTlH/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B'),
317('Molex to SATA Power', 'StarTech', 5.99, 'cables', 'https://cdn.brandfetch.io/idXnrkx-Wc/w/400/h/400/theme/dark/icon.jpeg?c=1dxbfHSJFAPEGdCLU4o5B');
318
319INSERT INTO cpu (component_id, socket, cores, threads, base_clock, boost_clock, tdp) VALUES
320(1, 'AM4', 6, 12, 3.7, 4.6, 65),
321((SELECT id FROM components WHERE name='Ryzen 5 7600'), 'AM5', 6, 12, 3.8, 5.1, 65),
322((SELECT id FROM components WHERE name='Ryzen 7 7800X3D'), 'AM5', 8, 16, 4.2, 5.0, 120),
323((SELECT id FROM components WHERE name='Ryzen 9 7950X'), 'AM5', 16, 32, 4.5, 5.7, 170),
324((SELECT id FROM components WHERE name='Core i3-13100F'), 'LGA1700', 4, 8, 3.4, 4.5, 58),
325((SELECT id FROM components WHERE name='Core i5-13600K'), 'LGA1700', 14, 20, 3.5, 5.1, 125),
326((SELECT id FROM components WHERE name='Core i7-14700K'), 'LGA1700', 20, 28, 3.4, 5.6, 125),
327((SELECT id FROM components WHERE name='Core i9-14900KS'), 'LGA1700', 24, 32, 3.2, 6.2, 150),
328((SELECT id FROM components WHERE name='Ryzen 5 3600'), 'AM4', 6, 12, 3.6, 4.2, 65),
329((SELECT id FROM components WHERE name='Ryzen 7 3700X'), 'AM4', 8, 16, 3.6, 4.4, 65),
330((SELECT id FROM components WHERE name='Ryzen 5 5600'), 'AM4', 6, 12, 3.5, 4.4, 65),
331((SELECT id FROM components WHERE name='Ryzen 7 5700X'), 'AM4', 8, 16, 3.4, 4.6, 65),
332((SELECT id FROM components WHERE name='Ryzen 9 5900X'), 'AM4', 12, 24, 3.7, 4.8, 105),
333((SELECT id FROM components WHERE name='Core i5-12400F'), 'LGA1700', 6, 12, 2.5, 4.4, 65),
334((SELECT id FROM components WHERE name='Core i7-12700K'), 'LGA1700', 12, 20, 3.6, 5.0, 125),
335((SELECT id FROM components WHERE name='Core i5-10400F'), 'LGA1200', 6, 12, 2.9, 4.3, 65),
336((SELECT id FROM components WHERE name='Core i7-11700K'), 'LGA1200', 8, 16, 3.6, 5.0, 125),
337((SELECT id FROM components WHERE name='Core i9-12900K'), 'LGA1700', 16, 24, 3.2, 5.2, 125),
338((SELECT id FROM components WHERE name='Ryzen 3 3200G'), 'AM4', 4, 4, 3.6, 4.0, 65),
339((SELECT id FROM components WHERE name='Ryzen 5 3600X'), 'AM4', 6, 12, 3.8, 4.4, 95),
340((SELECT id FROM components WHERE name='Ryzen 9 3900X'), 'AM4', 12, 24, 3.8, 4.6, 105),
341((SELECT id FROM components WHERE name='Ryzen 5 5600G'), 'AM4', 6, 12, 3.9, 4.4, 65),
342((SELECT id FROM components WHERE name='Ryzen 7 5800X'), 'AM4', 8, 16, 3.8, 4.7, 105),
343((SELECT id FROM components WHERE name='Core i3-10100F'), 'LGA1200', 4, 8, 3.6, 4.3, 65),
344((SELECT id FROM components WHERE name='Core i3-12100F'), 'LGA1700', 4, 8, 3.3, 4.3, 58),
345((SELECT id FROM components WHERE name='Core i5-11400F'), 'LGA1200', 6, 12, 2.6, 4.4, 65),
346((SELECT id FROM components WHERE name='Core i9-10900K'), 'LGA1200', 10, 20, 3.7, 5.3, 125),
347((SELECT id FROM components WHERE name='Core i5-13400F'), 'LGA1700', 10, 16, 2.5, 4.6, 65);
348
349INSERT INTO gpu (component_id, vram, tdp, base_clock, boost_clock, chipset, length) VALUES
350(2, 12, 170, 1.32, 1.78, 'RTX 3060', 242),
351((SELECT id FROM components WHERE name='Radeon RX 6600'), 8, 132, 2.0, 2.4, 'RX 6600', 200),
352((SELECT id FROM components WHERE name='Radeon RX 7600'), 8, 165, 2.2, 2.6, 'RX 7600', 240),
353((SELECT id FROM components WHERE name='Radeon RX 7800 XT'), 16, 263, 2.1, 2.4, 'RX 7800 XT', 280),
354((SELECT id FROM components WHERE name='Radeon RX 7900 XTX'), 24, 355, 2.3, 2.5, 'RX 7900 XTX', 320),
355((SELECT id FROM components WHERE name='GeForce RTX 3050'), 8, 130, 1.5, 1.7, 'RTX 3050', 200),
356((SELECT id FROM components WHERE name='GeForce RTX 4060'), 8, 115, 1.8, 2.4, 'RTX 4060', 220),
357((SELECT id FROM components WHERE name='GeForce RTX 4070 Super'), 12, 220, 1.9, 2.5, 'RTX 4070 S', 260),
358((SELECT id FROM components WHERE name='GeForce RTX 4080 Super'), 16, 320, 2.2, 2.5, 'RTX 4080 S', 300),
359((SELECT id FROM components WHERE name='GeForce RTX 4090'), 24, 450, 2.2, 2.5, 'RTX 4090', 340),
360((SELECT id FROM components WHERE name='GeForce RTX 3060 Ti'), 8, 200, 1.41, 1.67, 'RTX 3060 Ti', 242),
361((SELECT id FROM components WHERE name='GeForce RTX 3070'), 8, 220, 1.5, 1.73, 'RTX 3070', 242),
362((SELECT id FROM components WHERE name='GeForce RTX 3070 Ti'), 8, 290, 1.58, 1.77, 'RTX 3070 Ti', 267),
363((SELECT id FROM components WHERE name='GeForce RTX 3080'), 10, 320, 1.44, 1.71, 'RTX 3080', 285),
364((SELECT id FROM components WHERE name='GeForce RTX 3090'), 24, 350, 1.4, 1.7, 'RTX 3090', 313),
365((SELECT id FROM components WHERE name='GeForce RTX 4060 Ti'), 8, 160, 2.3, 2.5, 'RTX 4060 Ti', 244),
366((SELECT id FROM components WHERE name='GeForce RTX 4070'), 12, 200, 1.9, 2.48, 'RTX 4070', 242),
367((SELECT id FROM components WHERE name='GeForce RTX 4070 Ti'), 12, 285, 2.3, 2.6, 'RTX 4070 Ti', 267),
368((SELECT id FROM components WHERE name='GeForce RTX 4080'), 16, 320, 2.2, 2.51, 'RTX 4080', 304),
369((SELECT id FROM components WHERE name='GeForce RTX 2060'), 6, 160, 1.37, 1.68, 'RTX 2060', 229),
370((SELECT id FROM components WHERE name='Radeon RX 6700 XT'), 12, 230, 2.3, 2.58, 'RX 6700 XT', 267),
371((SELECT id FROM components WHERE name='Radeon RX 6800'), 16, 250, 1.7, 2.1, 'RX 6800', 267),
372((SELECT id FROM components WHERE name='Radeon RX 6800 XT'), 16, 300, 1.82, 2.25, 'RX 6800 XT', 267),
373((SELECT id FROM components WHERE name='Radeon RX 6900 XT'), 16, 300, 1.83, 2.25, 'RX 6900 XT', 267),
374((SELECT id FROM components WHERE name='Radeon RX 7700 XT'), 12, 245, 2.2, 2.54, 'RX 7700 XT', 260),
375((SELECT id FROM components WHERE name='Radeon RX 7900 XT'), 20, 315, 2.0, 2.4, 'RX 7900 XT', 287),
376((SELECT id FROM components WHERE name='Radeon RX 6650 XT'), 8, 180, 2.06, 2.64, 'RX 6650 XT', 240),
377((SELECT id FROM components WHERE name='Radeon RX 6750 XT'), 12, 250, 2.15, 2.6, 'RX 6750 XT', 267),
378((SELECT id FROM components WHERE name='Radeon RX 5700 XT'), 8, 225, 1.61, 1.91, 'RX 5700 XT', 267),
379((SELECT id FROM components WHERE name='Radeon RX 5600 XT'), 6, 150, 1.38, 1.62, 'RX 5600 XT', 240),
380((SELECT id FROM components WHERE name='Arc A770'), 16, 225, 2.1, 2.4, 'Arc A770', 267),
381((SELECT id FROM components WHERE name='Arc A750'), 8, 225, 2.05, 2.4, 'Arc A750', 267),
382((SELECT id FROM components WHERE name='Arc A580'), 8, 185, 1.7, 2.0, 'Arc A580', 229),
383((SELECT id FROM components WHERE name='Arc A380'), 6, 75, 2.0, 2.45, 'Arc A380', 167),
384((SELECT id FROM components WHERE name='Arc A310'), 4, 75, 2.0, 2.0, 'Arc A310', 150),
385((SELECT id FROM components WHERE name='Arc B580'), 12, 190, 2.0, 2.67, 'Arc B580', 267),
386((SELECT id FROM components WHERE name='Arc B570'), 10, 150, 1.9, 2.5, 'Arc B570', 242),
387((SELECT id FROM components WHERE name='Arc A350M'), 4, 50, 1.15, 1.8, 'Arc A350M', 180),
388((SELECT id FROM components WHERE name='Arc Pro A60'), 12, 130, 2.0, 2.45, 'Arc Pro A60', 229),
389((SELECT id FROM components WHERE name='Arc Pro A40'), 6, 50, 1.65, 2.05, 'Arc Pro A40', 167);
390
391INSERT INTO motherboard (component_id, socket, chipset, form_factor, ram_type, num_ram_slots, max_ram_capacity, pci_express_slots) VALUES
392(7, 'AM4', 'B550', 'ATX', 'DDR4', 4, 128, 3),
393((SELECT id FROM components WHERE name='B650M DS3H'), 'AM5', 'B650', 'Micro-ATX', 'DDR5', 4, 128, 2),
394((SELECT id FROM components WHERE name='X670E AORUS Master'), 'AM5', 'X670E', 'ATX', 'DDR5', 4, 192, 3),
395((SELECT id FROM components WHERE name='B760M Bomber WiFi'), 'LGA1700', 'B760', 'Micro-ATX', 'DDR4', 2, 64, 1),
396((SELECT id FROM components WHERE name='Z790 Maximus Hero'), 'LGA1700', 'Z790', 'ATX', 'DDR5', 4, 192, 3),
397((SELECT id FROM components WHERE name='B450 Tomahawk Max'), 'AM4', 'B450', 'ATX', 'DDR4', 4, 128, 2),
398((SELECT id FROM components WHERE name='B550-A Pro'), 'AM4', 'B550', 'ATX', 'DDR4', 4, 128, 2),
399((SELECT id FROM components WHERE name='X570 AORUS Elite'), 'AM4', 'X570', 'ATX', 'DDR4', 4, 128, 3),
400((SELECT id FROM components WHERE name='B550M TUF Gaming'), 'AM4', 'B550', 'Micro-ATX', 'DDR4', 4, 128, 2),
401((SELECT id FROM components WHERE name='X570 Unify'), 'AM4', 'X570', 'ATX', 'DDR4', 4, 128, 3),
402((SELECT id FROM components WHERE name='B650 AORUS Elite AX'), 'AM5', 'B650', 'ATX', 'DDR5', 4, 128, 3),
403((SELECT id FROM components WHERE name='X670 Gaming Plus WiFi'), 'AM5', 'X670', 'ATX', 'DDR5', 4, 192, 3),
404((SELECT id FROM components WHERE name='B650E TUF Gaming'), 'AM5', 'B650E', 'ATX', 'DDR5', 4, 128, 3),
405((SELECT id FROM components WHERE name='X670E Taichi'), 'AM5', 'X670E', 'ATX', 'DDR5', 4, 256, 4),
406((SELECT id FROM components WHERE name='B550 Phantom Gaming'), 'AM4', 'B550', 'ATX', 'DDR4', 4, 128, 2),
407((SELECT id FROM components WHERE name='B660M Pro RS'), 'LGA1700', 'B660', 'Micro-ATX', 'DDR4', 4, 128, 2),
408((SELECT id FROM components WHERE name='B660 Gaming X DDR4'), 'LGA1700', 'B660', 'ATX', 'DDR4', 4, 128, 2),
409((SELECT id FROM components WHERE name='H610M-E'), 'LGA1700', 'H610', 'Micro-ATX', 'DDR4', 2, 64, 1),
410((SELECT id FROM components WHERE name='Z690 AORUS Pro'), 'LGA1700', 'Z690', 'ATX', 'DDR5', 4, 128, 3),
411((SELECT id FROM components WHERE name='Z690 Edge WiFi DDR4'), 'LGA1700', 'Z690', 'ATX', 'DDR4', 4, 128, 3),
412((SELECT id FROM components WHERE name='B760M DS3H DDR4'), 'LGA1700', 'B760', 'Micro-ATX', 'DDR4', 4, 128, 2),
413((SELECT id FROM components WHERE name='Z790 TUF Gaming'), 'LGA1700', 'Z790', 'ATX', 'DDR5', 4, 192, 3),
414((SELECT id FROM components WHERE name='B760 Tomahawk WiFi'), 'LGA1700', 'B760', 'ATX', 'DDR4', 4, 128, 3),
415((SELECT id FROM components WHERE name='Z790 AORUS Elite'), 'LGA1700', 'Z790', 'ATX', 'DDR5', 4, 192, 3),
416((SELECT id FROM components WHERE name='H670 Steel Legend'), 'LGA1700', 'H670', 'ATX', 'DDR4', 4, 128, 2);
417
418INSERT INTO memory (component_id, type, speed, capacity, modules) VALUES
419(3, 'DDR4', 3200, 16, 2),
420((SELECT id FROM components WHERE name='Vengeance LPX 16GB'), 'DDR4', 3200, 16, 2),
421((SELECT id FROM components WHERE name='Ripjaws V 32GB'), 'DDR4', 3600, 32, 2),
422((SELECT id FROM components WHERE name='Trident Z5 RGB 32GB'), 'DDR5', 6000, 32, 2),
423((SELECT id FROM components WHERE name='Dominator Platinum 64GB'), 'DDR5', 6400, 64, 2),
424((SELECT id FROM components WHERE name='Vengeance LPX 8GB'), 'DDR4', 3200, 8, 1),
425((SELECT id FROM components WHERE name='Ripjaws V 16GB'), 'DDR4', 3600, 16, 2),
426((SELECT id FROM components WHERE name='Fury Beast 16GB'), 'DDR4', 3200, 16, 2),
427((SELECT id FROM components WHERE name='Elite 32GB Kit'), 'DDR4', 3200, 32, 2),
428((SELECT id FROM components WHERE name='Vengeance RGB Pro 32GB'), 'DDR4', 3600, 32, 2),
429((SELECT id FROM components WHERE name='Trident Z RGB 16GB'), 'DDR4', 3600, 16, 2),
430((SELECT id FROM components WHERE name='Aegis 16GB Kit'), 'DDR4', 3000, 16, 2),
431((SELECT id FROM components WHERE name='HyperX Fury 32GB'), 'DDR4', 3200, 32, 4),
432((SELECT id FROM components WHERE name='Ballistix 16GB'), 'DDR4', 3200, 16, 1),
433((SELECT id FROM components WHERE name='Value RAM 8GB'), 'DDR4', 2666, 8, 1),
434((SELECT id FROM components WHERE name='Trident Z5 16GB'), 'DDR5', 6000, 16, 2),
435((SELECT id FROM components WHERE name='Dominator Platinum 32GB'), 'DDR5', 6400, 32, 2),
436((SELECT id FROM components WHERE name='Fury Beast DDR5 16GB'), 'DDR5', 5600, 16, 1),
437((SELECT id FROM components WHERE name='Vengeance DDR5 32GB'), 'DDR5', 5600, 32, 2),
438((SELECT id FROM components WHERE name='Trident Z5 RGB 64GB'), 'DDR5', 6000, 64, 2),
439((SELECT id FROM components WHERE name='Elite DDR5 32GB'), 'DDR5', 5200, 32, 2),
440((SELECT id FROM components WHERE name='Fury Beast DDR5 32GB'), 'DDR5', 6000, 32, 2),
441((SELECT id FROM components WHERE name='Vengeance RGB DDR5 64GB'), 'DDR5', 6400, 64, 2),
442((SELECT id FROM components WHERE name='T-Force Delta RGB 32GB'), 'DDR5', 6000, 32, 2),
443((SELECT id FROM components WHERE name='Flare X5 32GB'), 'DDR5', 6000, 32, 2);
444
445INSERT INTO storage (component_id, type, capacity, form_factor) VALUES
446(8, 'NVMe', 1000, 'M.2'),
447((SELECT id FROM components WHERE name='Crucial P3 1TB'), 'NVMe', 1000, 'M.2'),
448((SELECT id FROM components WHERE name='WD Black SN850X 2TB'), 'NVMe', 2000, 'M.2'),
449((SELECT id FROM components WHERE name='Samsung 990 Pro 4TB'), 'NVMe', 4000, 'M.2'),
450((SELECT id FROM components WHERE name='Samsung 870 EVO 500GB'), 'SATA', 500, '2.5'),
451((SELECT id FROM components WHERE name='Samsung 870 QVO 1TB'), 'SATA', 1000, '2.5'),
452((SELECT id FROM components WHERE name='WD Blue 1TB'), 'SATA', 1000, '2.5'),
453((SELECT id FROM components WHERE name='Crucial MX500 2TB'), 'SATA', 2000, '2.5'),
454((SELECT id FROM components WHERE name='Kingston A400 480GB'), 'SATA', 480, '2.5'),
455((SELECT id FROM components WHERE name='Samsung 980 Pro 1TB'), 'NVMe', 1000, 'M.2'),
456((SELECT id FROM components WHERE name='WD Black SN770 1TB'), 'NVMe', 1000, 'M.2'),
457((SELECT id FROM components WHERE name='Crucial P5 Plus 2TB'), 'NVMe', 2000, 'M.2'),
458((SELECT id FROM components WHERE name='Samsung 980 500GB'), 'NVMe', 500, 'M.2'),
459((SELECT id FROM components WHERE name='WD Blue SN580 1TB'), 'NVMe', 1000, 'M.2'),
460((SELECT id FROM components WHERE name='Kingston KC3000 1TB'), 'NVMe', 1000, 'M.2'),
461((SELECT id FROM components WHERE name='Seagate Barracuda 2TB'), 'HDD', 2000, '3.5'),
462((SELECT id FROM components WHERE name='WD Blue 4TB HDD'), 'HDD', 4000, '3.5'),
463((SELECT id FROM components WHERE name='Seagate IronWolf 4TB'), 'HDD', 4000, '3.5'),
464((SELECT id FROM components WHERE name='Toshiba X300 6TB'), 'HDD', 6000, '3.5'),
465((SELECT id FROM components WHERE name='WD Black 6TB HDD'), 'HDD', 6000, '3.5'),
466((SELECT id FROM components WHERE name='Seagate Barracuda 8TB'), 'HDD', 8000, '3.5'),
467((SELECT id FROM components WHERE name='Crucial BX500 1TB'), 'SATA', 1000, '2.5'),
468((SELECT id FROM components WHERE name='Samsung 870 EVO 2TB'), 'SATA', 2000, '2.5'),
469((SELECT id FROM components WHERE name='Kingston NV2 2TB'), 'NVMe', 2000, 'M.2');
470
471INSERT INTO pc_case (component_id, cooler_max_height, gpu_max_length) VALUES
472(5, 165, 300),
473((SELECT id FROM components WHERE name='H5 Flow'), 165, 365),
474((SELECT id FROM components WHERE name='4000D Airflow'), 170, 360),
475((SELECT id FROM components WHERE name='O11 Dynamic Evo'), 167, 422),
476((SELECT id FROM components WHERE name='Versa H18'), 155, 350),
477((SELECT id FROM components WHERE name='H510 Elite'), 165, 381),
478((SELECT id FROM components WHERE name='H7 Flow'), 185, 400),
479((SELECT id FROM components WHERE name='5000D Airflow'), 170, 420),
480((SELECT id FROM components WHERE name='4000D RGB'), 170, 360),
481((SELECT id FROM components WHERE name='iCUE 5000X RGB'), 170, 420),
482((SELECT id FROM components WHERE name='O11 Dynamic XL'), 167, 420),
483((SELECT id FROM components WHERE name='Lancool 216'), 176, 384),
484((SELECT id FROM components WHERE name='Meshify 2 Compact'), 169, 360),
485((SELECT id FROM components WHERE name='Define 7'), 185, 491),
486((SELECT id FROM components WHERE name='Torrent Compact'), 188, 360),
487((SELECT id FROM components WHERE name='View 51 TG'), 180, 420),
488((SELECT id FROM components WHERE name='Core P3 TG'), 185, 420),
489((SELECT id FROM components WHERE name='H440'), 165, 400),
490((SELECT id FROM components WHERE name='P500A'), 160, 435),
491((SELECT id FROM components WHERE name='Pure Base 500DX'), 190, 369),
492((SELECT id FROM components WHERE name='H500'), 167, 410),
493((SELECT id FROM components WHERE name='RL08'), 158, 400),
494((SELECT id FROM components WHERE name='Air 100 ARGB'), 155, 330),
495((SELECT id FROM components WHERE name='CC560'), 165, 370),
496((SELECT id FROM components WHERE name='DF700 Flux'), 180, 405);
497
498INSERT INTO case_mobo_form_factors (case_id, form_factor) VALUES
499(5, 'ATX'), (5, 'Micro-ATX'),
500((SELECT id FROM components WHERE name = 'H5 Flow'), 'ATX'),
501((SELECT id FROM components WHERE name = 'H5 Flow'), 'Micro-ATX'),
502((SELECT id FROM components WHERE name = '4000D Airflow'), 'ATX'),
503((SELECT id FROM components WHERE name = '4000D Airflow'), 'Micro-ATX'),
504((SELECT id FROM components WHERE name = 'O11 Dynamic Evo'), 'ATX'),
505((SELECT id FROM components WHERE name = 'O11 Dynamic Evo'), 'Micro-ATX'),
506((SELECT id FROM components WHERE name = 'Versa H18'), 'Micro-ATX'),
507((SELECT id FROM components WHERE name = 'H510 Elite'), 'ATX'),
508((SELECT id FROM components WHERE name = 'H510 Elite'), 'Micro-ATX'),
509((SELECT id FROM components WHERE name = 'H7 Flow'), 'ATX'),
510((SELECT id FROM components WHERE name = 'H7 Flow'), 'Micro-ATX'),
511((SELECT id FROM components WHERE name = '5000D Airflow'), 'ATX'),
512((SELECT id FROM components WHERE name = '5000D Airflow'), 'Micro-ATX'),
513((SELECT id FROM components WHERE name = '4000D RGB'), 'ATX'),
514((SELECT id FROM components WHERE name = '4000D RGB'), 'Micro-ATX'),
515((SELECT id FROM components WHERE name = 'iCUE 5000X RGB'), 'ATX'),
516((SELECT id FROM components WHERE name = 'iCUE 5000X RGB'), 'Micro-ATX'),
517((SELECT id FROM components WHERE name = 'O11 Dynamic XL'), 'ATX'),
518((SELECT id FROM components WHERE name = 'O11 Dynamic XL'), 'Micro-ATX'),
519((SELECT id FROM components WHERE name = 'Lancool 216'), 'ATX'),
520((SELECT id FROM components WHERE name = 'Lancool 216'), 'Micro-ATX'),
521((SELECT id FROM components WHERE name = 'Meshify 2 Compact'), 'ATX'),
522((SELECT id FROM components WHERE name = 'Meshify 2 Compact'), 'Micro-ATX'),
523((SELECT id FROM components WHERE name = 'Define 7'), 'ATX'),
524((SELECT id FROM components WHERE name = 'Define 7'), 'Micro-ATX'),
525((SELECT id FROM components WHERE name = 'Torrent Compact'), 'ATX'),
526((SELECT id FROM components WHERE name = 'Torrent Compact'), 'Micro-ATX'),
527((SELECT id FROM components WHERE name = 'View 51 TG'), 'ATX'),
528((SELECT id FROM components WHERE name = 'View 51 TG'), 'Micro-ATX'),
529((SELECT id FROM components WHERE name = 'Core P3 TG'), 'ATX'),
530((SELECT id FROM components WHERE name = 'Core P3 TG'), 'Micro-ATX'),
531((SELECT id FROM components WHERE name = 'H440'), 'ATX'),
532((SELECT id FROM components WHERE name = 'H440'), 'Micro-ATX'),
533((SELECT id FROM components WHERE name = 'P500A'), 'ATX'),
534((SELECT id FROM components WHERE name = 'P500A'), 'Micro-ATX'),
535((SELECT id FROM components WHERE name = 'Pure Base 500DX'), 'ATX'),
536((SELECT id FROM components WHERE name = 'Pure Base 500DX'), 'Micro-ATX'),
537((SELECT id FROM components WHERE name = 'H500'), 'ATX'),
538((SELECT id FROM components WHERE name = 'H500'), 'Micro-ATX'),
539((SELECT id FROM components WHERE name = 'RL08'), 'ATX'),
540((SELECT id FROM components WHERE name = 'RL08'), 'Micro-ATX'),
541((SELECT id FROM components WHERE name = 'Air 100 ARGB'), 'Micro-ATX'),
542((SELECT id FROM components WHERE name = 'CC560'), 'ATX'),
543((SELECT id FROM components WHERE name = 'CC560'), 'Micro-ATX'),
544((SELECT id FROM components WHERE name = 'DF700 Flux'), 'ATX'),
545((SELECT id FROM components WHERE name = 'DF700 Flux'), 'Micro-ATX');
546
547INSERT INTO case_storage_form_factors (case_id, form_factor, num_slots) VALUES
548(5, 'M.2', 2),
549((SELECT id FROM components WHERE name = 'H5 Flow'), 'M.2', 3),
550((SELECT id FROM components WHERE name = '4000D Airflow'), 'M.2', 3),
551((SELECT id FROM components WHERE name = 'O11 Dynamic Evo'), 'M.2', 4),
552((SELECT id FROM components WHERE name = 'Versa H18'), 'M.2', 2),
553((SELECT id FROM components WHERE name = 'H510 Elite'), 'M.2', 3),
554((SELECT id FROM components WHERE name = 'H7 Flow'), 'M.2', 4),
555((SELECT id FROM components WHERE name = '5000D Airflow'), 'M.2', 4),
556((SELECT id FROM components WHERE name = '4000D RGB'), 'M.2', 3),
557((SELECT id FROM components WHERE name = 'iCUE 5000X RGB'), 'M.2', 4),
558((SELECT id FROM components WHERE name = 'O11 Dynamic XL'), 'M.2', 4),
559((SELECT id FROM components WHERE name = 'Lancool 216'), 'M.2', 3),
560((SELECT id FROM components WHERE name = 'Meshify 2 Compact'), 'M.2', 3),
561((SELECT id FROM components WHERE name = 'Define 7'), 'M.2', 3),
562((SELECT id FROM components WHERE name = 'Torrent Compact'), 'M.2', 3),
563((SELECT id FROM components WHERE name = 'View 51 TG'), 'M.2', 3),
564((SELECT id FROM components WHERE name = 'Core P3 TG'), 'M.2', 2),
565((SELECT id FROM components WHERE name = 'H440'), 'M.2', 2),
566((SELECT id FROM components WHERE name = 'P500A'), 'M.2', 3),
567((SELECT id FROM components WHERE name = 'Pure Base 500DX'), 'M.2', 3),
568((SELECT id FROM components WHERE name = 'H500'), 'M.2', 3),
569((SELECT id FROM components WHERE name = 'RL08'), 'M.2', 2),
570((SELECT id FROM components WHERE name = 'Air 100 ARGB'), 'M.2', 2),
571((SELECT id FROM components WHERE name = 'CC560'), 'M.2', 2),
572((SELECT id FROM components WHERE name = 'DF700 Flux'), 'M.2', 3);
573
574INSERT INTO power_supply (component_id, type, wattage, form_factor) VALUES
575(4, 'Modular', 650, 'ATX'),
576((SELECT id FROM components WHERE name='Smart 500W'), 'Non-Modular', 500, 'ATX'),
577((SELECT id FROM components WHERE name='RM750e'), 'Fully Modular', 750, 'ATX'),
578((SELECT id FROM components WHERE name='SuperNOVA 1000 GT'), 'Fully Modular', 1000, 'ATX'),
579((SELECT id FROM components WHERE name='Smart 450W'), 'Non-Modular', 450, 'ATX'),
580((SELECT id FROM components WHERE name='CV550'), 'Non-Modular', 550, 'ATX'),
581((SELECT id FROM components WHERE name='BR600W'), 'Non-Modular', 600, 'ATX'),
582((SELECT id FROM components WHERE name='CX650M'), 'Semi-Modular', 650, 'ATX'),
583((SELECT id FROM components WHERE name='SuperNOVA 750 G6'), 'Fully Modular', 750, 'ATX'),
584((SELECT id FROM components WHERE name='RM850x'), 'Fully Modular', 850, 'ATX'),
585((SELECT id FROM components WHERE name='Toughpower GF1 850W'), 'Fully Modular', 850, 'ATX'),
586((SELECT id FROM components WHERE name='HX1000i'), 'Fully Modular', 1000, 'ATX'),
587((SELECT id FROM components WHERE name='SuperNOVA 1200 P2'), 'Fully Modular', 1200, 'ATX'),
588((SELECT id FROM components WHERE name='RM1000x Shift'), 'Fully Modular', 1000, 'ATX');
589
590INSERT INTO cooler (component_id, type, height, max_tdp_supported) VALUES
591(6, 'Air', 158, 150),
592((SELECT id FROM components WHERE name='Peerless Assassin 120 SE'), 'Air', 155, 245),
593((SELECT id FROM components WHERE name='Kraken Elite 360'), 'Liquid', 55, 300),
594((SELECT id FROM components WHERE name='Hyper 212 RGB Black'), 'Air', 159, 180),
595((SELECT id FROM components WHERE name='NH-D15'), 'Air', 165, 220),
596((SELECT id FROM components WHERE name='Dark Rock Pro 4'), 'Air', 163, 250),
597((SELECT id FROM components WHERE name='NH-U12S'), 'Air', 158, 165),
598((SELECT id FROM components WHERE name='Vetroo V5'), 'Air', 155, 180),
599((SELECT id FROM components WHERE name='Assassin X 120 Refined'), 'Air', 157, 150),
600((SELECT id FROM components WHERE name='Pure Rock 2'), 'Air', 155, 150),
601((SELECT id FROM components WHERE name='Fuma 3'), 'Air', 154, 220),
602((SELECT id FROM components WHERE name='Kraken X63'), 'Liquid', 55, 250),
603((SELECT id FROM components WHERE name='iCUE H100i Elite'), 'Liquid', 55, 250),
604((SELECT id FROM components WHERE name='iCUE H150i Elite LCD'), 'Liquid', 55, 300),
605((SELECT id FROM components WHERE name='Castle 280 RGB'), 'Liquid', 55, 250),
606((SELECT id FROM components WHERE name='MasterLiquid ML240L'), 'Liquid', 55, 200),
607((SELECT id FROM components WHERE name='Liquid Freezer II 360'), 'Liquid', 55, 320),
608((SELECT id FROM components WHERE name='EK-AIO 240 D-RGB'), 'Liquid', 55, 240);
609
610INSERT INTO cooler_cpu_sockets (cooler_id, socket) VALUES
611(6, 'AM4'), (6, 'AM5'),
612((SELECT id FROM components WHERE name = 'Peerless Assassin 120 SE'), 'AM4'),
613((SELECT id FROM components WHERE name = 'Peerless Assassin 120 SE'), 'AM5'),
614((SELECT id FROM components WHERE name = 'Peerless Assassin 120 SE'), 'LGA1700'),
615((SELECT id FROM components WHERE name = 'Kraken Elite 360'), 'AM4'),
616((SELECT id FROM components WHERE name = 'Kraken Elite 360'), 'AM5'),
617((SELECT id FROM components WHERE name = 'Kraken Elite 360'), 'LGA1700'),
618((SELECT id FROM components WHERE name = 'Hyper 212 RGB Black'), 'AM4'),
619((SELECT id FROM components WHERE name = 'Hyper 212 RGB Black'), 'AM5'),
620((SELECT id FROM components WHERE name = 'Hyper 212 RGB Black'), 'LGA1700'),
621((SELECT id FROM components WHERE name = 'Hyper 212 RGB Black'), 'LGA1200'),
622((SELECT id FROM components WHERE name = 'NH-D15'), 'AM4'),
623((SELECT id FROM components WHERE name = 'NH-D15'), 'AM5'),
624((SELECT id FROM components WHERE name = 'NH-D15'), 'LGA1700'),
625((SELECT id FROM components WHERE name = 'NH-D15'), 'LGA1200'),
626((SELECT id FROM components WHERE name = 'Dark Rock Pro 4'), 'AM4'),
627((SELECT id FROM components WHERE name = 'Dark Rock Pro 4'), 'AM5'),
628((SELECT id FROM components WHERE name = 'Dark Rock Pro 4'), 'LGA1700'),
629((SELECT id FROM components WHERE name = 'Dark Rock Pro 4'), 'LGA1200'),
630((SELECT id FROM components WHERE name = 'NH-U12S'), 'AM4'),
631((SELECT id FROM components WHERE name = 'NH-U12S'), 'AM5'),
632((SELECT id FROM components WHERE name = 'NH-U12S'), 'LGA1700'),
633((SELECT id FROM components WHERE name = 'NH-U12S'), 'LGA1200'),
634((SELECT id FROM components WHERE name = 'Vetroo V5'), 'AM4'),
635((SELECT id FROM components WHERE name = 'Vetroo V5'), 'LGA1700'),
636((SELECT id FROM components WHERE name = 'Assassin X 120 Refined'), 'AM4'),
637((SELECT id FROM components WHERE name = 'Assassin X 120 Refined'), 'AM5'),
638((SELECT id FROM components WHERE name = 'Assassin X 120 Refined'), 'LGA1700'),
639((SELECT id FROM components WHERE name = 'Pure Rock 2'), 'AM4'),
640((SELECT id FROM components WHERE name = 'Pure Rock 2'), 'LGA1700'),
641((SELECT id FROM components WHERE name = 'Fuma 3'), 'AM4'),
642((SELECT id FROM components WHERE name = 'Fuma 3'), 'AM5'),
643((SELECT id FROM components WHERE name = 'Fuma 3'), 'LGA1700'),
644((SELECT id FROM components WHERE name = 'Kraken X63'), 'AM4'),
645((SELECT id FROM components WHERE name = 'Kraken X63'), 'AM5'),
646((SELECT id FROM components WHERE name = 'Kraken X63'), 'LGA1700'),
647((SELECT id FROM components WHERE name = 'iCUE H100i Elite'), 'AM4'),
648((SELECT id FROM components WHERE name = 'iCUE H100i Elite'), 'AM5'),
649((SELECT id FROM components WHERE name = 'iCUE H100i Elite'), 'LGA1700'),
650((SELECT id FROM components WHERE name = 'iCUE H150i Elite LCD'), 'AM4'),
651((SELECT id FROM components WHERE name = 'iCUE H150i Elite LCD'), 'AM5'),
652((SELECT id FROM components WHERE name = 'iCUE H150i Elite LCD'), 'LGA1700'),
653((SELECT id FROM components WHERE name = 'Castle 280 RGB'), 'AM4'),
654((SELECT id FROM components WHERE name = 'Castle 280 RGB'), 'LGA1700'),
655((SELECT id FROM components WHERE name = 'MasterLiquid ML240L'), 'AM4'),
656((SELECT id FROM components WHERE name = 'MasterLiquid ML240L'), 'LGA1700'),
657((SELECT id FROM components WHERE name = 'Liquid Freezer II 360'), 'AM4'),
658((SELECT id FROM components WHERE name = 'Liquid Freezer II 360'), 'AM5'),
659((SELECT id FROM components WHERE name = 'Liquid Freezer II 360'), 'LGA1700'),
660((SELECT id FROM components WHERE name = 'EK-AIO 240 D-RGB'), 'AM4'),
661((SELECT id FROM components WHERE name = 'EK-AIO 240 D-RGB'), 'AM5'),
662((SELECT id FROM components WHERE name = 'EK-AIO 240 D-RGB'), 'LGA1700');
663
664INSERT INTO case_ps_form_factors (case_id, form_factor) VALUES
665(5, 'ATX'),
666((SELECT id FROM components WHERE name = 'H5 Flow'), 'ATX'),
667((SELECT id FROM components WHERE name = '4000D Airflow'), 'ATX'),
668((SELECT id FROM components WHERE name = 'O11 Dynamic Evo'), 'ATX'),
669((SELECT id FROM components WHERE name = 'Versa H18'), 'ATX'),
670((SELECT id FROM components WHERE name = 'H510 Elite'), 'ATX'),
671((SELECT id FROM components WHERE name = 'H7 Flow'), 'ATX'),
672((SELECT id FROM components WHERE name = '5000D Airflow'), 'ATX'),
673((SELECT id FROM components WHERE name = '4000D RGB'), 'ATX'),
674((SELECT id FROM components WHERE name = 'iCUE 5000X RGB'), 'ATX'),
675((SELECT id FROM components WHERE name = 'O11 Dynamic XL'), 'ATX'),
676((SELECT id FROM components WHERE name = 'Lancool 216'), 'ATX'),
677((SELECT id FROM components WHERE name = 'Meshify 2 Compact'), 'ATX'),
678((SELECT id FROM components WHERE name = 'Define 7'), 'ATX'),
679((SELECT id FROM components WHERE name = 'Torrent Compact'), 'ATX'),
680((SELECT id FROM components WHERE name = 'View 51 TG'), 'ATX'),
681((SELECT id FROM components WHERE name = 'Core P3 TG'), 'ATX'),
682((SELECT id FROM components WHERE name = 'H440'), 'ATX'),
683((SELECT id FROM components WHERE name = 'P500A'), 'ATX'),
684((SELECT id FROM components WHERE name = 'Pure Base 500DX'), 'ATX'),
685((SELECT id FROM components WHERE name = 'H500'), 'ATX'),
686((SELECT id FROM components WHERE name = 'RL08'), 'ATX'),
687((SELECT id FROM components WHERE name = 'Air 100 ARGB'), 'ATX'),
688((SELECT id FROM components WHERE name = 'CC560'), 'ATX'),
689((SELECT id FROM components WHERE name = 'DF700 Flux'), 'ATX');
690
691INSERT INTO sound_card (component_id, sample_rate, bit_depth, chipset, interface, channel) VALUES
692(9, 192000, 24, 'SoundCore', 'PCIe', '7.1'),
693((SELECT id FROM components WHERE name='Sound BlasterX AE-5 Plus'), 192000, 32, 'SB1508', 'PCIe', '7.1'),
694((SELECT id FROM components WHERE name='Xonar SE'), 192000, 24, 'CM6620', 'PCIe', '5.1'),
695((SELECT id FROM components WHERE name='Sound Blaster Z'), 192000, 24, 'SB1502', 'PCIe', '5.1'),
696((SELECT id FROM components WHERE name='Audigy FX'), 192000, 24, 'CA20K2', 'PCIe', '5.1'),
697((SELECT id FROM components WHERE name='Xonar U7'), 192000, 24, 'CM6632AX', 'USB', '7.1');
698
699INSERT INTO network_card (component_id, num_ports, speed, interface) VALUES
700(10, 2, 1000, 'PCIe'),
701((SELECT id FROM components WHERE name='PRO/1000 PT'), 2, 1000, 'PCIe'),
702((SELECT id FROM components WHERE name='TG-3468'), 1, 1000, 'PCIe'),
703((SELECT id FROM components WHERE name='PCE-AC68'), 1, 1300, 'PCIe'),
704((SELECT id FROM components WHERE name='XG-C100C'), 1, 10000, 'PCIe'),
705((SELECT id FROM components WHERE name='Killer E3100G'), 1, 2500, 'PCIe');
706
707INSERT INTO network_adapter (component_id, wifi_version, interface, num_antennas) VALUES
708(11, 'WiFi 6', 'PCIe', 3),
709((SELECT id FROM components WHERE name='Archer TX3000E'), 'WiFi 6', 'PCIe', 2),
710((SELECT id FROM components WHERE name='AX200'), 'WiFi 6', 'M.2', 2),
711((SELECT id FROM components WHERE name='PCE-AXE5400'), 'WiFi 6E', 'PCIe', 4),
712((SELECT id FROM components WHERE name='Archer T6E'), 'WiFi 5', 'PCIe', 2),
713((SELECT id FROM components WHERE name='WN7200ND'), 'WiFi 4', 'PCIe', 2);
714
715INSERT INTO optical_drive (component_id, form_factor, type, interface, write_speed, read_speed) VALUES
716(12, '5.25"', 'DVD-RW', 'SATA', 16, 16),
717((SELECT id FROM components WHERE name='DVD-RW Drive'), '5.25"', 'DVD-RW', 'SATA', 24, 24),
718((SELECT id FROM components WHERE name='Slim DVD Writer'), 'Slim', 'DVD-RW', 'SATA', 8, 8),
719((SELECT id FROM components WHERE name='BDR-XD07B'), 'Slim', 'BD-RE', 'USB', 6, 6),
720((SELECT id FROM components WHERE name='BP60NB10'), 'Slim', 'BD-RE', 'USB', 6, 6),
721((SELECT id FROM components WHERE name='Blu-ray Writer'), '5.25"', 'BD-RE', 'SATA', 16, 16);
722
723INSERT INTO memory_card (component_id, num_slots, interface) VALUES
724(13, 1, 'PCIe'),
725((SELECT id FROM components WHERE name='M.2 NVMe Adapter Card'), 1, 'PCIe x4'),
726((SELECT id FROM components WHERE name='Dual M.2 PCIe Card'), 2, 'PCIe x8'),
727((SELECT id FROM components WHERE name='Quad M.2 RAID Card'), 4, 'PCIe x16'),
728((SELECT id FROM components WHERE name='U.2 NVMe Adapter'), 1, 'PCIe x4'),
729((SELECT id FROM components WHERE name='Triple M.2 Expansion'), 3, 'PCIe x16');
730
731INSERT INTO cables (component_id, length_cm, type) VALUES
732(14, 50, 'SATA'),
733((SELECT id FROM components WHERE name='USB 3.0 Extension 6ft'), 180, 'USB'),
734((SELECT id FROM components WHERE name='SATA III Cable 3-Pack'), 50, 'SATA'),
735((SELECT id FROM components WHERE name='Premium Sleeved Cables'), 60, 'PSU'),
736((SELECT id FROM components WHERE name='DisplayPort 1.4 Cable'), 180, 'DisplayPort'),
737((SELECT id FROM components WHERE name='USB-C to USB-A Cable'), 100, 'USB'),
738((SELECT id FROM components WHERE name='HDMI 2.1 Cable 10ft'), 300, 'HDMI'),
739((SELECT id FROM components WHERE name='PWM Fan Splitter Cable'), 30, 'Fan'),
740((SELECT id FROM components WHERE name='RGB LED Strip Extension'), 50, 'RGB'),
741((SELECT id FROM components WHERE name='PCIe 4.0 Riser Cable'), 30, 'PCIe'),
742((SELECT id FROM components WHERE name='Molex to SATA Power'), 20, 'Power');
743
744INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
745((SELECT id FROM users WHERE username='tome'), 'Gaming Build', '2025-09-18', 'Mid-range gaming PC', 1154.92, TRUE);
746
747INSERT INTO build_component (build_id, component_id) VALUES
748((SELECT id FROM build WHERE name='Gaming Build'), (SELECT id FROM components WHERE name='Ryzen 7 5800X')),
749((SELECT id FROM build WHERE name='Gaming Build'), (SELECT id FROM components WHERE name='RTX 3060')),
750((SELECT id FROM build WHERE name='Gaming Build'), (SELECT id FROM components WHERE name='B550 Motherboard')),
751((SELECT id FROM build WHERE name='Gaming Build'), (SELECT id FROM components WHERE name='16GB DDR4 Kit')),
752((SELECT id FROM build WHERE name='Gaming Build'), (SELECT id FROM components WHERE name='1TB NVMe SSD')),
753((SELECT id FROM build WHERE name='Gaming Build'), (SELECT id FROM components WHERE name='650W PSU')),
754((SELECT id FROM build WHERE name='Gaming Build'), (SELECT id FROM components WHERE name='4000D Airflow')),
755((SELECT id FROM build WHERE name='Gaming Build'), (SELECT id FROM components WHERE name='Air Cooler'));
756
757
758INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
759((SELECT id FROM users WHERE username='budget_king'), 'Console Killer 2025', '2024-12-01', 'Cheap entry level gaming PC', 580.00, TRUE);
760
761INSERT INTO build_component (build_id, component_id) VALUES
762((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM components WHERE name='Core i3-13100F')),
763((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM components WHERE name='Radeon RX 6600')),
764((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM components WHERE name='B760M Bomber WiFi')),
765((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM components WHERE name='Vengeance LPX 16GB')),
766((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM components WHERE name='Crucial P3 1TB')),
767((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM components WHERE name='Smart 500W')),
768((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM components WHERE name='Versa H18'));
769
770INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
771((SELECT id FROM users WHERE username='streamer_pro'), 'Pro Streaming Rig', '2025-01-15', 'Handles OBS and 1440p gaming flawlessly', 2150.00, TRUE);
772
773INSERT INTO build_component (build_id, component_id) VALUES
774((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM components WHERE name='Core i7-14700K')),
775((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM components WHERE name='GeForce RTX 4080 Super')),
776((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM components WHERE name='Z790 Maximus Hero')),
777((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM components WHERE name='Trident Z5 RGB 32GB')),
778((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM components WHERE name='WD Black SN850X 2TB')),
779((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM components WHERE name='SuperNOVA 1000 GT')),
780((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM components WHERE name='H5 Flow')),
781((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM components WHERE name='Kraken Elite 360'));
782
783INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
784((SELECT id FROM users WHERE username='pc_wizard'), 'Team Red Value King', '2025-02-10', 'Pure rasterization performance', 1450.00, TRUE);
785
786INSERT INTO build_component (build_id, component_id) VALUES
787((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM components WHERE name='Ryzen 7 7800X3D')),
788((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM components WHERE name='Radeon RX 7800 XT')),
789((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM components WHERE name='B650M DS3H')),
790((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM components WHERE name='Trident Z5 RGB 32GB')),
791((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM components WHERE name='Crucial P3 1TB')),
792((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM components WHERE name='RM750e')),
793((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM components WHERE name='4000D Airflow')),
794((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM components WHERE name='Peerless Assassin 120 SE'));
795
796INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
797((SELECT id FROM users WHERE username='rgb_lover'), 'God Tier 4090 Build', '2025-03-01', 'Money is no object. 4K 144Hz Ultra.', 4200.00, TRUE);
798
799INSERT INTO build_component (build_id, component_id) VALUES
800((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM components WHERE name='Core i9-14900KS')),
801((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM components WHERE name='GeForce RTX 4090')),
802((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM components WHERE name='Z790 Maximus Hero')),
803((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM components WHERE name='Dominator Platinum 64GB')),
804((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM components WHERE name='Samsung 990 Pro 4TB')),
805((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM components WHERE name='SuperNOVA 1000 GT')),
806((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM components WHERE name='O11 Dynamic Evo')),
807((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM components WHERE name='Kraken Elite 360'));
808
809INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
810((SELECT id FROM users WHERE username='first_timer'), 'Snow White Build', '2024-11-20', 'First time building, went for looks', 1199.00, TRUE);
811
812INSERT INTO build_component (build_id, component_id) VALUES
813((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM components WHERE name='Ryzen 5 7600')),
814((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM components WHERE name='GeForce RTX 4070 Super')),
815((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM components WHERE name='B650M DS3H')),
816((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM components WHERE name='Trident Z5 RGB 32GB')),
817((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM components WHERE name='Crucial P3 1TB')),
818((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM components WHERE name='RM750e')),
819((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM components WHERE name='H5 Flow'));
820
821INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
822((SELECT id FROM users WHERE username='linux_fan'), 'Arch Linux Dev Box', '2024-10-15', 'Compilation beast, no Nvidia drivers needed', 920.00, TRUE);
823
824INSERT INTO build_component (build_id, component_id) VALUES
825((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM components WHERE name='Core i5-13600K')),
826((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM components WHERE name='Radeon RX 7600')),
827((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM components WHERE name='B760M Bomber WiFi')),
828((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM components WHERE name='Ripjaws V 32GB')),
829((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM components WHERE name='Crucial P3 1TB')),
830((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM components WHERE name='RM750e')),
831((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM components WHERE name='Versa H18'));
832
833INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
834((SELECT id FROM users WHERE username='office_guy'), '1080p Gamer', '2025-01-05', 'Just for Fortnite and Apex', 810.00, TRUE);
835
836INSERT INTO build_component (build_id, component_id) VALUES
837((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM components WHERE name='Core i3-13100F')),
838((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM components WHERE name='GeForce RTX 4060')),
839((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM components WHERE name='B760M Bomber WiFi')),
840((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM components WHERE name='Vengeance LPX 16GB')),
841((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM components WHERE name='Crucial P3 1TB')),
842((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM components WHERE name='Smart 500W')),
843((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM components WHERE name='Versa H18'));
844
845INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
846((SELECT id FROM users WHERE username='pc_wizard'), 'Silent Night', '2024-12-25', 'Zero RPM fan mode build', 2450.00, TRUE);
847
848INSERT INTO build_component (build_id, component_id) VALUES
849((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM components WHERE name='Core i7-14700K')),
850((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM components WHERE name='GeForce RTX 4080 Super')),
851((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM components WHERE name='Z790 Maximus Hero')),
852((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM components WHERE name='Trident Z5 RGB 32GB')),
853((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM components WHERE name='WD Black SN850X 2TB')),
854((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM components WHERE name='SuperNOVA 1000 GT')),
855((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM components WHERE name='4000D Airflow')),
856((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM components WHERE name='Peerless Assassin 120 SE'));
857
858INSERT INTO build (user_id, name, created_at, description, total_price, is_approved) VALUES
859((SELECT id FROM users WHERE username='rgb_lover'), 'Radeon Ultimate', '2025-03-10', '4K Gaming without Nvidia tax', 2850.00, TRUE);
860
861INSERT INTO build_component (build_id, component_id) VALUES
862((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM components WHERE name='Ryzen 9 7950X')),
863((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM components WHERE name='Radeon RX 7900 XTX')),
864((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM components WHERE name='X670E AORUS Master')),
865((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM components WHERE name='Dominator Platinum 64GB')),
866((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM components WHERE name='Samsung 990 Pro 4TB')),
867((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM components WHERE name='SuperNOVA 1000 GT')),
868((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM components WHERE name='O11 Dynamic Evo')),
869((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM components WHERE name='Kraken Elite 360'));
870
871-- Ratings & Reviews
872INSERT INTO rating_build (build_id, user_id, value) VALUES (1, 2, 5);
873INSERT INTO review (build_id, user_id, content, created_at) VALUES (1, 2, 'Still runs everything in 2025!', CURRENT_DATE);
874
875INSERT INTO rating_build (build_id, user_id, value) VALUES
876((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM users WHERE username='rgb_lover'), 3),
877((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM users WHERE username='pc_wizard'), 4);
878INSERT INTO review (build_id, user_id, content, created_at) VALUES
879((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM users WHERE username='rgb_lover'), 'No RGB, 3 stars.', '2024-12-05'),
880((SELECT id FROM build WHERE name='Console Killer 2025'), (SELECT id FROM users WHERE username='pc_wizard'), 'Solid entry-level build. Beats PS5 performance per dollar.', '2024-12-02'); -- ADDED
881
882INSERT INTO rating_build (build_id, user_id, value) VALUES
883((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM users WHERE username='pc_wizard'), 5);
884INSERT INTO review (build_id, user_id, content, created_at) VALUES
885((SELECT id FROM build WHERE name='Pro Streaming Rig'), (SELECT id FROM users WHERE username='pc_wizard'), 'Zero dropped frames at 1440p/144Hz. Encoder handles everything.', '2025-01-16');
886
887INSERT INTO rating_build (build_id, user_id, value) VALUES
888((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM users WHERE username='budget_king'), 5),
889((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM users WHERE username='first_timer'), 4);
890INSERT INTO review (build_id, user_id, content, created_at) VALUES
891((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM users WHERE username='budget_king'), 'Best FPS per dollar.', '2025-02-12'),
892((SELECT id FROM build WHERE name='Team Red Value King'), (SELECT id FROM users WHERE username='first_timer'), 'Great build guide for beginners. Assembly was straightforward.', '2025-02-14'); -- ADDED
893
894INSERT INTO rating_build (build_id, user_id, value) VALUES
895((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM users WHERE username='streamer_pro'), 5),
896((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM users WHERE username='budget_king'), 2);
897INSERT INTO review (build_id, user_id, content, created_at) VALUES
898((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM users WHERE username='budget_king'), 'Waaaaay too much money.', '2025-03-05'),
899((SELECT id FROM build WHERE name='God Tier 4090 Build'), (SELECT id FROM users WHERE username='streamer_pro'), 'Streams in 4K while gaming at max settings. Insane power!', '2025-03-06'); -- ADDED
900
901INSERT INTO rating_build (build_id, user_id, value) VALUES
902((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM users WHERE username='rgb_lover'), 5),
903((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM users WHERE username='office_guy'), 4);
904INSERT INTO review (build_id, user_id, content, created_at) VALUES
905((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM users WHERE username='rgb_lover'), 'Beautiful RGB setup with white theme. Looks amazing!', '2024-11-21'),
906((SELECT id FROM build WHERE name='Snow White Build'), (SELECT id FROM users WHERE username='office_guy'), 'Clean aesthetic but a bit pricey for the performance.', '2024-11-22');
907
908INSERT INTO rating_build (build_id, user_id, value) VALUES
909((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM users WHERE username='linux_fan'), 5),
910((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM users WHERE username='first_timer'), 1);
911INSERT INTO review (build_id, user_id, content, created_at) VALUES
912((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM users WHERE username='first_timer'), 'Could not install Windows easily.', '2024-10-20'),
913((SELECT id FROM build WHERE name='Arch Linux Dev Box'), (SELECT id FROM users WHERE username='linux_fan'), 'Compiles kernels like a beast. Perfect Linux workstation.', '2024-10-16'); -- ADDED
914
915INSERT INTO rating_build (build_id, user_id, value) VALUES
916((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM users WHERE username='streamer_pro'), 2),
917((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM users WHERE username='budget_king'), 3);
918INSERT INTO review (build_id, user_id, content, created_at) VALUES
919((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM users WHERE username='streamer_pro'), 'Stutters in Warzone.', '2025-01-10'),
920((SELECT id FROM build WHERE name='1080p Gamer'), (SELECT id FROM users WHERE username='budget_king'), 'Decent 1080p performance but could use more GPU power.', '2025-01-12'); -- ADDED
921
922INSERT INTO rating_build (build_id, user_id, value) VALUES
923((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM users WHERE username='rgb_lover'), 2),
924((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM users WHERE username='office_guy'), 5);
925INSERT INTO review (build_id, user_id, content, created_at) VALUES
926((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM users WHERE username='rgb_lover'), 'Not enough RGB! Boring aesthetics.', '2024-12-26'),
927((SELECT id FROM build WHERE name='Silent Night'), (SELECT id FROM users WHERE username='office_guy'), 'Whisper quiet even under full load. Perfect for my office!', '2024-12-27');
928
929INSERT INTO rating_build (build_id, user_id, value) VALUES
930((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM users WHERE username='pc_wizard'), 5),
931((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM users WHERE username='linux_fan'), 5);
932INSERT INTO review (build_id, user_id, content, created_at) VALUES
933((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM users WHERE username='pc_wizard'), 'Red team absolutely crushes 4K gaming. No regrets.', '2025-03-11'),
934((SELECT id FROM build WHERE name='Radeon Ultimate'), (SELECT id FROM users WHERE username='linux_fan'), 'AMD drivers work flawlessly on Linux. Peak gaming experience.', '2025-03-12');
935
936INSERT INTO suggestions (user_id, admin_id, link, admin_comment, description, status, component_type) VALUES
937(1, 4, 'https://www.gigabyte.com/Graphics-Card/GV-N4070WF3OC-12GD-rev-10', NULL, 'Consider adding the NVIDIA RTX 4070', 'pending', 'gpu'),
938(5, 4, 'https://www.amd.com/en/support/downloads/drivers.html/processors/ryzen/ryzen-7000-series/amd-ryzen-5-7600x.html#amd_support_product_spec', NULL, 'Consider adding the Ryzen 5 7600x', 'pending', 'cpu'),
939(11, NULL, 'https://www.corsair.com/us/en/p/pc-cases/cc-9011251-ww/3000d-tempered-glass-mid-tower-black-cc-9011251-ww', NULL, 'Please add the Corsair 3000D Airflow case', 'pending', 'case');
940`
941
942const triggerSQL = `
943CREATE OR REPLACE FUNCTION update_build_total_price()
944RETURNS TRIGGER
945LANGUAGE plpgsql AS $$
946DECLARE
947 target_build_id INT;
948BEGIN
949 IF (TG_OP = 'DELETE') THEN
950 target_build_id := OLD.build_id;
951 ELSE
952 target_build_id := NEW.build_id;
953 END IF;
954
955 UPDATE "build"
956 SET "total_price" = (
957 SELECT COALESCE(SUM(c.price * bc.num_components), 0)
958 FROM "build_component" bc
959 JOIN "components" c ON bc.component_id = c.id
960 WHERE bc.build_id = target_build_id
961 )
962 WHERE id = target_build_id;
963
964 RETURN NULL;
965END;
966$$;
967
968DROP TRIGGER IF EXISTS trigger_auto_update_price ON "build_component";
969CREATE TRIGGER trigger_auto_update_price
970AFTER INSERT OR UPDATE OR DELETE ON "build_component"
971FOR EACH ROW
972EXECUTE FUNCTION update_build_total_price();
973
974
975
976CREATE OR REPLACE FUNCTION check_review_validity()
977RETURNS TRIGGER
978LANGUAGE plpgsql AS $$
979DECLARE
980 build_owner_id INT;
981BEGIN
982 SELECT user_id INTO build_owner_id FROM "build" WHERE id = NEW.build_id;
983
984 IF NEW.user_id = build_owner_id THEN
985 RAISE EXCEPTION 'Cannot review own builds.';
986 END IF;
987
988 RETURN NEW;
989END;
990$$;
991
992DROP TRIGGER IF EXISTS trigger_check_self_review ON "review";
993CREATE TRIGGER trigger_check_self_review
994BEFORE INSERT ON "review"
995FOR EACH ROW
996EXECUTE FUNCTION check_review_validity();
997
998
999
1000CREATE OR REPLACE FUNCTION check_rating_validity()
1001RETURNS TRIGGER
1002LANGUAGE plpgsql AS $$
1003DECLARE
1004 build_owner_id INT;
1005BEGIN
1006 SELECT user_id INTO build_owner_id FROM "build" WHERE id = NEW.build_id;
1007
1008 IF NEW.user_id = build_owner_id THEN
1009 RAISE EXCEPTION 'Cannot rate own builds.';
1010 END IF;
1011
1012 RETURN NEW;
1013END;
1014$$;
1015
1016DROP TRIGGER IF EXISTS trigger_check_self_rating ON "rating_build";
1017CREATE TRIGGER trigger_check_self_rating
1018BEFORE INSERT ON "rating_build"
1019FOR EACH ROW
1020EXECUTE FUNCTION check_rating_validity();
1021`
1022
1023const functionSQL = `
1024CREATE OR REPLACE FUNCTION get_report_top_components()
1025 RETURNS TABLE (
1026 type TEXT,
1027 brand TEXT,
1028 name TEXT,
1029 usage_count BIGINT,
1030 avg_build_rating NUMERIC
1031 )
1032 LANGUAGE sql
1033AS $$
1034SELECT
1035 c.type,
1036 c.brand,
1037 c.name,
1038 COUNT(bc.component_id) AS usage_count,
1039 AVG(rb.value) AS avg_build_rating
1040FROM components c
1041 JOIN build_component bc ON c.id = bc.component_id
1042 JOIN build b ON bc.build_id = b.id
1043 JOIN rating_build rb ON b.id = rb.build_id
1044WHERE b.created_at >= CURRENT_DATE - INTERVAL '1 year'
1045GROUP BY c.type, c.brand, c.name
1046HAVING AVG(rb.value) >= 4.5
1047ORDER BY usage_count DESC, avg_build_rating DESC
1048LIMIT 15;
1049$$;
1050
1051
1052
1053CREATE OR REPLACE FUNCTION get_report_user_reputation_leaderboard()
1054 RETURNS TABLE (
1055 username TEXT,
1056 email TEXT,
1057 approved_builds_count BIGINT,
1058 total_favorites_received BIGINT,
1059 avg_rating_received NUMERIC,
1060 reputation_score NUMERIC
1061 )
1062 LANGUAGE sql
1063AS $$
1064WITH build_stats AS (
1065 SELECT
1066 b.id AS build_id,
1067 b.user_id,
1068 COUNT(DISTINCT fb.user_id) AS favorites_count,
1069 AVG(rb.value) AS avg_rating
1070 FROM build b
1071 LEFT JOIN favorite_build fb ON b.id = fb.build_id
1072 LEFT JOIN rating_build rb ON b.id = rb.build_id
1073 WHERE b.is_approved = TRUE
1074 GROUP BY b.id, b.user_id
1075),
1076 user_stats AS (
1077 SELECT
1078 user_id,
1079 COUNT(build_id) AS approved_builds_count,
1080 COALESCE(SUM(favorites_count), 0) AS total_favorites_received,
1081 AVG(avg_rating) AS avg_rating_received
1082 FROM build_stats
1083 GROUP BY user_id
1084 )
1085SELECT
1086 u.username,
1087 u.email,
1088 us.approved_builds_count,
1089 us.total_favorites_received,
1090 ROUND(CAST(COALESCE(us.avg_rating_received, 0) AS numeric), 2) AS avg_rating_received,
1091 (
1092 (us.approved_builds_count * 10) +
1093 (us.total_favorites_received * 5) +
1094 (COALESCE(us.avg_rating_received, 0) * 20)
1095 ) AS reputation_score
1096FROM user_stats us
1097 JOIN users u ON u.id = us.user_id
1098ORDER BY reputation_score DESC
1099LIMIT 10;
1100$$;
1101
1102
1103
1104CREATE OR REPLACE FUNCTION get_report_price_to_performance()
1105 RETURNS TABLE (
1106 build_name TEXT,
1107 cpu_model TEXT,
1108 gpu_model TEXT,
1109 total_price NUMERIC,
1110 performance_score NUMERIC,
1111 price_to_performance_index NUMERIC
1112 )
1113 LANGUAGE sql
1114AS $$
1115WITH cpu_per_build AS (
1116 SELECT
1117 b.id AS build_id,
1118 c.name AS cpu_model,
1119 cpu.cores,
1120 cpu.base_clock
1121 FROM build b
1122 JOIN build_component bc ON b.id = bc.build_id
1123 JOIN components c ON bc.component_id = c.id
1124 JOIN cpu ON c.id = cpu.component_id
1125 WHERE LOWER(c.type) = LOWER('CPU')
1126),
1127 gpu_per_build AS (
1128 SELECT
1129 b.id AS build_id,
1130 c.name AS gpu_model,
1131 gpu.vram
1132 FROM build b
1133 JOIN build_component bc ON b.id = bc.build_id
1134 JOIN components c ON bc.component_id = c.id
1135 JOIN gpu ON c.id = gpu.component_id
1136 WHERE LOWER(c.type) = LOWER('GPU')
1137 )
1138SELECT
1139 b.name AS build_name,
1140 cpu.cpu_model,
1141 gpu.gpu_model,
1142 b.total_price,
1143 (cpu.cores * cpu.base_clock + gpu.vram * 100) AS performance_score,
1144 ROUND(
1145 CAST(
1146 (cpu.cores * cpu.base_clock + gpu.vram * 100) / NULLIF(b.total_price, 0)
1147 AS numeric),
1148 4
1149 ) AS price_to_performance_index
1150FROM build b
1151 JOIN cpu_per_build cpu ON b.id = cpu.build_id
1152 JOIN gpu_per_build gpu ON b.id = gpu.build_id
1153WHERE b.total_price > 0
1154ORDER BY price_to_performance_index DESC
1155LIMIT 20;
1156$$;
1157
1158
1159
1160CREATE OR REPLACE FUNCTION get_report_budget_tier_popularity()
1161 RETURNS TABLE (
1162 price_tier TEXT,
1163 builds_count BIGINT,
1164 avg_favorites NUMERIC,
1165 avg_rating NUMERIC,
1166 unique_builders BIGINT,
1167 engagement_score NUMERIC
1168 )
1169 LANGUAGE sql
1170AS $$
1171WITH price_tier_builds AS (
1172 SELECT
1173 b.id AS build_id,
1174 b.user_id,
1175 b.total_price,
1176 CASE
1177 WHEN b.total_price < 500 THEN 'Budget'
1178 WHEN b.total_price < 1000 THEN 'Mid-Range'
1179 WHEN b.total_price < 2000 THEN 'High-End'
1180 ELSE 'Enthusiast'
1181 END AS price_tier
1182 FROM build b
1183 WHERE b.is_approved = TRUE
1184 AND b.created_at >= CURRENT_DATE - INTERVAL '6 months'
1185),
1186 favorites AS (
1187 SELECT
1188 build_id,
1189 COUNT(DISTINCT user_id) AS favorites_count
1190 FROM favorite_build
1191 GROUP BY build_id
1192 ),
1193 engagement_stats AS (
1194 SELECT
1195 ptb.price_tier,
1196 COUNT(DISTINCT ptb.build_id) AS builds_count,
1197 AVG(COALESCE(f.favorites_count, 0)) AS avg_favorites,
1198 AVG(rb.value) AS avg_rating,
1199 COUNT(DISTINCT ptb.user_id) AS unique_builders
1200 FROM price_tier_builds ptb
1201 LEFT JOIN rating_build rb ON ptb.build_id = rb.build_id
1202 LEFT JOIN favorites f ON ptb.build_id = f.build_id
1203 GROUP BY ptb.price_tier
1204 )
1205SELECT
1206 price_tier,
1207 builds_count,
1208 ROUND(CAST(avg_favorites AS numeric), 1) AS avg_favorites,
1209 ROUND(CAST(COALESCE(avg_rating, 0) AS numeric), 2) AS avg_rating,
1210 unique_builders,
1211 ROUND(
1212 CAST(
1213 (builds_count * 2) +
1214 (avg_favorites * 3) +
1215 (COALESCE(avg_rating, 0) * 10) +
1216 (unique_builders * 1.5)
1217 AS numeric),
1218 2
1219 ) AS engagement_score
1220FROM engagement_stats
1221ORDER BY engagement_score DESC
1222LIMIT 15;
1223$$;
1224
1225
1226
1227CREATE OR REPLACE FUNCTION get_report_compatibility()
1228 RETURNS TABLE (
1229 cpu_combo TEXT,
1230 motherboard_chipset TEXT,
1231 total_builds BIGINT,
1232 avg_satisfaction NUMERIC,
1233 success_rate NUMERIC
1234 )
1235 LANGUAGE sql
1236AS $$
1237WITH cpu_mobo_pairs AS (
1238 SELECT
1239 cpu_comp.brand AS cpu_brand,
1240 cpu_comp.name AS cpu_model,
1241 mobo.chipset AS motherboard_chipset,
1242 b.id AS build_id,
1243 b.user_id,
1244 b.created_at
1245 FROM build b
1246 JOIN build_component bc_cpu ON b.id = bc_cpu.build_id
1247 JOIN components cpu_comp ON bc_cpu.component_id = cpu_comp.id
1248 JOIN cpu ON cpu.component_id = cpu_comp.id
1249 JOIN build_component bc_mobo ON b.id = bc_mobo.build_id
1250 JOIN components mobo_comp ON bc_mobo.component_id = mobo_comp.id
1251 JOIN motherboard mobo ON mobo.component_id = mobo_comp.id
1252 WHERE b.is_approved = TRUE
1253),
1254 recent_activity AS (
1255 SELECT DISTINCT build_id
1256 FROM review
1257 WHERE created_at >= CURRENT_DATE - INTERVAL '3 months'
1258 ),
1259 pair_metrics AS (
1260 SELECT
1261 cmp.cpu_brand,
1262 cmp.cpu_model,
1263 cmp.motherboard_chipset,
1264 COUNT(DISTINCT cmp.build_id) AS total_builds,
1265 AVG(COALESCE(rb.value, 0)) AS avg_satisfaction,
1266 COUNT(DISTINCT ra.build_id) AS active_builds
1267 FROM cpu_mobo_pairs cmp
1268 LEFT JOIN rating_build rb ON cmp.build_id = rb.build_id
1269 LEFT JOIN recent_activity ra ON cmp.build_id = ra.build_id
1270 GROUP BY
1271 cmp.cpu_brand,
1272 cmp.cpu_model,
1273 cmp.motherboard_chipset
1274 HAVING COUNT(DISTINCT cmp.build_id) >= 2
1275 )
1276SELECT
1277 CONCAT(cpu_brand, ' ', cpu_model) AS cpu_combo,
1278 motherboard_chipset,
1279 total_builds,
1280 ROUND(CAST(avg_satisfaction AS numeric), 2) AS avg_satisfaction,
1281 ROUND(
1282 CAST(
1283 (avg_satisfaction / 5.0) * 0.6 +
1284 (CAST(active_builds AS DECIMAL) / total_builds) * 0.4
1285 AS numeric),
1286 3
1287 ) AS success_rate
1288FROM pair_metrics
1289ORDER BY success_rate DESC, total_builds DESC
1290LIMIT 15;
1291$$;
1292
1293
1294
1295CREATE OR REPLACE FUNCTION get_report_storage_optimization()
1296 RETURNS TABLE (
1297 config_type TEXT,
1298 ssd_brand TEXT,
1299 builds_count BIGINT,
1300 avg_storage_cost NUMERIC,
1301 avg_total_capacity_gb NUMERIC,
1302 avg_build_rating NUMERIC,
1303 storage_cost_pct NUMERIC,
1304 optimization_score NUMERIC
1305 )
1306 LANGUAGE sql
1307AS $$
1308WITH storage_configs AS (
1309 SELECT
1310 b.id AS build_id,
1311 b.total_price,
1312
1313 ssd_comp.brand AS ssd_brand,
1314 ssd_storage.capacity AS ssd_capacity,
1315 ssd_comp.price AS ssd_price,
1316
1317 hdd_storage.capacity AS hdd_capacity,
1318 hdd_comp.price AS hdd_price,
1319
1320 CASE
1321 WHEN hdd_storage.capacity IS NULL THEN 'SSD-Only'
1322 WHEN ssd_storage.capacity < 512 THEN 'SSD-Boot-HDD-Storage'
1323 ELSE 'SSD-Primary-HDD-Archive'
1324 END AS config_type
1325 FROM build b
1326 JOIN build_component bc_ssd ON b.id = bc_ssd.build_id
1327 JOIN components ssd_comp ON bc_ssd.component_id = ssd_comp.id
1328 JOIN storage ssd_storage ON ssd_storage.component_id = ssd_comp.id
1329
1330 LEFT JOIN build_component bc_hdd ON b.id = bc_hdd.build_id
1331 LEFT JOIN components hdd_comp ON bc_hdd.component_id = hdd_comp.id
1332 LEFT JOIN storage hdd_storage ON hdd_storage.component_id = hdd_comp.id
1333
1334 WHERE ssd_comp.type = 'storage'
1335 AND b.is_approved = TRUE
1336 AND b.created_at >= CURRENT_DATE - INTERVAL '1 year'
1337
1338 AND (
1339 ssd_storage.type ILIKE '%nvme%'
1340 OR ssd_storage.type ILIKE '%ssd%'
1341 OR ssd_storage.type ILIKE '%m.2%'
1342 OR ssd_storage.form_factor ILIKE '%m.2%'
1343 )
1344 AND (
1345 hdd_storage.component_id IS NULL
1346 OR hdd_storage.type ILIKE '%hdd%'
1347 OR hdd_storage.form_factor ILIKE '%3.5%'
1348 )
1349),
1350 config_performance AS (
1351 SELECT
1352 sc.config_type,
1353 sc.ssd_brand,
1354 COUNT(sc.build_id) AS builds_count,
1355 AVG(sc.ssd_price + COALESCE(sc.hdd_price, 0)) AS avg_storage_cost,
1356 AVG(sc.ssd_capacity + COALESCE(sc.hdd_capacity, 0)) AS avg_total_capacity,
1357 AVG(rb.value) AS avg_build_rating,
1358 AVG((sc.ssd_price + COALESCE(sc.hdd_price, 0)) / NULLIF(sc.total_price, 0)) AS storage_cost_ratio
1359 FROM storage_configs sc
1360 LEFT JOIN rating_build rb ON sc.build_id = rb.build_id
1361 GROUP BY sc.config_type, sc.ssd_brand
1362 HAVING COUNT(sc.build_id) >= 2
1363 )
1364SELECT
1365 config_type,
1366 ssd_brand,
1367 builds_count,
1368 ROUND(CAST(avg_storage_cost AS numeric), 2) AS avg_storage_cost,
1369 ROUND(CAST(avg_total_capacity AS numeric), 0) AS avg_total_capacity_gb,
1370 ROUND(CAST(COALESCE(avg_build_rating, 0) AS numeric), 2) AS avg_build_rating,
1371 ROUND(CAST(COALESCE(storage_cost_ratio, 0) * 100 AS numeric), 1) AS storage_cost_pct,
1372 ROUND(
1373 CAST(
1374 (COALESCE(avg_build_rating, 0) / 5.0 * 40) +
1375 (avg_total_capacity / NULLIF(avg_storage_cost, 0) * 0.5) +
1376 ((1 - COALESCE(storage_cost_ratio, 0)) * 30) +
1377 (LN(CAST(builds_count + 1 AS numeric)) * 5)
1378 AS numeric),
1379 2
1380 ) AS optimization_score
1381FROM config_performance
1382ORDER BY optimization_score DESC, builds_count DESC
1383LIMIT 15;
1384$$;
1385`
1386
1387async function seed() {
1388 if (!process.env.DATABASE_URL) {
1389 throw new Error('DATABASE_URL environment variable not set');
1390 }
1391
1392 const client = new pg.Client({
1393 connectionString: process.env.DATABASE_URL,
1394 });
1395
1396 try {
1397 await client.connect();
1398
1399 console.log('Checking if database needs seeding...');
1400
1401 const result = await client.query('SELECT COUNT(*) as count FROM users');
1402 const count = parseInt(result.rows[0].count);
1403
1404 if (count === 0) {
1405 console.log('Seeding initial data...');
1406 await client.query(dataSQL);
1407 console.log('Data seeded successfully.');
1408 } else {
1409 console.log('Database already contains data, skipping data seed.');
1410 }
1411
1412 console.log('Applying Database Triggers...');
1413 await client.query(triggerSQL);
1414
1415 console.log('Applying Database Functions...');
1416 await client.query(functionSQL);
1417
1418 console.log('Database seeded successfully...');
1419 } catch (error) {
1420 console.error('Seed failed:', error);
1421 throw error;
1422 } finally {
1423 await client.end();
1424 }
1425}
1426
1427seed().catch((err) => {
1428 console.error(err);
1429 process.exit(1);
1430});
Note: See TracBrowser for help on using the repository browser.