erDiagram
    APPLICANT {
        Forename String
        EmailAddress String
        ApplicantType Enum
        LastModifiedDate DateTimeOffset
        Surname String
        PersonReferenceNumber String
        Id Guid
        PersonalNumber String
    }
    EQUALITYDIVERSITYINCLUSIONANSWER {
        ResponseType String
        ExternalResourceId Guid
        ResponseDescription String
        CampaignId Guid
        PreviousStageDescription String
        Id Guid
        CurrentStageDescription String
        DateSubmitted DateTimeOffset
    }
    APPLICATION {
        ThirdPartyApplicantSource String
        ApplicantSource String
        Campaignid Guid
        PreviousStageDescription String
        PreviousStateId Guid
        Id Guid
        CurrentStateId Guid
        Applicantid Guid
        CreationDate DateTimeOffset
        CurrentStageDescription String
    }
    APPLICANTPHOTO {
        PhotoUrl String
        ImageId Guid
        Id Guid
        Applicantid Guid
    }
    INTERVIEW {
        VenueAccessibilityDetails String
        ApplicationStageId Guid
        StageDescription String
        DurationInMinutes String
        InterviewDate DateTimeOffset
        VenueDetails String
        Id Guid
        CreationDate DateTimeOffset
        VenuePostcode String
        VenueAddress String
        InterviewerNames String
    }
    APPLICATIONSTATE {
        CurrentStage String
        InterviewDate DateTimeOffset
        NextStageChangeReasonDescription String
        Id Guid
        NextStageDescription String
        ApplicationId Guid
        CreationDate DateTimeOffset
        CurrentStageChangeReasonDescription String
        DaysAtStage Int32
        NextStageDate DateTimeOffset
        CurrentStageDescription String
        NextStage String
    }
    CAMPAIGN {
        AdvertMessage String
        Benefits String
        AverageTimeAt1stInterviewStage Double
        AverageTimeAt2ndInterviewStage Double
        EndDate DateTimeOffset
        VacanciesJobTitles String
        AverageTimeAtApplicantStage Double
        Title String
        SalaryDescription String
        Reference String
        AppliedApplicantsCount Int32
        AverageTimeAtOfferAcceptedStage Double
        VacanciesManagerNames String
        VacanciesDepartments String
        Id Guid
        AverageTimeAtOfferStage Double
        DraftDate DateTimeOffset
        MaximumSalary Decimal
        AdvertTitle String
        AppointedApplicantsNames String
        Published Boolean
        ThirdPartyServicesEnabled Boolean
        InternalOnly Boolean
        MinimumSalary Decimal
        AppointedApplicantsCount Int32
        Location String
        VacanciesJobReferences String
        PublishedDate DateTimeOffset
        CampaignOwnerNames String
        StartDate DateTimeOffset
        Status String
    }
    APPLICATIONWITHDRAWREASON {
        OtherReason String
        WithdrawReason String
        WithdrawnDate DateTimeOffset
        Id Guid
        ApplicationId Guid
    }
    APPOINTEDAPPLICATION {
        CurrentStage String
        VacancyDepartmentName String
        VacancyLineManagerName String
        CampaignId Guid
        CampaignTitle String
        VacancyJobReference String
        AppointedDate DateTimeOffset
        ApplicantName String
        DaysFromCampaignPublished Int32
        VacancyStartDate DateTimeOffset
        VacancyJobTitle String
        AppointedJobStartDate DateTimeOffset
        CampaignReference String
        VacancyJobId Guid
        CampaignFirstPublishDate DateTimeOffset
        OfferAcknowledgedDate DateTimeOffset
        CampaignPublishDate DateTimeOffset
        VacancyLineManagerId Guid
        ApplicationId Guid
        VacancyEndDate DateTimeOffset
        OfferAcceptedDate DateTimeOffset
        VacancyDepartmentId Guid
        CampaignStartDate DateTimeOffset
    }
    APPLICATIONPACKAGE {
        Benefits String
        RequiresSignature Boolean
        JobTitle String
        Salary Decimal
        Type String
        ProbationPeriod Int32
        AcceptedByApplicant Boolean
        ProposedStartDate DateTimeOffset
        ProbationPeriodDurationUnit String
        Currency String
        Id Guid
        ConfirmedStartDate DateTimeOffset
        Department String
        ApprovalStatus String
        ContractualHours Double
        Manager String
        LastModifiedDate DateTimeOffset
        ProratedSalary Double
        Basis String
        JobReference String
        RejectedDate DateTimeOffset
        SignedApplicantDate DateTimeOffset
        NoticePeriod Int32
        RejectedReason String
        NoticePeriodDurationUnit String
        SalaryFrequency String
        SignedByApplicant Boolean
        ApplicationId Guid
        OfferAcceptedDate DateTimeOffset
    }
    Resource_Paths {
        applicationpackages URL
        applicationstates URL
        applications URL
        equalitydiversityinclusionanswers URL
        interviews URL
        applicationwithdrawreasons URL
        appointedapplications URL
        applicants URL
        applicantPhotos URL
        campaigns URL
    }
    APPLICANT o{--|| APPLICANTPHOTO : Photo
    EQUALITYDIVERSITYINCLUSIONANSWER o{--|| CAMPAIGN : Campaign
    APPLICATION o{--|| APPOINTEDAPPLICATION : AppointedApplication
    APPLICATION o{--|| APPLICATIONPACKAGE : PackageOffered
    APPLICATION o{--|| APPLICATIONWITHDRAWREASON : WithdrawReason
    APPLICATION o{--|| CAMPAIGN : Campaign
    APPLICATION o{--|| APPLICATIONSTATE : CurrentState
    APPLICATION o{--|| APPLICANT : Applicant
    APPLICATION o{--|| APPLICATIONSTATE : PreviousState
    APPLICANTPHOTO o{--|| APPLICANT : Applicant
    INTERVIEW o{--|| APPLICATIONSTATE : ApplicationStateView
    APPLICATIONSTATE o{--|| APPLICATION : Application
    APPLICATIONSTATE o{--|| INTERVIEW : Interview
    APPLICATIONWITHDRAWREASON o{--|| APPLICATION : Application
    APPOINTEDAPPLICATION o{--|| APPLICATION : Application
    APPLICATIONPACKAGE o{--|| APPLICATION : Application