erDiagram
    READMODELCOURSEPROGRESS {
        SelfEnrolment Boolean
        CourseType String
        WasImported Boolean
        KeywordIds String
        SearchTextField String
        DurationType String
        PersonPhoto String
        CourseId Guid
        DepartmentName String
        JobName String
        PersonalReference String
        CoursePhoto String
        DurationValue Double
        DeptId Guid
        DurationInMinutes Double
        KeywordValues String
        CourseProgressId Guid
        ManagerId Guid
        CompletedDate Date
        IsCourseMandatory Boolean
        PersonName String
        JobId Guid
        ManagerFullName String
        CourseName String
        ParentStructureName String
        CourseStatus String
        PersonId Guid
        ProgressPercentage Int32
    }
    READMODELEVENTATTENDANCE {
        DepartmentName String
        DepartmentId Guid
        DurationValue Double
        JobTitle String
        DurationInMinutes Double
        FullName String
        PersonReferenceNumber String
        DurationType String
        ParticipationId Guid
        JobId Guid
        ManagerFullName String
        ParticipationState String
        CourseName String
        ManagerEmployeeId Guid
        SearchText String
        PersonPhoto String
        PersonId Guid
        CourseId Guid
        EventDate DateTimeOffset
    }
    COURSEEVENTSCHEDULEDETAILS {
        EventId Guid
        EventEndTime DateTimeOffset
        EventStartTime DateTimeOffset
        EventDate DateTimeOffset
    }
    RENEWALSINSIGHT {
        DepartmentName String
        Distance Int32
        IsSubDepartmentRecord Boolean
        DepartmentId Guid
        DueDate DateTimeOffset
        RenewalStatus String
        FullName String
        PersonReferenceNumber String
        SearchTextField String
        ParentStructureId Guid
        ManagerFullName String
        RenewalName String
        ManagerEmployeeId Guid
        PersonPhoto String
        DueMonth Int32
        ParentStructureName String
        CompletionDateTime DateTimeOffset
        OccupancyTitle String
        PersonId Guid
        Id Guid
        DueYear Int32
        IsMandatory Boolean
    }
    RENEWALDETAILSFORDEPARTMENT {
        RenewalName String
        Distance Int32
        PersonPhoto String
        DueMonth Int32
        DueDate DateTimeOffset
        CompletionDateTime DateTimeOffset
        FullName String
        PersonId Guid
        Id Guid
        ParentStructureNodeId Guid
        DueYear Int32
        Status String
    }
    READMODELEMPLOYEESLEARNINGRECORD {
        ItemType String
        Distance Int32
        DueDate Date
        SearchTextField String
        ManagerName String
        DurationType String
        RecordId Guid
        ItemName String
        PersonPhoto String
        DateCompleted Date
        CurrentDepartmentName String
        RecordType String
        DurationValue Double
        DurationInMinutes Double
        FullName String
        PersonReferenceNumber String
        CurrentJobName String
        ParentStructureNodeId Guid
        IsCourseMandatory Boolean
        ItemId Guid
        JobId Guid
        SortOrder Int32
        Progress Int32
        PersonId Guid
        Status String
    }
    COURSEWAITINGLIST {
        ParticipantId Guid
        ParticipationState String
        IsOpen Boolean
        Id Guid
        CreationDate DateTimeOffset
        CourseId Guid
        SpecialRequirements String
    }
    READMODELEMPLOYEESWAITINGLIST {
        DepartmentName String
        JobName String
        FutureEventId Guid
        CoursePhoto String
        PersonReferenceNumber String
        ManagerId Guid
        DateRegistered DateTimeOffset
        PersonName String
        ManagerFullName String
        CourseName String
        FutureEventStartDate DateTimeOffset
        SearchText String
        PersonPhoto String
        PastEventId Guid
        PastEventStartDate DateTimeOffset
        PersonId Guid
        CourseId Guid
    }
    EVENTWAITINGLISTACTION {
        AttendeeCapacity Int32
        EventId Guid
        Comments String
        CreationDate DateTimeOffset
        ParticipantId Guid
        ParticipationState String
        IsOpen Boolean
        RejectReasonId Guid
        ApprovalRequired Boolean
        ActionCode String
        Id Guid
        CourseId Guid
        SpecialRequirements String
    }
    LEARNINGHISTORY {
        EventId Guid
        LastName String
        PersonalReference String
        Venue String
        FullName String
        LearningHistoryOutcomes Object
        CreationDate DateTimeOffset
        CompletedDate DateTimeOffset
        FinishedState String
        ParticipantId Guid
        FirstName String
        LearningHistoryId Guid
        Online Boolean
        CourseId Guid
    }
    EVENTATTENDEELISTACTION {
        AttendeeCapacity Int32
        EventId Guid
        Comments String
        CreationDate DateTimeOffset
        RejectreasonId Guid
        ParticipantId Guid
        ParticipationState String
        IsOpen Boolean
        ApprovalRequired Boolean
        ActionCode String
        Id Guid
        CourseId Guid
        SpecialRequirements String
    }
    READMODELTIMESPENTLEARNING {
        DayOfSession DateTimeOffset
        JobId Guid
        Distance Int32
        PersonPhoto String
        TimeSpent Double
        PersonId Guid
        PersonReferenceNumber String
        Id Guid
        ParentStructureNodeId Guid
        Type String
        Status String
    }
    COURSEWAITINGLISTACTION {
        ParticipantId Guid
        ParticipationState String
        Comments String
        IsOpen Boolean
        RejectReasonId Guid
        ActionCode String
        Id Guid
        CreationDate DateTimeOffset
        CourseId Guid
        SpecialRequirements String
    }
    PLAYLIST {
        PlaylistId Guid
        SearchText String
        CreatedDate Date
        Visibility String
        ResourceCount Int32
        CreatorId Guid
        CreatorName String
        ModifiedDate Date
        CreatorPhoto String
        PlaylistName String
    }
    COURSE {
        ExpiryAlertUnit String
        QualOutcomes String
        RenewalPeriod Int32
        RequiresApproval Boolean
        Description String
        MembOutcomes String
        CreationDate DateTimeOffset
        DurationType String
        Mandatory Boolean
        OrgId Guid
        DurationDays Double
        ExpiryDate DateTimeOffset
        CompOutcomes String
        ExpiryAlertPeriod Int32
        CourseCategories Object
        Name String
        RenewalPeriodUnit String
        Categories String
        CourseId Guid
        Status String
    }
    ELEARNINGPROGRESS {
        DepartmentName String
        FullName String
        ResourceDescription String
        PersonReferenceNumber String
        ResourceName String
        Result String
        ManagerFullName String
        Score Double
        ManagerEmployeeId Guid
        PersonPhoto String
        DateStarted DateTimeOffset
        DateCompleted DateTimeOffset
        OccupancyTitle String
        PersonId Guid
        Id Guid
        TimeToComplete Int32
        ResourceType Int32
        Status String
    }
    EVENT {
        AccessibilityDetails String
        MaximumParticipants Int32
        JoiningInfo String
        TotalFailed Int32
        InternalTrainerName String
        TotalNoShow Int32
        IsOnline Boolean
        CostPerParticipant Double
        CourseEventState String
        VenuePostcode String
        OrgId Guid
        PassPercentage Double
        CourseId Guid
        CancellationDate DateTimeOffset
        MinimumParticipants Int32
        EventId Guid
        CancellationReason String
        ExternalTrainerName String
        TimeZoneId String
        EventSchedules Object
        TotalPassed Int32
        Published Boolean
        TotalCompletedEventWaiting Int32
        CreationDate DateTimeOffset
        VenueName String
        MoveParticipantsFlag Boolean
        TotalBooked Int32
        CompletionDate DateTimeOffset
        PublishedDate DateTimeOffset
        TotalCost Double
    }
    READMODELPARTICIPANTEVENTCOMPLETION {
        CurrentDepartmentName String
        DurationHour Double
        ExternalTrainerName String
        FullName String
        InternalTrainerName String
        PersonReferenceNumber String
        CostPerParticipant Double
        CurrentJobName String
        ManagerName String
        CompletedDate DateTimeOffset
        DurationDays Double
        DurationMinutes Double
        CourseName String
        EventVenue String
        PersonPhoto String
        MembershipAchieved String
        CompetencyAchieved String
        PersonId Guid
        Id Guid
        QualificationAchieved String
        CourseId Guid
        TotalBookedPlaces Int32
        IsMandatory Boolean
        TotalCost Double
    }
    LEARNINGREQUEST {
        RepliedById Guid
        Comments String
        DeliveryMethod String
        Subject String
        OutcomeId Guid
        CreationDate DateTimeOffset
        ReplyCreationDate DateTimeOffset
        OutcomeType String
        LearningObjective String
        PersonId Guid
        Id Guid
        CourseId Guid
        CategoryId Guid
        RequestStatus String
    }
    COURSEEVENTPARTICIPANTACTION {
        AttendeeCapacity Int32
        EventId Guid
        LastName String
        PersonalReference String
        Comments String
        FullName String
        CreationDate DateTimeOffset
        Type String
        ListType String
        RejectreasonId String
        ParticipantId Guid
        FirstName String
        ParticipationState String
        IsOpen Boolean
        ApprovalRequired Boolean
        ActionCode String
        Id Guid
        CourseId Guid
        SpecialRequirements String
    }
    PATHWAY {
        CurrentDepartmentName String
        PathwayStatus String
        FullName String
        PersonReferenceNumber String
        CurrentJobName String
        PathwayDueDate Date
        PathwayProgress String
        SearchTextField String
        ManagerName String
        PathwayId Guid
        PathwayName String
        PersonPhoto String
        DateCompleted DateTimeOffset
        PersonId Guid
        Id Guid
    }
    COURSEEVENTPARTICIPANT {
        ParticipantId Guid
        AttendeeCapacity Int32
        EventId Guid
        ParticipationState String
        IsOpen Boolean
        ApprovalRequired Boolean
        Id Guid
        CreationDate DateTimeOffset
        Type String
        CourseId Guid
        ListType String
        SpecialRequirements String
    }
    COMPLETEDEVENTWAITINGLIST {
        ParticipantId Guid
        AttendeeCapacity Int32
        EventId Guid
        ParticipationState String
        IsOpen Boolean
        ApprovalRequired Boolean
        Id Guid
        CreationDate DateTimeOffset
        CourseId Guid
        SpecialRequirements String
    }
    EVENTATTENDEELIST {
        AttendeeCapacity Int32
        EventId Guid
        LastName String
        PersonalReference String
        FullName String
        CreationDate DateTimeOffset
        ParticipantId Guid
        FirstName String
        ParticipationState String
        IsOpen Boolean
        ApprovalRequired Boolean
        Id Guid
        CourseId Guid
        SpecialRequirements String
    }
    READMODELDEPARTMENTAVERAGETIMESPENTLEARNING {
        AverageTimeSpent Double
        Distance Int32
        PeriodYear Int32
        PeriodMonth Int32
        Id Guid
        ParentStructureNodeId Guid
        PeriodDate DateTimeOffset
    }
    EVENTWAITINGLIST {
        ParticipantId Guid
        AttendeeCapacity Int32
        EventId Guid
        ParticipationState String
        IsOpen Boolean
        ApprovalRequired Boolean
        Id Guid
        CreationDate DateTimeOffset
        CourseId Guid
        SpecialRequirements String
    }
    Resource_Paths {
        renewalDetailsForDepartments URL
        courseEventParticipantActions URL
        eventAttendeeLists URL
        readModelDepartmentAverageTimeSpentLearnings URL
        learningHistories URL
        eventWaitingListActions URL
        eventAttendeeListActions URL
        readModelEmployeesWaitingLists URL
        renewalsInsights URL
        elearningProgresss URL
        events URL
        readModelCourseProgresss URL
        playlists URL
        CourseEventScheduleDetailss URL
        courseWaitingLists URL
        ReadModelParticipantEventCompletions URL
        courseEventParticipants URL
        courseWaitingListActions URL
        completedEventWaitingLists URL
        courses URL
        pathways URL
        learningRequests URL
        eventWaitingLists URL
        readModelEmployeesLearningRecords URL
        readModelEventAttendances URL
        ReadModelTimeSpentLearnings URL
    }
    COURSEWAITINGLIST o{--|| COURSE : Course
    EVENTWAITINGLISTACTION o{--|| COURSE : Course
    EVENTWAITINGLISTACTION o{--|| EVENT : Event
    LEARNINGHISTORY o{--|| COURSE : Course
    LEARNINGHISTORY o{--|| EVENT : Event
    EVENTATTENDEELISTACTION o{--|| COURSE : Course
    EVENTATTENDEELISTACTION o{--|| EVENT : Event
    COURSEWAITINGLISTACTION o{--|| COURSE : Course
    EVENT o{--|| COURSE : Course
    LEARNINGREQUEST o{--|| COURSE : Course
    COURSEEVENTPARTICIPANTACTION o{--|| COURSE : Course
    COURSEEVENTPARTICIPANTACTION o{--|| EVENT : Event
    COURSEEVENTPARTICIPANT o{--|| COURSE : Course
    COURSEEVENTPARTICIPANT o{--|| EVENT : Event
    COMPLETEDEVENTWAITINGLIST o{--|| COURSE : Course
    COMPLETEDEVENTWAITINGLIST o{--|| EVENT : Event
    EVENTATTENDEELIST o{--|| COURSE : Course
    EVENTATTENDEELIST o{--|| EVENT : Event
    EVENTWAITINGLIST o{--|| COURSE : Course
    EVENTWAITINGLIST o{--|| EVENT : Event