import { BaseEntity } from "@cv/system"; import { CV } from "@/modules/cv-template/graphql/cv.type"; import { Vacancy } from "@/modules/vacancies/vacancy.entity"; export interface ApplicationStatusRelation { id: string; name: string; description: string | null; createdAt: Date; updatedAt: Date; } export class Application extends BaseEntity { userId: string; vacancy: Vacancy; cv: CV | null; coverLetter?: string; statusId: string; status: ApplicationStatusRelation; appliedAt: Date; constructor( id: string, userId: string, vacancy: Vacancy, statusId: string, status: ApplicationStatusRelation, appliedAt: Date, createdAt: Date, updatedAt: Date, cv: CV | null = null, coverLetter?: string, ) { super(id, createdAt, updatedAt); this.userId = userId; this.vacancy = vacancy; this.statusId = statusId; this.status = status; this.appliedAt = appliedAt; this.cv = cv; if (coverLetter !== undefined) { this.coverLetter = coverLetter; } } }