@startuml
  ' avoid problems with angled crows feet
  skinparam linetype ortho
  skinparam class {
    BorderColor #336A90
    BorderThickness 2
  }
  ' Classes
  class ActivityRecipients{
 * id : integer : <generated>
 grantId : integer : REFERENCES "Grants".id
 otherEntityId : integer : REFERENCES "OtherEntities".id
 * activityReportId : integer : REFERENCES "ActivityReports".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
}

class ActivityReportApprovers{
 * id : integer : <generated>
 * activityReportId : integer : REFERENCES "ActivityReports".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
 deletedAt : timestamp with time zone
 note : text
 status : enum
}

class ActivityReportCollaborators{
 * id : integer : <generated>
 * activityReportId : integer : REFERENCES "ActivityReports".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
}

class ActivityReportFiles{
 * id : integer : <generated>
 * activityReportId : integer : REFERENCES "ActivityReports".id
 * fileId : integer : REFERENCES "Files".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class ActivityReportGoalFieldResponses{
 * id : integer : <generated>
 * activityReportGoalId : integer : REFERENCES "ActivityReportGoals".id
 * goalTemplateFieldPromptId : integer : REFERENCES "GoalTemplateFieldPrompts".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 response : text[]
}

class ActivityReportGoalResources{
 * id : integer : <generated>
 * activityReportGoalId : integer : REFERENCES "ActivityReportGoals".id
 * resourceId : integer : REFERENCES "Resources".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 sourceFields : enum[]
}

enum enum_ActivityReportGoalResources_sourceFields {
 name
 resource
 timeframe
}

enum_ActivityReportGoalResources_sourceFields <|-- ActivityReportGoalResources

class ActivityReportGoals{
 * id : integer : <generated>
 originalGoalId : integer : REFERENCES "Goals".id
 * activityReportId : integer : REFERENCES "ActivityReports".id
 * goalId : integer : REFERENCES "Goals".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 closeSuspendContext : text
 closeSuspendReason : enum
 endDate : date
 isActivelyEdited : boolean : false
 isRttapa : enum
 name : text
 source : enum
 status : varchar(255)
 timeframe : text
}

class ActivityReportObjectiveCitations{
 * id : integer : <generated>
 * activityReportObjectiveId : integer
 * citation : text
 * createdAt : timestamp with time zone : now()
 * monitoringReferences : jsonb
 * updatedAt : timestamp with time zone : now()
}

class ActivityReportObjectiveCourses{
 * id : integer : <generated>
 * activityReportObjectiveId : integer : REFERENCES "ActivityReportObjectives".id
 * courseId : integer : REFERENCES "Courses".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
}

class ActivityReportObjectiveFiles{
 * id : integer : <generated>
 * activityReportObjectiveId : integer : REFERENCES "ActivityReportObjectives".id
 * fileId : integer : REFERENCES "Files".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class ActivityReportObjectiveResources{
 * id : integer : <generated>
 * activityReportObjectiveId : integer : REFERENCES "ActivityReportObjectives".id
 * resourceId : integer : REFERENCES "Resources".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 sourceFields : enum[]
}

enum enum_ActivityReportObjectiveResources_sourceFields {
 resource
 title
 ttaProvided
}

enum_ActivityReportObjectiveResources_sourceFields <|-- ActivityReportObjectiveResources

class ActivityReportObjectiveTopics{
 * id : integer : <generated>
 * activityReportObjectiveId : integer : REFERENCES "ActivityReportObjectives".id
 * topicId : integer : REFERENCES "Topics".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class ActivityReportObjectives{
 * id : integer : <generated>
 originalObjectiveId : integer : REFERENCES "Objectives".id
 * activityReportId : integer : REFERENCES "ActivityReports".id
 * objectiveId : integer : REFERENCES "Objectives".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
 arOrder : integer : 1
 closeSuspendContext : text
 closeSuspendReason : enum
 objectiveCreatedHere : boolean
 status : varchar(255)
 supportType : enum
 title : text
 ttaProvided : text
}

class ActivityReportResources{
 * id : integer : <generated>
 * activityReportId : integer : REFERENCES "ActivityReports".id
 * resourceId : integer : REFERENCES "Resources".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 sourceFields : enum[]
}

enum enum_ActivityReportResources_sourceFields {
 ECLKCResourcesUsed
 additionalNotes
 context
 nonECLKCResourcesUsed
 resource
}

enum_ActivityReportResources_sourceFields <|-- ActivityReportResources

class ActivityReports{
 * id : integer : <generated>
 lastUpdatedById : integer : REFERENCES "Users".id
 userId : integer : REFERENCES "Users".id
 * regionId : integer : REFERENCES "Regions".id
 * createdAt : timestamp with time zone : now()
 * revision : integer : 0
 * updatedAt : timestamp with time zone : now()
 * version : integer : 2
 activityReason : varchar(255)
 activityRecipientType : varchar(255)
 additionalNotes : text
 approvedAt : timestamp with time zone
 calculatedStatus : enum
 context : text
 creatorRole : enum
 deliveryMethod : varchar(255)
 duration : decimal(3,1)
 ECLKCResourcesUsed : text[]
 endDate : date
 imported : jsonb
 language : varchar(255)[]
 legacyId : varchar(255)
 nonECLKCResourcesUsed : text[]
 numberOfParticipants : integer
 numberOfParticipantsInPerson : integer
 numberOfParticipantsVirtually : integer
 pageState : json
 participants : varchar(255)[]
 programTypes : varchar(255)[]
 reason : varchar(255)[]
 requester : varchar(255)
 startDate : date
 submissionStatus : enum
 submittedDate : date
 targetPopulations : varchar(255)[]
 topics : varchar(255)[]
 ttaType : varchar(255)[]
 virtualDeliveryType : varchar(255)
}

class CollabReportActivityStates{
 * id : integer : <generated>
 * collabReportId : integer : REFERENCES "CollabReports".id
 * activityStateCode : varchar(255)
}

class CollabReportDataUsed{
 * id : integer : <generated>
 * collabReportId : integer : REFERENCES "CollabReports".id
 * collabReportDatum : enum
 collabReportDataOther : varchar(255)
}

class CollabReportGoals{
 * id : integer : <generated>
 * collabReportId : integer : REFERENCES "CollabReports".id
 * goalTemplateId : integer : REFERENCES "GoalTemplates".id
}

class CollabReportReasons{
 * id : integer : <generated>
 * collabReportId : integer : REFERENCES "CollabReports".id
 * reasonId : enum
}

class CollabReportSpecialists{
 * id : integer : <generated>
 * collabReportId : integer : REFERENCES "CollabReports".id
 * specialistId : integer : REFERENCES "Users".id
}

class CollabReportSteps{
 * id : integer : <generated>
 * collabReportId : integer : REFERENCES "CollabReports".id
 * collabStepCompleteDate : date
 * collabStepDetail : text
 * collabStepId : integer
 * collabStepPriority : smallint
}

class CollabReports{
 * id : integer : <generated>
 * conductMethod : enum
 * description : text
 * duration : smallint
 * endDate : date
 * isStateActivity : boolean : false
 * name : varchar(255)
 * startDate : date
 * status : enum
}

class CollaboratorRoles{
 * id : integer : <generated>
 * activityReportCollaboratorId : integer : REFERENCES "ActivityReportCollaborators".id
 * roleId : integer : REFERENCES "Roles".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class CollaboratorTypes{
 * id : integer : <generated>
 mapsTo : integer : REFERENCES "CollaboratorTypes".id
 * validForId : integer : REFERENCES "ValidFor".id
 * createdAt : timestamp with time zone : now()
 * name : varchar(255)
 * propagateOnMerge : boolean : true
 * updatedAt : timestamp with time zone : now()
 deletedAt : timestamp with time zone
}

class CommunicationLogFiles{
 * id : integer : <generated>
 * communicationLogId : integer : REFERENCES "CommunicationLogs".id
 * fileId : integer : REFERENCES "Files".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class CommunicationLogRecipients{
 * id : integer : <generated>
 * communicationLogId : integer : REFERENCES "CommunicationLogs".id
 * recipientId : integer : REFERENCES "Recipients".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
}

class CommunicationLogs{
 * id : integer : <generated>
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone
 * data : jsonb
 * updatedAt : timestamp with time zone
}

class Courses{
 * id : integer : <generated>
 mapsTo : integer : REFERENCES "Courses".id
 * createdAt : timestamp with time zone : now()
 * name : text
 * persistsOnUpload : boolean : false
 * updatedAt : timestamp with time zone : now()
 deletedAt : timestamp with time zone
}

class EventReportPilotNationalCenterUsers{
 * id : integer : <generated>
 * eventReportPilotId : integer : REFERENCES "EventReportPilots".id
 * nationalCenterId : integer : REFERENCES "NationalCenters".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone : now()
 * nationalCenterName : varchar(255)
 * updatedAt : timestamp with time zone : now()
 * userName : varchar(255)
}

class EventReportPilots{
 * id : integer : <generated>
 * collaboratorIds : integer[]
 * createdAt : timestamp with time zone : CURRENT_TIMESTAMP
 * data : jsonb
 * ownerId : integer
 * regionId : integer
 * updatedAt : timestamp with time zone : CURRENT_TIMESTAMP
 imported : jsonb
 pocIds : integer[]
}

class Files{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * fileSize : integer
 * key : varchar(255)
 * originalFileName : varchar(255)
 * status : enum
 * updatedAt : timestamp with time zone
}

class GoalCollaborators{
 * id : integer : <generated>
 * collaboratorTypeId : integer : REFERENCES "CollaboratorTypes".id
 * goalId : integer : REFERENCES "Goals".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
 deletedAt : timestamp with time zone
 linkBack : jsonb
}

class GoalFieldResponses{
 * id : integer : <generated>
 * goalId : integer : REFERENCES "Goals".id
 * goalTemplateFieldPromptId : integer : REFERENCES "GoalTemplateFieldPrompts".id
 * createdAt : timestamp with time zone
 * onApprovedAR : boolean
 * onAR : boolean
 * updatedAt : timestamp with time zone
 response : text[]
}

class GoalResources{
 * id : integer : <generated>
 * goalId : integer : REFERENCES "Goals".id
 * resourceId : integer : REFERENCES "Resources".id
 * createdAt : timestamp with time zone
 * onApprovedAR : boolean : false
 * onAR : boolean : false
 * updatedAt : timestamp with time zone
 sourceFields : enum[]
}

enum enum_GoalResources_sourceFields {
 name
 resource
 timeframe
}

enum_GoalResources_sourceFields <|-- GoalResources

class GoalStatusChanges{
 * id : integer : <generated>
 userId : integer : REFERENCES "Users".id
 * goalId : integer : REFERENCES "Goals".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
 context : text
 newStatus : varchar(255)
 oldStatus : varchar(255)
 performedAt : timestamp with time zone
 reason : text
 userName : varchar(255)
 userRoles : varchar(255)[]
}

class GoalTemplateFieldPrompts{
 * id : integer : <generated>
 * goalTemplateId : integer : REFERENCES "GoalTemplates".id
 * createdAt : timestamp with time zone
 * ordinal : integer
 * prompt : text
 * title : text
 * updatedAt : timestamp with time zone
 caution : text
 fieldType : enum
 hint : text
 options : text[]
 validations : json
}

class GoalTemplateObjectiveTemplates{
 * id : integer : <generated>
 * goalTemplateId : integer : REFERENCES "GoalTemplates".id
 * objectiveTemplateId : integer : REFERENCES "ObjectiveTemplates".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class GoalTemplateResources{
 * id : integer : <generated>
 * goalTemplateId : integer : REFERENCES "GoalTemplates".id
 * resourceId : integer : REFERENCES "Resources".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 sourceFields : enum[]
}

enum enum_GoalTemplateResources_sourceFields {
 name
 resource
}

enum_GoalTemplateResources_sourceFields <|-- GoalTemplateResources

class GoalTemplates{
 * id : integer : <generated>
 regionId : integer : REFERENCES "Regions".id
 * createdAt : timestamp with time zone
 * creationMethod : enum
 * hash : text
 * templateName : text
 * templateNameModifiedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
 lastUsed : timestamp with time zone
 source : varchar(255)
 standard : text
}

class Goals{
 * id : integer : <generated>
 goalTemplateId : integer : REFERENCES "GoalTemplates".id
 mapsToParentGoalId : integer : REFERENCES "Goals".id
 * grantId : integer : REFERENCES "Grants".id
 * createdAt : timestamp with time zone
 * onApprovedAR : boolean : false
 * onAR : boolean : false
 * prestandard : boolean : false
 * updatedAt : timestamp with time zone
 createdVia : enum
 deletedAt : timestamp with time zone
 endDate : date
 isFromSmartsheetTtaPlan : boolean
 isRttapa : enum
 name : text
 rtrOrder : integer : 1
 source : enum
 status : varchar(255)
 timeframe : text
}

class GrantNumberLinks{
 * id : integer : <generated>
 grantId : integer : REFERENCES "Grants".id
 * createdAt : timestamp with time zone
 * grantNumber : text
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
}

class GrantReplacementTypes{
 * id : integer : <generated>
 mapsTo : integer : REFERENCES "GrantReplacementTypes".id
 * createdAt : timestamp with time zone : now()
 * name : text
 * updatedAt : timestamp with time zone : now()
 deletedAt : timestamp with time zone
}

class GrantReplacements{
 * id : integer : <generated>
 grantReplacementTypeId : integer : REFERENCES "GrantReplacementTypes".id
 * replacedGrantId : integer : REFERENCES "Grants".id
 * replacingGrantId : integer : REFERENCES "Grants".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
 replacementDate : date
}

class Grants{
 * id : integer
 regionId : integer : REFERENCES "Regions".id
 * recipientId : integer : REFERENCES "Recipients".id
 * createdAt : timestamp with time zone : now()
 * number : varchar(255)
 * updatedAt : timestamp with time zone : now()
 annualFundingMonth : varchar(255)
 cdi : boolean : false
 deleted : boolean : false
 endDate : timestamp with time zone
 geographicRegion : varchar(255)
 geographicRegionId : integer
 granteeName : varchar(255)
 grantSpecialistEmail : varchar(255)
 grantSpecialistName : varchar(255)
 inactivationDate : timestamp with time zone
 inactivationReason : enum
 programSpecialistEmail : varchar(255)
 programSpecialistName : varchar(255)
 startDate : timestamp with time zone
 stateCode : varchar(255)
 status : varchar(255)
}

class GroupCollaborators{
 * id : integer : <generated>
 * collaboratorTypeId : integer : REFERENCES "CollaboratorTypes".id
 * groupId : integer : REFERENCES "Groups".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
 deletedAt : timestamp with time zone
 linkBack : jsonb
}

class GroupGrants{
 * id : integer : <generated>
 * grantId : integer : REFERENCES "Grants".id
 * groupId : integer : REFERENCES "Groups".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class Groups{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * name : text
 * updatedAt : timestamp with time zone
 isPublic : boolean
 sharedWith : enum
}

class ImportDataFiles{
 * id : integer : <generated>
 * importFileId : integer : REFERENCES "ImportFiles".id
 * createdAt : timestamp with time zone
 * status : enum : 'IDENTIFIED'::"enum_ImportDataFiles_status"
 * updatedAt : timestamp with time zone
 fileInfo : jsonb
 hash : text
 recordCounts : jsonb
 schema : jsonb
}

class ImportFiles{
 * id : integer : <generated>
 fileId : integer : REFERENCES "Files".id
 * importId : integer : REFERENCES "Imports".id
 * createdAt : timestamp with time zone
 * downloadAttempts : integer : 0
 * processAttempts : integer : 0
 * status : enum : 'IDENTIFIED'::"enum_ImportFiles_status"
 * updatedAt : timestamp with time zone
 ftpFileInfo : jsonb
 hash : text
}

class Imports{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * definitions : jsonb
 * enabled : boolean : false
 * ftpSettings : jsonb
 * name : text
 * schedule : text
 * updatedAt : timestamp with time zone
 fileMask : text
 path : text
 postProcessingActions : jsonb
}

class MailerLogs{
 * id : bigint : <generated>
 * action : enum
 * activityReports : integer[]
 * createdAt : timestamp with time zone : now()
 * emailTo : varchar(255)[]
 * jobId : varchar(255)
 * subject : varchar(255)
 * updatedAt : timestamp with time zone : now()
 result : json
 success : boolean
}

class MaintenanceLogs{
 * id : bigint : <generated>
 triggeredById : bigint : REFERENCES "MaintenanceLogs".id
 * category : enum
 * createdAt : timestamp with time zone
 * data : json
 * type : enum
 * updatedAt : timestamp with time zone
 isSuccessful : boolean
}

class MonitoringClassSummaries{
 * id : integer : <generated>
 * grantNumber : text : REFERENCES "GrantNumberLinks"."grantNumber"
 * reviewId : text : REFERENCES "MonitoringReviewLinks"."reviewId"
 * createdAt : timestamp with time zone
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 classroomOrganization : decimal(5,4)
 deletedAt : timestamp with time zone
 emotionalSupport : decimal(5,4)
 hash : text
 instructionalSupport : decimal(5,4)
 reportDeliveryDate : timestamp with time zone
 sourceDeletedAt : timestamp with time zone
}

class MonitoringFindingGrants{
 * id : integer : <generated>
 * findingId : text : REFERENCES "MonitoringFindingLinks"."findingId"
 * granteeId : text : REFERENCES "MonitoringGranteeLinks"."granteeId"
 * statusId : integer : REFERENCES "MonitoringFindingStatusLinks"."statusId"
 * createdAt : timestamp with time zone
 * findingType : text
 * hash : text
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 closedDate : timestamp with time zone
 correctionDeadLine : timestamp with time zone
 deletedAt : timestamp with time zone
 reportedDate : timestamp with time zone
 source : text
 sourceDeletedAt : timestamp with time zone
}

class MonitoringFindingHistories{
 * id : integer : <generated>
 findingId : text : REFERENCES "MonitoringFindingLinks"."findingId"
 statusId : integer : REFERENCES "MonitoringFindingHistoryStatusLinks"."statusId"
 * reviewId : text : REFERENCES "MonitoringReviewLinks"."reviewId"
 * createdAt : timestamp with time zone
 * findingHistoryId : text
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
 determination : text
 hash : text
 narrative : text
 ordinal : integer
 sourceDeletedAt : timestamp with time zone
}

class MonitoringFindingHistoryStatusLinks{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * statusId : integer
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
}

class MonitoringFindingHistoryStatuses{
 * id : integer : <generated>
 * statusId : integer : REFERENCES "MonitoringFindingHistoryStatusLinks"."statusId"
 * createdAt : timestamp with time zone
 * name : text
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
 sourceDeletedAt : timestamp with time zone
}

class MonitoringFindingLinks{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * findingId : text
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
}

class MonitoringFindingStandards{
 * id : integer : <generated>
 * findingId : text : REFERENCES "MonitoringFindingLinks"."findingId"
 * standardId : integer : REFERENCES "MonitoringStandardLinks"."standardId"
 * createdAt : timestamp with time zone
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
 sourceDeletedAt : timestamp with time zone
}

class MonitoringFindingStatusLinks{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * statusId : integer
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
}

class MonitoringFindingStatuses{
 * id : integer : <generated>
 * statusId : integer : REFERENCES "MonitoringFindingStatusLinks"."statusId"
 * createdAt : timestamp with time zone
 * name : text
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
 sourceDeletedAt : timestamp with time zone
}

class MonitoringFindings{
 * id : integer : <generated>
 * findingId : text : REFERENCES "MonitoringFindingLinks"."findingId"
 * statusId : integer : REFERENCES "MonitoringFindingStatusLinks"."statusId"
 * createdAt : timestamp with time zone
 * findingType : text
 * hash : text
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 closedDate : timestamp with time zone
 correctionDeadLine : timestamp with time zone
 deletedAt : timestamp with time zone
 reportedDate : timestamp with time zone
 source : text
 sourceDeletedAt : timestamp with time zone
}

class MonitoringGranteeLinks{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * granteeId : text
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
}

class MonitoringReviewGrantees{
 * id : integer : <generated>
 * granteeId : text : REFERENCES "MonitoringGranteeLinks"."granteeId"
 * grantNumber : text : REFERENCES "GrantNumberLinks"."grantNumber"
 * reviewId : text : REFERENCES "MonitoringReviewLinks"."reviewId"
 * createdAt : timestamp with time zone
 * createTime : timestamp with time zone
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updateBy : text
 * updatedAt : timestamp with time zone
 * updateTime : timestamp with time zone
 deletedAt : timestamp with time zone
 sourceDeletedAt : timestamp with time zone
}

class MonitoringReviewLinks{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * reviewId : text
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
}

class MonitoringReviewStatusLinks{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * statusId : integer
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
}

class MonitoringReviewStatuses{
 * id : integer : <generated>
 * statusId : integer : REFERENCES "MonitoringReviewStatusLinks"."statusId"
 * createdAt : timestamp with time zone
 * name : text
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
 sourceDeletedAt : timestamp with time zone
}

class MonitoringReviews{
 * id : integer : <generated>
 * reviewId : text : REFERENCES "MonitoringReviewLinks"."reviewId"
 * statusId : integer : REFERENCES "MonitoringReviewStatusLinks"."statusId"
 * contentId : text
 * createdAt : timestamp with time zone
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
 endDate : date
 hash : text
 name : text
 outcome : text
 reportAttachmentId : text
 reportDeliveryDate : timestamp with time zone
 reviewType : text
 sourceDeletedAt : timestamp with time zone
 startDate : date
}

class MonitoringStandardLinks{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * standardId : integer
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
}

class MonitoringStandards{
 * id : integer : <generated>
 * standardId : integer : REFERENCES "MonitoringStandardLinks"."standardId"
 * citable : integer
 * contentId : text
 * createdAt : timestamp with time zone
 * hash : text
 * sourceCreatedAt : timestamp with time zone
 * sourceUpdatedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 citation : text
 deletedAt : timestamp with time zone
 guidance : text
 sourceDeletedAt : timestamp with time zone
 text : text
}

class NationalCenterUsers{
 * id : integer : <generated>
 * nationalCenterId : integer : REFERENCES "NationalCenters".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class NationalCenters{
 * id : integer : <generated>
 mapsTo : integer : REFERENCES "NationalCenters".id
 * createdAt : timestamp with time zone
 * name : text
 * updatedAt : timestamp with time zone
}

class NextStepResources{
 * id : integer : <generated>
 * nextStepId : integer : REFERENCES "NextSteps".id
 * resourceId : integer : REFERENCES "Resources".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 sourceFields : enum[]
}

enum enum_NextStepResources_sourceFields {
 note
 resource
}

enum_NextStepResources_sourceFields <|-- NextStepResources

class NextSteps{
 * id : integer : <generated>
 * activityReportId : integer : REFERENCES "ActivityReports".id
 * createdAt : timestamp with time zone
 * note : text
 * noteType : enum
 * updatedAt : timestamp with time zone
 completeDate : date
}

class ObjectiveCollaborators{
 * id : integer : <generated>
 * collaboratorTypeId : integer : REFERENCES "CollaboratorTypes".id
 * objectiveId : integer : REFERENCES "Objectives".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
 deletedAt : timestamp with time zone
 linkBack : jsonb
}

class ObjectiveTemplates{
 * id : integer : <generated>
 regionId : integer : REFERENCES "Regions".id
 * createdAt : timestamp with time zone
 * creationMethod : enum
 * hash : text
 * templateTitle : text
 * templateTitleModifiedAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 lastUsed : timestamp with time zone
}

class Objectives{
 * id : integer : <generated>
 createdViaActivityReportId : integer : REFERENCES "ActivityReports".id
 goalId : integer : REFERENCES "Goals".id
 mapsToParentObjectiveId : integer : REFERENCES "Objectives".id
 objectiveTemplateId : integer : REFERENCES "ObjectiveTemplates".id
 otherEntityId : integer : REFERENCES "OtherEntities".id
 * createdAt : timestamp with time zone : now()
 * onApprovedAR : boolean : false
 * onAR : boolean : false
 * updatedAt : timestamp with time zone : now()
 closeSuspendContext : text
 closeSuspendReason : enum
 createdVia : enum
 deletedAt : timestamp with time zone
 firstCompleteAt : timestamp with time zone
 firstInProgressAt : timestamp with time zone
 firstNotStartedAt : timestamp with time zone
 firstSuspendedAt : timestamp with time zone
 lastCompleteAt : timestamp with time zone
 lastInProgressAt : timestamp with time zone
 lastNotStartedAt : timestamp with time zone
 lastSuspendedAt : timestamp with time zone
 rtrOrder : integer : 1
 status : varchar(255)
 title : text
}

class OtherEntities{
 * id : integer : <generated>
 * createdAt : timestamp with time zone : now()
 * name : varchar(255)
 * updatedAt : timestamp with time zone : now()
}

class Permissions{
 * id : integer : <generated>
 * regionId : integer : REFERENCES "Regions".id
 * scopeId : integer : REFERENCES "Scopes".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
}

class ProgramPersonnel{
 * id : integer : <generated>
 mapsTo : integer : REFERENCES "ProgramPersonnel".id
 * active : boolean
 * createdAt : timestamp with time zone : now()
 * grantId : integer
 * programId : integer
 * role : varchar(255)
 * updatedAt : timestamp with time zone : now()
 effectiveDate : timestamp with time zone
 email : varchar(255)
 firstName : varchar(255)
 lastName : varchar(255)
 prefix : varchar(255)
 suffix : varchar(255)
 title : varchar(255)
}

class Programs{
 * id : integer
 * grantId : integer : REFERENCES "Grants".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
 endDate : date
 name : varchar(255)
 programType : varchar(255)
 startDate : date
 startYear : varchar(255)
 status : varchar(255)
}

class Recipients{
 * id : integer
 * createdAt : timestamp with time zone : now()
 * name : varchar(255)
 * updatedAt : timestamp with time zone : now()
 deleted : boolean : false
 recipientType : varchar(255)
 uei : varchar(255) : ''::character varying
}

class Regions{
 * id : integer : <generated>
 * name : varchar(255)
}

class RequestErrors{
 * id : bigint : <generated>
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 method : varchar(255)
 operation : varchar(255)
 requestBody : json
 responseBody : json
 responseCode : varchar(255)
 uri : varchar(255)
}

class Resources{
 * id : integer : <generated>
 mapsTo : integer : REFERENCES "Resources".id
 * createdAt : timestamp with time zone
 * domain : text
 * updatedAt : timestamp with time zone
 * url : text
 lastStatusCode : integer
 metadata : jsonb
 metadataUpdatedAt : timestamp with time zone
 mimeType : varchar(255)
 title : text
}

class RoleTopics{
 * id : integer : <generated>
 * roleId : integer : REFERENCES "Roles".id
 * topicId : integer : REFERENCES "Topics".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class Roles{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * isSpecialist : boolean
 * name : varchar(255)
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
 fullName : varchar(255)
 mapsTo : integer
}

class Scopes{
 * id : integer : <generated>
 * createdAt : timestamp with time zone : now()
 * description : varchar(255)
 * name : varchar(255)
 * updatedAt : timestamp with time zone : now()
}

class SessionReportPilotFiles{
 * id : integer : <generated>
 * fileId : integer : REFERENCES "Files".id
 * sessionReportPilotId : integer : REFERENCES "SessionReportPilots".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class SessionReportPilotSupportingAttachments{
 * id : integer : <generated>
 * fileId : integer : REFERENCES "Files".id
 * sessionReportPilotId : integer : REFERENCES "SessionReportPilots".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class SessionReportPilots{
 * id : integer : <generated>
 * eventId : integer : REFERENCES "EventReportPilots".id
 * createdAt : timestamp with time zone : CURRENT_TIMESTAMP
 * data : jsonb
 * updatedAt : timestamp with time zone : CURRENT_TIMESTAMP
}

class SiteAlerts{
 * id : integer : <generated>
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone
 * endDate : timestamp with time zone
 * message : text
 * size : enum : 'standard'::"enum_SiteAlerts_size"
 * startDate : timestamp with time zone
 * title : text
 * updatedAt : timestamp with time zone
 status : enum
 variant : enum
}

class Topics{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * name : varchar(255)
 * updatedAt : timestamp with time zone
 deletedAt : timestamp with time zone
 mapsTo : integer
}

class UserRoles{
 * id : integer : <generated>
 * roleId : integer : REFERENCES "Roles".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class UserSettingOverrides{
 * id : integer : <generated>
 * userId : integer : REFERENCES "Users".id
 * userSettingId : integer : REFERENCES "UserSettings".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 * value : jsonb
}

class UserSettings{
 * id : integer : <generated>
 * class : varchar(255)
 * createdAt : timestamp with time zone
 * default : jsonb
 * key : varchar(255)
 * updatedAt : timestamp with time zone
}

class UserValidationStatus{
 * id : integer : <generated>
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone
 * token : varchar(255)
 * type : varchar(255)
 * updatedAt : timestamp with time zone
 validatedAt : timestamp with time zone
}

class Users{
 * id : integer : <generated>
 homeRegionId : integer : REFERENCES "Regions".id
 * createdAt : timestamp with time zone : now()
 * hsesUsername : varchar(255)
 * lastLogin : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
 email : varchar(255)
 flags : enum[] : ARRAY[]::"enum_Users_flags"[]
 hsesAuthorities : varchar(255)[]
 hsesUserId : varchar(255)
 name : varchar(255)
 phoneNumber : varchar(255)
}

enum enum_Users_flags {
 anv_statistics
 closed_goal_merge_override
 collaboration_report
 manual_mark_goals_similar
 monitoring_integration
 multirecipient_communication_log
 quality_assurance_dashboard
 regional_goal_dashboard
 standard_goals_update
 training_reports_dashboard
}

enum_Users_flags <|-- Users

class ValidFor{
 * id : integer : <generated>
 mapsTo : integer : REFERENCES "ValidFor".id
 * createdAt : timestamp with time zone : now()
 * isReport : boolean : false
 * name : text
 * updatedAt : timestamp with time zone : now()
 deletedAt : timestamp with time zone
}

class ZADescriptor{
 * id : integer : <generated>
 * descriptor : text
}

class ZAFilter{
 * id : integer : <generated>
 * columnName : varchar(255)
 tableName : varchar(255)
}

class ZALActivityRecipients{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportApprovers{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportCollaborators{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportFiles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportGoalFieldResponses{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportGoalResources{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportGoals{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportObjectiveCitations{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportObjectiveCourses{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportObjectiveFiles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportObjectiveResources{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportObjectiveTopics{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportObjectives{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReportResources{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALActivityReports{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCollabReportActivityStates{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCollabReportDataUsed{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCollabReportGoals{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCollabReportReasons{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCollabReportSpecialists{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCollabReportSteps{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCollabReports{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCollaboratorRoles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCollaboratorTypes{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCommunicationLogFiles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCommunicationLogRecipients{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCommunicationLogs{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALCourses{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALDDL{
 * id : bigint : <generated>
 * ddl_timestamp : timestamp with time zone
 * ddl_txid : uuid
 command_tag : varchar(255)
 ddl_by : integer
 descriptor_id : integer
 object_identity : varchar(255)
 object_type : varchar(255)
 schema_name : varchar(255)
 session_sig : text
}

class ZALEventReportPilotNationalCenterUsers{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALEventReportPilots{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALFiles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGoalCollaborators{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGoalFieldResponses{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGoalResources{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGoalStatusChanges{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGoalTemplateFieldPrompts{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGoalTemplateObjectiveTemplates{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGoalTemplateResources{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGoalTemplates{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGoals{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGrantNumberLinks{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGrantReplacementTypes{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGrantReplacements{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGrants{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGroupCollaborators{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGroupGrants{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALGroups{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALImportDataFiles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALImportFiles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALImports{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMailerLogs{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMaintenanceLogs{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringClassSummaries{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringFindingGrants{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringFindingHistories{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringFindingHistoryStatusLinks{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringFindingHistoryStatuses{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringFindingLinks{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringFindingStandards{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringFindingStatusLinks{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringFindingStatuses{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringFindings{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringGranteeLinks{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringReviewGrantees{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringReviewLinks{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringReviewStatusLinks{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringReviewStatuses{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringReviews{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringStandardLinks{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALMonitoringStandards{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALNationalCenterUsers{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALNationalCenters{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALNextStepResources{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALNextSteps{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALObjectiveCollaborators{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALObjectiveTemplates{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALObjectives{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALOtherEntities{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALPermissions{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALProgramPersonnel{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALPrograms{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALRecipients{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALRegions{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALResources{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALRoleTopics{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALRoles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALScopes{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALSessionReportPilotFiles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALSessionReportPilotSupportingAttachments{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALSessionReportPilots{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALSiteAlerts{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALTopics{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALUserRoles{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALUserSettingOverrides{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALUserSettings{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALUserValidationStatus{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALUsers{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALValidFor{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALZADescriptor{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}

class ZALZAFilter{
 * id : bigint : <generated>
 * data_id : bigint
 * dml_as : bigint
 * dml_by : bigint
 * dml_timestamp : timestamp with time zone
 * dml_txid : uuid
 * dml_type : enum
 descriptor_id : integer
 new_row_data : jsonb
 old_row_data : jsonb
 session_sig : text
}


' Associations


Files "1" --[#black,plain,thickness=2]-- "1" ImportFiles : importFile, file
Grants "1" --[#black,plain,thickness=2]-- "1" GrantNumberLinks : grant, grantNumberLink
Users "1" --[#black,plain,thickness=2]-- "1" CollabReports : author, lastUpdatedBy

ActivityReportCollaborators "1" --[#black,dashed,thickness=2]--{  "n" CollaboratorRoles : collaboratorRoles, activityReportCollaborator
ActivityReportGoals "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportGoalFieldResponses : activityReportGoal, activityReportGoalFieldResponses
ActivityReportGoals "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportGoalResources : activityReportGoal, activityReportGoalResources
ActivityReportObjectives "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveCitations : activityReportObjective, activityReportObjectiveCitations
ActivityReportObjectives "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveCourses : activityReportObjective, activityReportObjectiveCourses
ActivityReportObjectives "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveFiles : activityReportObjective, activityReportObjectiveFiles
ActivityReportObjectives "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveResources : activityReportObjective, activityReportObjectiveResources
ActivityReportObjectives "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveTopics : activityReportObjective, activityReportObjectiveTopics
ActivityReports "1" --[#black,dashed,thickness=2]--{  "n" ActivityRecipients : activityReport, activityRecipients
ActivityReports "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportApprovers : activityReport, approvers
ActivityReports "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportCollaborators : activityReport, activityReportCollaborators
ActivityReports "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportFiles : activityReport, reportFiles
ActivityReports "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportGoals : activityReport, activityReportGoals
ActivityReports "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectives : activityReport, activityReportObjectives
ActivityReports "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportResources : activityReport, activityReportResources
ActivityReports "1" --[#black,dashed,thickness=2]--{  "n" NextSteps : specialistNextSteps, recipientNextSteps, activityReport
CollabReports "1" --[#black,dashed,thickness=2]--{  "n" CollabReportActivityStates : collabReport, activityStates
CollabReports "1" --[#black,dashed,thickness=2]--{  "n" CollabReportDataUsed : collabReport, dataUsed
CollabReports "1" --[#black,dashed,thickness=2]--{  "n" CollabReportGoals : collabReport, reportGoals
CollabReports "1" --[#black,dashed,thickness=2]--{  "n" CollabReportReasons : collabReport, reportReasons
CollabReports "1" --[#black,dashed,thickness=2]--{  "n" CollabReportSpecialists : collabReport, collabReportSpecialists
CollabReports "1" --[#black,dashed,thickness=2]--{  "n" CollabReportSteps : collabReport, steps
!issue='associations need to be defined both directions'
CollabReports "1" --[#d54309,dashed,thickness=2]--{  "n" undefined : approvers
CollaboratorTypes "1" --[#black,dashed,thickness=2]--{  "n" CollaboratorTypes : mapsToCollaboratorType, mapsFromCollaboratorTypes
CollaboratorTypes "1" --[#black,dashed,thickness=2]--{  "n" GoalCollaborators : goalCollaborator, collaboratorType
CollaboratorTypes "1" --[#black,dashed,thickness=2]--{  "n" GroupCollaborators : groupCollaborator, collaboratorType
CollaboratorTypes "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveCollaborators : objectiveCollaborator, collaboratorType
CommunicationLogs "1" --[#black,dashed,thickness=2]--{  "n" CommunicationLogFiles : communicationLog, communicationLogFiles
CommunicationLogs "1" --[#black,dashed,thickness=2]--{  "n" CommunicationLogRecipients : communicationLog, communicationLogRecipients
Courses "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveCourses : course, activityReportObjectiveCourses
Courses "1" --[#black,dashed,thickness=2]--{  "n" Courses : mapsFromCourse, mapsToCourse
EventReportPilots "1" --[#black,dashed,thickness=2]--{  "n" EventReportPilotNationalCenterUsers : event, eventReportPilotNationalCenterUsers
EventReportPilots "1" --[#black,dashed,thickness=2]--{  "n" SessionReportPilots : sessionReports, event
Files "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportFiles : file, reportFiles
Files "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveFiles : file, reportObjectiveFiles
Files "1" --[#black,dashed,thickness=2]--{  "n" CommunicationLogFiles : file, communicationLogFiles
Files "1" --[#black,dashed,thickness=2]--{  "n" SessionReportPilotFiles : sessionFiles, file
Files "1" --[#black,dashed,thickness=2]--{  "n" SessionReportPilotSupportingAttachments : supportingAttachments, file
GoalTemplateFieldPrompts "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportGoalFieldResponses : prompt, reportResponses
GoalTemplateFieldPrompts "1" --[#black,dashed,thickness=2]--{  "n" GoalFieldResponses : prompt, responses
GoalTemplates "1" --[#black,dashed,thickness=2]--{  "n" CollabReportGoals : goalTemplate, collabReportGoals
GoalTemplates "1" --[#black,dashed,thickness=2]--{  "n" GoalTemplateFieldPrompts : goalTemplate, prompts
GoalTemplates "1" --[#black,dashed,thickness=2]--{  "n" GoalTemplateObjectiveTemplates : goalTemplate, goalTemplateObjectiveTemplates
GoalTemplates "1" --[#black,dashed,thickness=2]--{  "n" GoalTemplateResources : goalTemplate, goalTemplateResources
GoalTemplates "1" --[#black,dashed,thickness=2]--{  "n" Goals : goals, goalTemplate
Goals "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportGoals : goal, originalGoal, activityReportGoals, reassignedActivityReportGoals
Goals "1" --[#black,dashed,thickness=2]--{  "n" GoalCollaborators : goal, goalCollaborators
Goals "1" --[#black,dashed,thickness=2]--{  "n" GoalFieldResponses : goal, responses
Goals "1" --[#black,dashed,thickness=2]--{  "n" GoalResources : goal, goalResources
Goals "1" --[#black,dashed,thickness=2]--{  "n" GoalStatusChanges : goal, statusChanges
Goals "1" --[#black,dashed,thickness=2]--{  "n" Goals : parentGoal, childGoals
Goals "1" --[#black,dashed,thickness=2]--{  "n" Objectives : objectives, goal
GrantNumberLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringClassSummaries : monitoringClassSummaries, grantNumberLink
GrantNumberLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringReviewGrantees : monitoringReviewGrantees, grantNumberLink
GrantReplacementTypes "1" --[#black,dashed,thickness=2]--{  "n" GrantReplacementTypes : mapsFromReplacementType, mapsToReplacementType
GrantReplacementTypes "1" --[#black,dashed,thickness=2]--{  "n" GrantReplacements : grantReplacements, grantReplacementType
Grants "1" --[#black,dashed,thickness=2]--{  "n" ActivityRecipients : grant, activityRecipients
Grants "1" --[#black,dashed,thickness=2]--{  "n" Goals : grant, goals
Grants "1" --[#black,dashed,thickness=2]--{  "n" GrantReplacements : replacedGrant, replacingGrant, replacedGrantReplacements, replacingGrantReplacements
Grants "1" --[#black,dashed,thickness=2]--{  "n" GroupGrants : groupGrants, grant
Grants "1" --[#black,dashed,thickness=2]--{  "n" ProgramPersonnel : programPersonnel, grant
Grants "1" --[#black,dashed,thickness=2]--{  "n" Programs : programs, grant
Grants "1" --[#black,dashed,thickness=2]--{  "n" undefined : grantRelationships, activeGrantRelationships
Groups "1" --[#black,dashed,thickness=2]--{  "n" GroupCollaborators : group, groupCollaborators
Groups "1" --[#black,dashed,thickness=2]--{  "n" GroupGrants : group, groupGrants
ImportFiles "1" --[#black,dashed,thickness=2]--{  "n" ImportDataFiles : importFile, importDataFiles
Imports "1" --[#black,dashed,thickness=2]--{  "n" ImportFiles : import, importFiles
MaintenanceLogs "1" --[#black,dashed,thickness=2]--{  "n" MaintenanceLogs : triggeredBy, triggered
MonitoringFindingHistoryStatusLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingHistories : monitoringFindingStatusLink, monitoringFindingHistories
MonitoringFindingHistoryStatusLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingHistoryStatuses : monitoringFindingHistoryStatuses, statusLink
MonitoringFindingLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingGrants : findingLink, monitoringFindingGrants
MonitoringFindingLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingHistories : monitoringFindingLink, monitoringFindingHistories
MonitoringFindingLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingStandards : monitoringFindingStandards, findingLink
MonitoringFindingLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindings : monitoringFindings, findingLink
MonitoringFindingStatusLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingGrants : statusLink, monitoringFindingGrants
MonitoringFindingStatusLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingStatuses : monitoringFindingStatuses, statusLink
MonitoringFindingStatusLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindings : monitoringFindings, statusLink
MonitoringGranteeLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingGrants : granteeLink, monitoringFindingGrants
MonitoringGranteeLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringReviewGrantees : monitoringReviewGrantees, monitoringGranteeLink
MonitoringReviewLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringClassSummaries : monitoringReviewLink, monitoringClassSummaries
MonitoringReviewLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingHistories : monitoringReviewLink, monitoringFindingHistories
MonitoringReviewLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringReviewGrantees : monitoringReviewLink, monitoringReviewGrantees
MonitoringReviewLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringReviews : monitoringReviews, monitoringReviewLink
MonitoringReviewStatusLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringReviewStatuses : monitoringReviewStatuses, statusLink
MonitoringReviewStatusLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringReviews : monitoringReviews, statusLink
MonitoringStandardLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingStandards : standardLink, monitoringFindingStandards
MonitoringStandardLinks "1" --[#black,dashed,thickness=2]--{  "n" MonitoringStandards : monitoringStandards, standardLink
NationalCenters "1" --[#black,dashed,thickness=2]--{  "n" EventReportPilotNationalCenterUsers : nationalCenter, eventReportPilotNationalCenterUsers
NationalCenters "1" --[#black,dashed,thickness=2]--{  "n" NationalCenterUsers : nationalCenter, nationalCenterUsers
NationalCenters "1" --[#black,dashed,thickness=2]--{  "n" NationalCenters : mapsToNationalCenter, mapsFromNationalCenters
NextSteps "1" --[#black,dashed,thickness=2]--{  "n" NextStepResources : nextStep, nextStepResources
ObjectiveTemplates "1" --[#black,dashed,thickness=2]--{  "n" GoalTemplateObjectiveTemplates : objectiveTemplate, goalTemplateObjectiveTemplates
ObjectiveTemplates "1" --[#black,dashed,thickness=2]--{  "n" Objectives : objectives, objectiveTemplate
Objectives "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectives : objective, originalObjective, activityReportObjectives, reassignedActivityReportObjectives
Objectives "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveCollaborators : objective, objectiveCollaborators
Objectives "1" --[#black,dashed,thickness=2]--{  "n" Objectives : parentObjective, childObjectives
OtherEntities "1" --[#black,dashed,thickness=2]--{  "n" ActivityRecipients : otherEntity, activityRecipients
OtherEntities "1" --[#black,dashed,thickness=2]--{  "n" Objectives : otherEntity, objectives
ProgramPersonnel "1" --[#black,dashed,thickness=2]--{  "n" ProgramPersonnel : mapsFromProgramPersonnel, mapsToProgramPersonnel
Programs "1" --[#black,dashed,thickness=2]--{  "n" ProgramPersonnel : program, programPersonnel
Recipients "1" --[#black,dashed,thickness=2]--{  "n" CommunicationLogRecipients : recipient, communicationLogRecipients
Recipients "1" --[#black,dashed,thickness=2]--{  "n" Grants : recipient, grants
Regions "1" --[#black,dashed,thickness=2]--{  "n" ActivityReports : region, activityReports
Regions "1" --[#black,dashed,thickness=2]--{  "n" GoalTemplates : region, goalTemplates
Regions "1" --[#black,dashed,thickness=2]--{  "n" Grants : region, grants
Regions "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveTemplates : region, objectiveTemplates
Regions "1" --[#black,dashed,thickness=2]--{  "n" Permissions : region, permissions
Regions "1" --[#black,dashed,thickness=2]--{  "n" Users : users, homeRegion
Resources "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportGoalResources : resource, activityReportGoalResources
Resources "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveResources : resource, activityReportObjectiveResources
Resources "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportResources : resource, activityReportResources
Resources "1" --[#black,dashed,thickness=2]--{  "n" GoalResources : resource, goalResources
Resources "1" --[#black,dashed,thickness=2]--{  "n" GoalTemplateResources : resource, goalTemplateResources
Resources "1" --[#black,dashed,thickness=2]--{  "n" NextStepResources : resource, nextStepResources
Resources "1" --[#black,dashed,thickness=2]--{  "n" Resources : mapsFromResource, mapsToResource
Roles "1" --[#black,dashed,thickness=2]--{  "n" CollaboratorRoles : role, collaboratorRoles
Roles "1" --[#black,dashed,thickness=2]--{  "n" RoleTopics : role, roleTopics
Roles "1" --[#black,dashed,thickness=2]--{  "n" UserRoles : userRoles, role
Scopes "1" --[#black,dashed,thickness=2]--{  "n" Permissions : scope, permissions
SessionReportPilots "1" --[#black,dashed,thickness=2]--{  "n" SessionReportPilotFiles : sessionReport, sessionFiles
SessionReportPilots "1" --[#black,dashed,thickness=2]--{  "n" SessionReportPilotSupportingAttachments : sessionReport, sessionSupportingAttachments
Topics "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveTopics : topic, activityReportObjectiveTopics
Topics "1" --[#black,dashed,thickness=2]--{  "n" RoleTopics : topic, roleTopics
Topics "1" --[#black,dashed,thickness=2]--{  "n" Topics : mapsToTopic, mapsFromTopics
UserSettings "1" --[#black,dashed,thickness=2]--{  "n" UserSettingOverrides : setting, userSettingOverrides
Users "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportApprovers : user, reportApprovers
Users "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportCollaborators : user, reportCollaborators
Users "1" --[#black,dashed,thickness=2]--{  "n" ActivityReports : author, lastUpdatedBy, reports
Users "1" --[#black,dashed,thickness=2]--{  "n" CollabReportSpecialists : specialist, collabReportSpecialists
Users "1" --[#black,dashed,thickness=2]--{  "n" CommunicationLogs : author, communicationLogs
Users "1" --[#black,dashed,thickness=2]--{  "n" EventReportPilotNationalCenterUsers : user, eventReportPilotNationalCenterUsers
Users "1" --[#black,dashed,thickness=2]--{  "n" GoalCollaborators : user, goalCollaborators
Users "1" --[#black,dashed,thickness=2]--{  "n" GoalStatusChanges : user, goalStatusChanges
Users "1" --[#black,dashed,thickness=2]--{  "n" GroupCollaborators : user, groupCollaborators
Users "1" --[#black,dashed,thickness=2]--{  "n" NationalCenterUsers : user, nationalCenterUsers
Users "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveCollaborators : user, objectiveCollaborators
Users "1" --[#black,dashed,thickness=2]--{  "n" Permissions : user, permissions
Users "1" --[#black,dashed,thickness=2]--{  "n" SiteAlerts : creator, siteAlerts
Users "1" --[#black,dashed,thickness=2]--{  "n" UserRoles : user, userRoles
Users "1" --[#black,dashed,thickness=2]--{  "n" UserSettingOverrides : user, userSettingOverrides
Users "1" --[#black,dashed,thickness=2]--{  "n" UserValidationStatus : user, validationStatus
ValidFor "1" --[#black,dashed,thickness=2]--{  "n" CollaboratorTypes : validFor, collaboratorTypes
ValidFor "1" --[#black,dashed,thickness=2]--{  "n" ValidFor : mapsToValidFor, mapsFromValidFor

ActivityReportCollaborators "n" }--[#black,dotted,thickness=2]--{ "n" Roles : roles, collaborators
ActivityReportGoals "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, activityReportGoals
ActivityReportObjectives "n" }--[#black,dotted,thickness=2]--{ "n" Courses : courses, reportObjectives
ActivityReportObjectives "n" }--[#black,dotted,thickness=2]--{ "n" Files : files, reportObjectives
ActivityReportObjectives "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, activityReportObjectives
ActivityReportObjectives "n" }--[#black,dotted,thickness=2]--{ "n" Topics : topics, activityReportObjectives
ActivityReports "n" }--[#black,dotted,thickness=2]--{ "n" Files : files, reports
ActivityReports "n" }--[#black,dotted,thickness=2]--{ "n" Goals : goals, activityReports
ActivityReports "n" }--[#black,dotted,thickness=2]--{ "n" Grants : grants, activityReports
ActivityReports "n" }--[#black,dotted,thickness=2]--{ "n" Objectives : createdViaActivityReportObjectives, objectivesWithoutGoals, objectivesWithGoals, objectives, activityReports, createdViaActivityReport
ActivityReports "n" }--[#black,dotted,thickness=2]--{ "n" OtherEntities : otherEntities, activityReports
ActivityReports "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, activityReports
CollabReports "n" }--[#black,dotted,thickness=2]--{ "n" Users : collaboratingSpecialists, collabReports
CollaboratorTypes "n" }--[#black,dotted,thickness=2]--{ "n" Goals : goals, collaboratorTypes
CollaboratorTypes "n" }--[#black,dotted,thickness=2]--{ "n" Groups : groups, collaboratorTypes
CollaboratorTypes "n" }--[#black,dotted,thickness=2]--{ "n" Objectives : objectives, collaboratorTypes
CollaboratorTypes "n" }--[#black,dotted,thickness=2]--{ "n" Users : usersThroughGoalCollaborators, usersThroughGroupCollaborators, usersThroughObjectiveCollaborators, collaboratorTypesThroughGoalCollaborator, collaboratorTypesThroughGroupCollaborator, collaboratorTypesThroughObjectiveCollaborator
CommunicationLogs "n" }--[#black,dotted,thickness=2]--{ "n" Files : files, logs
CommunicationLogs "n" }--[#black,dotted,thickness=2]--{ "n" Recipients : recipients, logs
Files "n" }--[#black,dotted,thickness=2]--{ "n" SessionReportPilots : sessions, sessionsWithSupportingAttachments, files, supportingAttachments
GoalTemplateFieldPrompts "n" }--[#black,dotted,thickness=2]--{ "n" Goals : goals, prompts
GoalTemplates "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, goalTemplates
Goals "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, goals
Goals "n" }--[#black,dotted,thickness=2]--{ "n" Users : users, goals
Grants "n" }--[#black,dotted,thickness=2]--{ "n" Groups : groups, grants
Groups "n" }--[#black,dotted,thickness=2]--{ "n" Users : users, groups
NationalCenters "n" }--[#black,dotted,thickness=2]--{ "n" Users : users, nationalCenters
NextSteps "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, nextSteps
Objectives "n" }--[#black,dotted,thickness=2]--{ "n" Users : users, objectives
Regions "n" }--[#black,dotted,thickness=2]--{ "n" Scopes : scopes, regions
Roles "n" }--[#black,dotted,thickness=2]--{ "n" Topics : topics, roles
Roles "n" }--[#black,dotted,thickness=2]--{ "n" Users : users, roles
Scopes "n" }--[#black,dotted,thickness=2]--{ "n" Users : users, scopes

@enduml
