source: database/drizzle/util/seed.ts@ 1d7e8fe

main
Last change on this file since 1d7e8fe was 1d7e8fe, checked in by Mihail <mihail2.naumov@…>, 4 months ago

Modified data load

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