Skip to content

Commit 555aabf

Browse files
committed
#4241 Address PR comments and corrections for realistic data
1 parent 9ea1379 commit 555aabf

2 files changed

Lines changed: 124 additions & 39 deletions

File tree

src/backend/src/prisma/factories/config-data.factory.ts

Lines changed: 119 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -315,23 +315,51 @@ export const otherReimbursementReasonCreateInput = (
315315

316316
export const calendarCreateInputs = (userCreatedId: string, organizationId: string): Prisma.CalendarCreateInput[] => [
317317
{
318-
name: 'Engineering Team Calendar',
319-
description: 'Tracks all engineering team events, meetings, and deadlines.',
320-
colorHexCode: '#3498db',
318+
name: 'Design Reviews',
319+
description: 'Tracks all design review events and deadlines.',
320+
colorHexCode: '#4caf50',
321321
userCreated: connectUser(userCreatedId),
322322
organization: connectOrganization(organizationId)
323323
},
324324
{
325-
name: 'Finishline Projects Calendar',
326-
description: 'Tracks all ongoing projects currently being developed for Finishline.',
327-
colorHexCode: '#911111',
325+
name: 'Organization',
326+
description: 'Tracks all organization-wide events and meetings.',
327+
colorHexCode: '#f44336',
328328
userCreated: connectUser(userCreatedId),
329329
organization: connectOrganization(organizationId)
330330
},
331331
{
332-
name: 'Calendar Improvements Calendar',
333-
description: 'Tracks all current improvements and scheduling for the Finishline Calendar.',
334-
colorHexCode: '#bf40e6',
332+
name: 'Manufacturing',
333+
description: 'Tracks all manufacturing and bay time events.',
334+
colorHexCode: '#ff9800',
335+
userCreated: connectUser(userCreatedId),
336+
organization: connectOrganization(organizationId)
337+
},
338+
{
339+
name: 'Miscellaneous',
340+
description: 'Tracks miscellaneous events.',
341+
colorHexCode: '#2196f3',
342+
userCreated: connectUser(userCreatedId),
343+
organization: connectOrganization(organizationId)
344+
},
345+
{
346+
name: 'New Member Events',
347+
description: 'Tracks all new member onboarding events.',
348+
colorHexCode: '#5c6bc0',
349+
userCreated: connectUser(userCreatedId),
350+
organization: connectOrganization(organizationId)
351+
},
352+
{
353+
name: 'FHE Comp',
354+
description: 'Tracks all FHE competition events.',
355+
colorHexCode: '#9c27b0',
356+
userCreated: connectUser(userCreatedId),
357+
organization: connectOrganization(organizationId)
358+
},
359+
{
360+
name: 'FSAE Comp',
361+
description: 'Tracks all FSAE competition events.',
362+
colorHexCode: '#9c27b0',
335363
userCreated: connectUser(userCreatedId),
336364
organization: connectOrganization(organizationId)
337365
}
@@ -359,10 +387,29 @@ type EventTypeConfig = {
359387

360388
export const eventTypeConfigs: EventTypeConfig[] = [
361389
{
362-
name: 'Meeting',
363-
calendarNames: ['Engineering Team Calendar'],
390+
name: 'Manufacturing',
391+
calendarNames: ['Manufacturing'],
392+
requiredMembers: true,
393+
optionalMembers: true,
394+
teams: true,
395+
teamType: true,
396+
location: false,
397+
zoomLink: false,
398+
shop: true,
399+
machinery: true,
400+
workPackage: true,
401+
questionDocument: false,
402+
documents: false,
403+
description: false,
404+
onlyHeadsOrAboveForEventCreation: false,
405+
requiresConfirmation: false,
406+
sendSlackNotifications: false
407+
},
408+
{
409+
name: 'Educational',
410+
calendarNames: ['Organization'],
364411
requiredMembers: false,
365-
optionalMembers: false,
412+
optionalMembers: true,
366413
teams: true,
367414
teamType: false,
368415
location: true,
@@ -371,68 +418,106 @@ export const eventTypeConfigs: EventTypeConfig[] = [
371418
machinery: false,
372419
workPackage: false,
373420
questionDocument: false,
374-
documents: false,
421+
documents: true,
375422
description: true,
376423
onlyHeadsOrAboveForEventCreation: false,
377424
requiresConfirmation: false,
378425
sendSlackNotifications: true
379426
},
380427
{
381-
name: 'Design Review',
382-
calendarNames: ['Engineering Team Calendar'],
428+
name: 'FSAE',
429+
calendarNames: ['FSAE Comp'],
383430
requiredMembers: true,
384431
optionalMembers: true,
385432
teams: true,
386433
teamType: true,
387434
location: true,
388-
zoomLink: true,
435+
zoomLink: false,
389436
shop: false,
390437
machinery: false,
391-
workPackage: true,
392-
questionDocument: true,
438+
workPackage: false,
439+
questionDocument: false,
393440
documents: true,
394441
description: true,
395-
onlyHeadsOrAboveForEventCreation: false,
442+
onlyHeadsOrAboveForEventCreation: true,
396443
requiresConfirmation: true,
397444
sendSlackNotifications: true
398445
},
399446
{
400-
name: 'Manufacturing',
401-
calendarNames: [],
447+
name: 'FHE',
448+
calendarNames: ['FHE Comp'],
402449
requiredMembers: true,
403450
optionalMembers: true,
404451
teams: true,
405452
teamType: true,
453+
location: true,
454+
zoomLink: false,
455+
shop: false,
456+
machinery: false,
457+
workPackage: false,
458+
questionDocument: false,
459+
documents: true,
460+
description: true,
461+
onlyHeadsOrAboveForEventCreation: true,
462+
requiresConfirmation: true,
463+
sendSlackNotifications: true
464+
},
465+
{
466+
name: 'Misc. Event (When2Meet)',
467+
calendarNames: ['Miscellaneous'],
468+
requiredMembers: true,
469+
optionalMembers: true,
470+
teams: true,
471+
teamType: false,
406472
location: false,
407473
zoomLink: false,
408-
shop: true,
409-
machinery: true,
410-
workPackage: true,
474+
shop: false,
475+
machinery: false,
476+
workPackage: false,
411477
questionDocument: false,
412478
documents: false,
413-
description: false,
479+
description: true,
414480
onlyHeadsOrAboveForEventCreation: false,
415-
requiresConfirmation: false,
416-
sendSlackNotifications: false
481+
requiresConfirmation: true,
482+
sendSlackNotifications: true
417483
},
418484
{
419-
name: 'Bay Time',
420-
calendarNames: [],
421-
requiredMembers: true,
485+
name: 'Deadline/Heads Up',
486+
calendarNames: ['Organization'],
487+
requiredMembers: false,
422488
optionalMembers: false,
423-
teams: false,
489+
teams: true,
424490
teamType: false,
425491
location: false,
426492
zoomLink: false,
427493
shop: false,
428-
machinery: true,
494+
machinery: false,
495+
workPackage: true,
496+
questionDocument: false,
497+
documents: false,
498+
description: true,
499+
onlyHeadsOrAboveForEventCreation: false,
500+
requiresConfirmation: false,
501+
sendSlackNotifications: true
502+
},
503+
{
504+
name: 'Misc. Event (Standard)',
505+
calendarNames: ['Miscellaneous'],
506+
requiredMembers: false,
507+
optionalMembers: true,
508+
teams: true,
509+
teamType: false,
510+
location: true,
511+
zoomLink: true,
512+
shop: false,
513+
machinery: false,
429514
workPackage: false,
430515
questionDocument: false,
431516
documents: false,
432-
description: false,
517+
description: true,
433518
onlyHeadsOrAboveForEventCreation: false,
434519
requiresConfirmation: false,
435-
sendSlackNotifications: false
520+
sendSlackNotifications: true
436521
}
437522
];
438523

src/backend/src/prisma/seed/scheduling.process.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import { availabilityCreateInput, scheduleSettingsCreateInput } from '../factori
77

88
type SchedulingInput = OrganizationOutput & UsersOutput & ConfigDataOutput;
99

10+
const SEED_START_DATE = new Date('2025-01-01T00:00:00.000Z');
11+
1012
export type SchedulingOutput = {
1113
scheduleSettings: Schedule_Settings[];
1214
availabilities: Availability[];
@@ -17,10 +19,8 @@ export class SchedulingProcess extends SeedProcess<SchedulingInput, SchedulingOu
1719
return [OrganizationProcess, UsersProcess];
1820
}
1921

20-
async run({ appAdmins, admins, heads, leadership }: SchedulingInput): Promise<SchedulingOutput> {
21-
const eligibleUsers = [...appAdmins, ...admins, ...heads, ...leadership];
22-
23-
const seedStartDate = new Date();
22+
async run({ members, appAdmins, admins, heads, leadership }: SchedulingInput): Promise<SchedulingOutput> {
23+
const eligibleUsers = [...appAdmins, ...admins, ...heads, ...leadership, ...members];
2424

2525
const scheduleSettings = await Promise.all(
2626
eligibleUsers.map((user) =>
@@ -33,7 +33,7 @@ export class SchedulingProcess extends SeedProcess<SchedulingInput, SchedulingOu
3333
const availabilities = await Promise.all(
3434
scheduleSettings.flatMap((settings) =>
3535
Array.from({ length: 7 }, (_, i) => {
36-
const date = new Date(seedStartDate);
36+
const date = new Date(SEED_START_DATE);
3737
date.setDate(date.getDate() + i);
3838
return this.prisma.availability.create({
3939
data: availabilityCreateInput(this.faker, settings.drScheduleSettingsId, date)

0 commit comments

Comments
 (0)