source: database/drizzle/schema/relations.ts@ 5750945

main
Last change on this file since 5750945 was ee1fa4e, checked in by Tome <gjorgievtome@…>, 7 months ago

Fix typos

  • Property mode set to 100644
File size: 9.3 KB
Line 
1import { relations } from "drizzle-orm";
2
3import {
4 componentsTable,
5 CPUTable,
6 GPUTable,
7 memoryTable,
8 powerSupplyTable,
9 pcCasesTable,
10 caseStorageFormFactorsTable,
11 casePsFormFactorsTable,
12 caseMoboFormFactorsTable,
13 coolersTable,
14 coolerCPUSocketsTable,
15 motherboardsTable,
16 storageTable,
17 memoryCardsTable,
18 opticalDrivesTable,
19 soundCardsTable,
20 cablesTable,
21 networkAdaptersTable,
22 networkCardsTable,
23
24} from "./components";
25
26import {
27 buildsTable,
28 buildComponentsTable,
29 favoriteBuildsTable,
30 ratingBuildsTable,
31 reviewsTable
32} from "./builds"
33
34import {
35 usersTable,
36 adminsTable,
37 suggestionsTable
38} from "./users";
39
40export const usersRelations = relations(usersTable, ({ many, one }) => ({
41 builds: many(buildsTable),
42 reviews: many(reviewsTable),
43 favorites: many(favoriteBuildsTable),
44 ratings: many(ratingBuildsTable),
45 suggestions: many(suggestionsTable),
46 adminProfile: one(adminsTable, {
47 fields: [usersTable.id],
48 references: [adminsTable.userId],
49 })
50}));
51
52export const adminsRelations = relations(adminsTable, ({ one, many }) => ({
53 user: one(usersTable, {
54 fields: [adminsTable.userId],
55 references: [usersTable.id],
56 }),
57 moderatedSuggestions: many(suggestionsTable),
58}));
59
60export const suggestionsRelations = relations(suggestionsTable, ({ one }) => ({
61 author: one(usersTable, {
62 fields: [suggestionsTable.userId],
63 references: [usersTable.id],
64 }),
65 moderator: one(adminsTable, {
66 fields: [suggestionsTable.adminId],
67 references: [adminsTable.userId],
68 }),
69}));
70
71export const buildRelations = relations(buildsTable, ({ one, many }) => ({
72 owner: one(usersTable, {
73 fields: [buildsTable.userId],
74 references: [usersTable.id],
75 }),
76 buildComponents: many(buildComponentsTable),
77 favorites: many(favoriteBuildsTable),
78 ratings: many(ratingBuildsTable),
79 reviews: many(reviewsTable),
80}));
81
82export const buildComponentRelations = relations(buildComponentsTable, ({ one }) => ({
83 build: one(buildsTable, {
84 fields: [buildComponentsTable.buildId],
85 references: [buildsTable.id],
86 }),
87 component: one(componentsTable, {
88 fields: [buildComponentsTable.componentId],
89 references: [componentsTable.id],
90 }),
91}));
92
93export const favoriteBuildRelations = relations(favoriteBuildsTable, ({ one }) => ({
94 user: one(usersTable, {
95 fields: [favoriteBuildsTable.userId],
96 references: [usersTable.id],
97 }),
98 build: one(buildsTable, {
99 fields: [favoriteBuildsTable.buildId],
100 references: [buildsTable.id],
101 }),
102}));
103
104export const ratingBuildRelations = relations(ratingBuildsTable, ({ one }) => ({
105 user: one(usersTable, {
106 fields: [ratingBuildsTable.userId],
107 references: [usersTable.id],
108 }),
109 build: one(buildsTable, {
110 fields: [ratingBuildsTable.buildId],
111 references: [buildsTable.id],
112 }),
113}));
114
115export const reviewRelations = relations(reviewsTable, ({ one }) => ({
116 author: one(usersTable, {
117 fields: [reviewsTable.userId],
118 references: [usersTable.id],
119 }),
120 build: one(buildsTable, {
121 fields: [reviewsTable.buildId],
122 references: [buildsTable.id],
123 }),
124}));
125
126export const componentsRelations = relations(componentsTable, ({ many, one }) => ({
127 buildComponents: many(buildComponentsTable),
128
129 cpu: one(CPUTable, {
130 fields: [componentsTable.id],
131 references: [CPUTable.componentId]
132 }),
133 gpu: one(GPUTable, {
134 fields: [componentsTable.id],
135 references: [GPUTable.componentId]
136 }),
137 memory: one(memoryTable, {
138 fields: [componentsTable.id],
139 references: [memoryTable.componentId]
140 }),
141 powerSupply: one(powerSupplyTable, {
142 fields: [componentsTable.id],
143 references: [powerSupplyTable.componentId]
144 }),
145 pcCase: one(pcCasesTable, {
146 fields: [componentsTable.id],
147 references: [pcCasesTable.componentId]
148 }),
149 cooler: one(coolersTable, {
150 fields: [componentsTable.id],
151 references: [coolersTable.componentId]
152 }),
153 motherboard: one(motherboardsTable, {
154 fields: [componentsTable.id],
155 references: [motherboardsTable.componentId]
156 }),
157 storage: one(storageTable, {
158 fields: [componentsTable.id],
159 references: [storageTable.componentId]
160 }),
161 memoryCard: one(memoryCardsTable, {
162 fields: [componentsTable.id],
163 references: [memoryCardsTable.componentId]
164 }),
165 opticalDrive: one(opticalDrivesTable, {
166 fields: [componentsTable.id],
167 references: [opticalDrivesTable.componentId]
168 }),
169 soundCard: one(soundCardsTable, {
170 fields: [componentsTable.id],
171 references: [soundCardsTable.componentId]
172 }),
173 cables: one(cablesTable, {
174 fields: [componentsTable.id],
175 references: [cablesTable.componentId]
176 }),
177 networkAdapter: one(networkAdaptersTable, {
178 fields: [componentsTable.id],
179 references: [networkAdaptersTable.componentId]
180 }),
181 networkCard: one(networkCardsTable, {
182 fields: [componentsTable.id],
183 references: [networkCardsTable.componentId]
184 }),
185}));
186
187export const cpuRelations = relations(CPUTable, ({ one }) => ({
188 component: one(componentsTable, {
189 fields: [CPUTable.componentId],
190 references: [componentsTable.id],
191 }),
192}));
193
194export const gpuRelations = relations(GPUTable, ({ one }) => ({
195 component: one(componentsTable, {
196 fields: [GPUTable.componentId],
197 references: [componentsTable.id],
198 }),
199}));
200
201export const memoryRelations = relations(memoryTable, ({ one }) => ({
202 component: one(componentsTable, {
203 fields: [memoryTable.componentId],
204 references: [componentsTable.id],
205 }),
206}));
207
208export const powerSupplyRelations = relations(powerSupplyTable, ({ one }) => ({
209 component: one(componentsTable, {
210 fields: [powerSupplyTable.componentId],
211 references: [componentsTable.id],
212 }),
213}));
214
215export const motherboardRelations = relations(motherboardsTable, ({ one }) => ({
216 component: one(componentsTable, {
217 fields: [motherboardsTable.componentId],
218 references: [componentsTable.id],
219 }),
220}));
221
222export const storageRelations = relations(storageTable, ({ one }) => ({
223 component: one(componentsTable, {
224 fields: [storageTable.componentId],
225 references: [componentsTable.id],
226 }),
227}));
228
229export const memoryCardRelations = relations(memoryCardsTable, ({ one }) => ({
230 component: one(componentsTable, {
231 fields: [memoryCardsTable.componentId],
232 references: [componentsTable.id],
233 }),
234}));
235
236export const opticalDriveRelations = relations(opticalDrivesTable, ({ one }) => ({
237 component: one(componentsTable, {
238 fields: [opticalDrivesTable.componentId],
239 references: [componentsTable.id],
240 }),
241}));
242
243export const cablesRelations = relations(cablesTable, ({ one }) => ({
244 component: one(componentsTable, {
245 fields: [cablesTable.componentId],
246 references: [componentsTable.id],
247 }),
248}));
249
250export const networkAdapterRelations = relations(networkAdaptersTable, ({ one }) => ({
251 component: one(componentsTable, {
252 fields: [networkAdaptersTable.componentId],
253 references: [componentsTable.id],
254 }),
255}));
256
257export const networkCardRelations = relations(networkCardsTable, ({ one }) => ({
258 component: one(componentsTable, {
259 fields: [networkCardsTable.componentId],
260 references: [componentsTable.id],
261 }),
262}));
263
264export const pcCaseRelations = relations(pcCasesTable, ({ one, many }) => ({
265 component: one(componentsTable, {
266 fields: [pcCasesTable.componentId],
267 references: [componentsTable.id],
268 }),
269 storageFormFactors: many(caseStorageFormFactorsTable),
270 psFormFactors: many(casePsFormFactorsTable),
271 moboFormFactors: many(caseMoboFormFactorsTable),
272}));
273
274export const caseStorageFormFactorsRelations = relations(caseStorageFormFactorsTable, ({ one }) => ({
275 pcCase: one(pcCasesTable, {
276 fields: [caseStorageFormFactorsTable.caseId],
277 references: [pcCasesTable.componentId],
278 }),
279}));
280
281export const casePsFormFactorsRelations = relations(casePsFormFactorsTable, ({ one }) => ({
282 pcCase: one(pcCasesTable, {
283 fields: [casePsFormFactorsTable.caseId],
284 references: [pcCasesTable.componentId],
285 }),
286}));
287
288export const caseMoboFormFactorsRelations = relations(caseMoboFormFactorsTable, ({ one }) => ({
289 pcCase: one(pcCasesTable, {
290 fields: [caseMoboFormFactorsTable.caseId],
291 references: [pcCasesTable.componentId],
292 }),
293}));
294
295export const coolerRelations = relations(coolersTable, ({ one, many }) => ({
296 component: one(componentsTable, {
297 fields: [coolersTable.componentId],
298 references: [componentsTable.id],
299 }),
300 cpuSockets: many(coolerCPUSocketsTable),
301}));
302
303export const coolerCpuSocketsRelations = relations(coolerCPUSocketsTable, ({ one }) => ({
304 cooler: one(coolersTable, {
305 fields: [coolerCPUSocketsTable.coolerId],
306 references: [coolersTable.componentId],
307 }),
308}));
309
310export const soundCardRelations = relations(soundCardsTable, ({ one, many }) => ({
311 component: one(componentsTable, {
312 fields: [soundCardsTable.componentId],
313 references: [componentsTable.id],
314 }),
315}));
Note: See TracBrowser for help on using the repository browser.