because I got bored of customising my CV for every job
1import type { User } from "@cv/auth";
2import { PrismaService } from "@cv/system";
3import { Injectable } from "@nestjs/common";
4import { OnboardingStep } from "@/modules/onboarding/onboarding-step.decorator";
5import {
6 type OnboardingStepDefinition,
7 OnboardingStepStatus,
8} from "@/modules/onboarding/onboarding-step.interface";
9
10@Injectable()
11@OnboardingStep()
12export class ImportOnboardingStep implements OnboardingStepDefinition {
13 readonly name = "import";
14 readonly order = 1;
15 readonly dependsOn = ["ai-preference"];
16
17 constructor(private readonly prisma: PrismaService) {}
18
19 async computeStatus(user: User): Promise<OnboardingStepStatus> {
20 const [jobCount, eduCount] = await Promise.all([
21 this.prisma.userJobExperience.count({
22 where: { profile: { userId: user.id } },
23 }),
24 this.prisma.education.count({
25 where: { profile: { userId: user.id } },
26 }),
27 ]);
28
29 return jobCount > 0 || eduCount > 0
30 ? OnboardingStepStatus.COMPLETE
31 : OnboardingStepStatus.NOT_STARTED;
32 }
33}