Skip to content

Commit d5e2301

Browse files
committed
Merge branch '#1533-Create-new-team-with-12-members' of https://github.com/Northeastern-Electric-Racing/FinishLine into #1533-Create-new-team-with-12-members
2 parents 082816d + 4e66bcc commit d5e2301

12 files changed

Lines changed: 455 additions & 22 deletions

File tree

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
-- CreateEnum
2+
CREATE TYPE "Material_Status" AS ENUM ('RECEIVED', 'ORDERED', 'SHIPPED', 'UNORDERED');
3+
4+
-- CreateTable
5+
CREATE TABLE "Unit" (
6+
"name" TEXT NOT NULL,
7+
8+
CONSTRAINT "Unit_pkey" PRIMARY KEY ("name")
9+
);
10+
11+
-- CreateTable
12+
CREATE TABLE "Assembly" (
13+
"assemblyId" TEXT NOT NULL,
14+
"name" TEXT NOT NULL,
15+
"pdmFileName" TEXT NOT NULL,
16+
"dateDeleted" TIMESTAMP(3),
17+
"userDeletedId" INTEGER,
18+
"dateCreated" TIMESTAMP(3) NOT NULL,
19+
"userCreatedId" INTEGER NOT NULL,
20+
"wbsElementId" INTEGER NOT NULL,
21+
22+
CONSTRAINT "Assembly_pkey" PRIMARY KEY ("assemblyId")
23+
);
24+
25+
-- CreateTable
26+
CREATE TABLE "Material" (
27+
"materialId" TEXT NOT NULL,
28+
"assembyId" TEXT,
29+
"name" TEXT NOT NULL,
30+
"wbsElementId" INTEGER NOT NULL,
31+
"dateDeleted" TIMESTAMP(3),
32+
"userDeletedId" INTEGER,
33+
"dateCreated" TIMESTAMP(3) NOT NULL,
34+
"userCreatedId" INTEGER NOT NULL,
35+
"staus" "Material_Status" NOT NULL,
36+
"materialTypeName" TEXT NOT NULL,
37+
"manufacturerName" TEXT NOT NULL,
38+
"manufacturerPartNumber" TEXT NOT NULL,
39+
"pdmFileName" TEXT,
40+
"quantity" INTEGER NOT NULL,
41+
"unitName" TEXT,
42+
"price" INTEGER NOT NULL,
43+
"subtotal" INTEGER NOT NULL,
44+
"linkUrl" TEXT NOT NULL,
45+
"notes" TEXT NOT NULL,
46+
47+
CONSTRAINT "Material_pkey" PRIMARY KEY ("materialId")
48+
);
49+
50+
-- CreateTable
51+
CREATE TABLE "Material_Type" (
52+
"name" TEXT NOT NULL,
53+
"dateCreated" TIMESTAMP(3) NOT NULL,
54+
"creatorId" INTEGER NOT NULL,
55+
56+
CONSTRAINT "Material_Type_pkey" PRIMARY KEY ("name")
57+
);
58+
59+
-- CreateTable
60+
CREATE TABLE "Manufacturer" (
61+
"name" TEXT NOT NULL,
62+
"dateCreated" TIMESTAMP(3) NOT NULL,
63+
"creatorId" INTEGER NOT NULL,
64+
65+
CONSTRAINT "Manufacturer_pkey" PRIMARY KEY ("name")
66+
);
67+
68+
-- CreateIndex
69+
CREATE UNIQUE INDEX "Assembly_name_key" ON "Assembly"("name");
70+
71+
-- CreateIndex
72+
CREATE UNIQUE INDEX "Material_name_key" ON "Material"("name");
73+
74+
-- AddForeignKey
75+
ALTER TABLE "Assembly" ADD CONSTRAINT "Assembly_userDeletedId_fkey" FOREIGN KEY ("userDeletedId") REFERENCES "User"("userId") ON DELETE SET NULL ON UPDATE CASCADE;
76+
77+
-- AddForeignKey
78+
ALTER TABLE "Assembly" ADD CONSTRAINT "Assembly_userCreatedId_fkey" FOREIGN KEY ("userCreatedId") REFERENCES "User"("userId") ON DELETE RESTRICT ON UPDATE CASCADE;
79+
80+
-- AddForeignKey
81+
ALTER TABLE "Assembly" ADD CONSTRAINT "Assembly_wbsElementId_fkey" FOREIGN KEY ("wbsElementId") REFERENCES "WBS_Element"("wbsElementId") ON DELETE RESTRICT ON UPDATE CASCADE;
82+
83+
-- AddForeignKey
84+
ALTER TABLE "Material" ADD CONSTRAINT "Material_assembyId_fkey" FOREIGN KEY ("assembyId") REFERENCES "Assembly"("assemblyId") ON DELETE SET NULL ON UPDATE CASCADE;
85+
86+
-- AddForeignKey
87+
ALTER TABLE "Material" ADD CONSTRAINT "Material_wbsElementId_fkey" FOREIGN KEY ("wbsElementId") REFERENCES "WBS_Element"("wbsElementId") ON DELETE RESTRICT ON UPDATE CASCADE;
88+
89+
-- AddForeignKey
90+
ALTER TABLE "Material" ADD CONSTRAINT "Material_userDeletedId_fkey" FOREIGN KEY ("userDeletedId") REFERENCES "User"("userId") ON DELETE SET NULL ON UPDATE CASCADE;
91+
92+
-- AddForeignKey
93+
ALTER TABLE "Material" ADD CONSTRAINT "Material_userCreatedId_fkey" FOREIGN KEY ("userCreatedId") REFERENCES "User"("userId") ON DELETE RESTRICT ON UPDATE CASCADE;
94+
95+
-- AddForeignKey
96+
ALTER TABLE "Material" ADD CONSTRAINT "Material_materialTypeName_fkey" FOREIGN KEY ("materialTypeName") REFERENCES "Material_Type"("name") ON DELETE RESTRICT ON UPDATE CASCADE;
97+
98+
-- AddForeignKey
99+
ALTER TABLE "Material" ADD CONSTRAINT "Material_manufacturerName_fkey" FOREIGN KEY ("manufacturerName") REFERENCES "Manufacturer"("name") ON DELETE RESTRICT ON UPDATE CASCADE;
100+
101+
-- AddForeignKey
102+
ALTER TABLE "Material" ADD CONSTRAINT "Material_unitName_fkey" FOREIGN KEY ("unitName") REFERENCES "Unit"("name") ON DELETE SET NULL ON UPDATE CASCADE;

src/backend/src/prisma/schema.prisma

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ model User {
110110
createdLinkTypes LinkType[] @relation(name: "linkTypeCreator")
111111
deletedReceipts Receipt[] @relation(name: "deletedReceipts")
112112
createdReceipts Receipt[] @relation(name: "receiptsCreatedBy")
113+
deletedAssemblies Assembly[] @relation(name: "assemblyDeleter")
114+
createdAssemblies Assembly[] @relation(name: "assemblyCreator")
115+
deletedMaterials Material[] @relation(name: "materialDeleter")
116+
createdMaterials Material[] @relation(name: "materialCreator")
113117
}
114118

115119
model Team {
@@ -252,6 +256,8 @@ model WBS_Element {
252256
tasks Task[]
253257
reimbursementProducts Reimbursement_Product[]
254258
links Link[] @relation(name: "links")
259+
assembies Assembly[]
260+
materials Material[]
255261
256262
@@unique([carNumber, projectNumber, workPackageNumber], name: "wbsNumber")
257263
}
@@ -451,3 +457,73 @@ model User_Secure_Settings {
451457
zipcode String
452458
phoneNumber String @unique
453459
}
460+
461+
enum Material_Status {
462+
RECEIVED
463+
ORDERED
464+
SHIPPED
465+
UNORDERED
466+
}
467+
468+
model Unit {
469+
name String @id
470+
materials Material[]
471+
}
472+
473+
model Assembly {
474+
assemblyId String @id @default(uuid())
475+
name String @unique
476+
pdmFileName String
477+
dateDeleted DateTime?
478+
userDeleted User? @relation(fields: [userDeletedId], references: [userId], name: "assemblyDeleter")
479+
userDeletedId Int?
480+
dateCreated DateTime
481+
userCreated User @relation(fields: [userCreatedId], references: [userId], name: "assemblyCreator")
482+
userCreatedId Int
483+
wbsElement WBS_Element @relation(fields: [wbsElementId], references: [wbsElementId])
484+
wbsElementId Int
485+
materials Material[]
486+
}
487+
488+
model Material {
489+
materialId String @id @default(uuid())
490+
assemby Assembly? @relation(fields: [assembyId], references: [assemblyId])
491+
assembyId String?
492+
name String @unique
493+
wbsElement WBS_Element @relation(fields: [wbsElementId], references: [wbsElementId])
494+
wbsElementId Int
495+
dateDeleted DateTime?
496+
userDeleted User? @relation(fields: [userDeletedId], references: [userId], name: "materialDeleter")
497+
userDeletedId Int?
498+
dateCreated DateTime
499+
userCreated User @relation(fields: [userCreatedId], references: [userId], name: "materialCreator")
500+
userCreatedId Int
501+
staus Material_Status
502+
materialType Material_Type @relation(fields: [materialTypeName], references: [name])
503+
materialTypeName String
504+
manufacturer Manufacturer @relation(fields: [manufacturerName], references: [name])
505+
manufacturerName String
506+
manufacturerPartNumber String
507+
pdmFileName String?
508+
quantity Int
509+
quantityUnit Unit? @relation(fields: [unitName], references: [name])
510+
unitName String?
511+
price Int
512+
subtotal Int
513+
linkUrl String
514+
notes String
515+
}
516+
517+
model Material_Type {
518+
name String @id
519+
dateCreated DateTime
520+
creatorId Int
521+
materials Material[]
522+
}
523+
524+
model Manufacturer {
525+
name String @id
526+
dateCreated DateTime
527+
creatorId Int
528+
materials Material[]
529+
}

src/backend/src/prisma/seed-data/teams.seed.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ const justiceLeague = (headId: number): Prisma.TeamCreateArgs => {
4848
};
4949
};
5050

51-
52-
5351
const plLegends = (headId: number): Prisma.TeamCreateArgs => {
5452
return {
5553
data: {
@@ -60,7 +58,6 @@ const plLegends = (headId: number): Prisma.TeamCreateArgs => {
6058
};
6159
};
6260

63-
6461
const huskies = (headId: number): Prisma.TeamCreateArgs => {
6562
return {
6663
data: {

src/backend/src/prisma/seed-data/users.seed.ts

Lines changed: 154 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
*/
55

66
import { Prisma, Role, Theme } from '@prisma/client';
7-
import { PipelineTransformSource } from 'stream';
87

98
const thomasEmrax: Prisma.UserCreateInput = {
109
firstName: 'Thomas',
@@ -229,6 +228,70 @@ const ryanHowe: Prisma.UserCreateInput = {
229228
role: Role.HEAD
230229
};
231230

231+
const jkDobbins: Prisma.UserCreateInput = {
232+
firstName: 'J.K',
233+
lastName: 'Dobbins',
234+
email: 'Dobbins.j.k@ravens.com',
235+
googleAuthId: 'ravensRB',
236+
role: Role.MEMBER
237+
};
238+
239+
const davidOjabo: Prisma.UserCreateInput = {
240+
firstName: 'David',
241+
lastName: 'Ojabo',
242+
email: 'Ojabo.D@ravens.com',
243+
googleAuthId: 'ravensOLB',
244+
role: Role.MEMBER
245+
};
246+
247+
const markAndrews: Prisma.UserCreateInput = {
248+
firstName: 'Mark',
249+
lastName: 'Andrews',
250+
email: 'Andrews.MD@ravens.com',
251+
googleAuthId: 'ravensTE',
252+
role: Role.MEMBER
253+
};
254+
255+
const odellBeckham: Prisma.UserCreateInput = {
256+
firstName: 'Odell',
257+
lastName: 'Beckham',
258+
email: 'Beckham.O@ravens.com',
259+
googleAuthId: 'ravensWR',
260+
role: Role.MEMBER
261+
};
262+
263+
const chrisHorton: Prisma.UserCreateInput = {
264+
firstName: 'Chris',
265+
lastName: 'Horton',
266+
email: 'Horton.C@ravens.com',
267+
googleAuthId: 'ravensSTC',
268+
role: Role.LEADERSHIP
269+
};
270+
271+
const mikeMacdonald: Prisma.UserCreateInput = {
272+
firstName: 'Mike',
273+
lastName: 'Macdonald',
274+
email: 'Macdonald.M@ravens.com',
275+
googleAuthId: 'ravensDC',
276+
role: Role.MEMBER
277+
};
278+
279+
const toddMonken: Prisma.UserCreateInput = {
280+
firstName: 'Todd',
281+
lastName: 'Monken',
282+
email: 'Monken.T@ravens.com',
283+
googleAuthId: 'ravensOC',
284+
role: Role.MEMBER
285+
};
286+
287+
const stephenBisciotti: Prisma.UserCreateInput = {
288+
firstName: 'Stephen',
289+
lastName: 'Bisciotti',
290+
email: 'Bisciotti.S@ravens.com',
291+
googleAuthId: 'ravensOwner',
292+
role: Role.HEAD
293+
};
294+
232295
const anthonyBernardi: Prisma.UserCreateInput = {
233296
firstName: 'Anthony',
234297
lastName: 'Bernadi',
@@ -341,6 +404,78 @@ const dennisBergkamp: Prisma.UserCreateInput = {
341404
role: Role.MEMBER
342405
};
343406

407+
const brooksRobinson: Prisma.UserCreateInput = {
408+
firstName: 'Brooks',
409+
lastName: 'Robinson',
410+
email: 'the.brooksters@orioles.com',
411+
googleAuthId: 'fries',
412+
role: Role.HEAD
413+
};
414+
415+
const jimPalmer: Prisma.UserCreateInput = {
416+
firstName: 'Jim',
417+
lastName: 'Palmer',
418+
email: 'jimmy.palms@orioles.com',
419+
googleAuthId: 'burger',
420+
role: Role.LEADERSHIP
421+
};
422+
423+
const eddieMurray: Prisma.UserCreateInput = {
424+
firstName: 'Eddie',
425+
lastName: 'Murray',
426+
email: 'eddie.murray@orioles.com',
427+
googleAuthId: 'hotdog',
428+
role: Role.HEAD
429+
};
430+
431+
const georgeSisler: Prisma.UserCreateInput = {
432+
firstName: 'George',
433+
lastName: 'Sisler',
434+
email: 'g.sisler@orioles.com',
435+
googleAuthId: 'popcorn',
436+
role: Role.LEADERSHIP
437+
};
438+
439+
const urbanShocker: Prisma.UserCreateInput = {
440+
firstName: 'Urban',
441+
lastName: 'Shocker',
442+
email: 'shock.the.game@orioles.com',
443+
googleAuthId: 'shocking',
444+
role: Role.MEMBER
445+
};
446+
447+
const kenWilliams: Prisma.UserCreateInput = {
448+
firstName: 'Ken',
449+
lastName: 'Williams',
450+
email: 'justKen@orioles.com',
451+
googleAuthId: 'kenough',
452+
role: Role.MEMBER
453+
};
454+
455+
const boogPowell: Prisma.UserCreateInput = {
456+
firstName: 'Boog',
457+
lastName: 'Powell',
458+
email: 'boogs@orioles.com',
459+
googleAuthId: 'soda',
460+
role: Role.MEMBER
461+
};
462+
463+
const mannyMachado: Prisma.UserCreateInput = {
464+
firstName: 'Manny',
465+
lastName: 'Machado',
466+
email: 'machoman@orioles.com',
467+
googleAuthId: 'macho',
468+
role: Role.HEAD
469+
};
470+
471+
const babyDollJacobson: Prisma.UserCreateInput = {
472+
firstName: 'Baby Doll',
473+
lastName: 'Jacobson',
474+
email: 'bbydoll@orioles.com',
475+
googleAuthId: 'babes',
476+
role: Role.LEADERSHIP
477+
};
478+
344479
export const dbSeedAllUsers = {
345480
thomasEmrax,
346481
joeShmoe,
@@ -377,5 +512,22 @@ export const dbSeedAllUsers = {
377512
patrickVieira,
378513
didierDrogba,
379514
johnTerry,
380-
dennisBergkamp
515+
dennisBergkamp,
516+
jkDobbins,
517+
davidOjabo,
518+
markAndrews,
519+
odellBeckham,
520+
chrisHorton,
521+
mikeMacdonald,
522+
toddMonken,
523+
stephenBisciotti,
524+
brooksRobinson,
525+
jimPalmer,
526+
eddieMurray,
527+
georgeSisler,
528+
urbanShocker,
529+
kenWilliams,
530+
boogPowell,
531+
mannyMachado,
532+
babyDollJacobson
381533
};

0 commit comments

Comments
 (0)