@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 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
 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()
 * updatedAt : timestamp with time zone : now()
 * version : integer : 2
 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
 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 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 CommunicationLogs{
 * id : integer : <generated>
 * recipientId : integer : REFERENCES "Recipients".id
 * 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
 * updatedAt : timestamp with time zone : now()
 deletedAt : timestamp with time zone
}

class EventReportPilotGoals{
 * id : integer : <generated>
 * eventId : integer : REFERENCES "EventReportPilots".id
 * goalId : integer : REFERENCES "Goals".id
 * grantId : integer : REFERENCES "Grants".id
 * sessionId : integer : REFERENCES "SessionReportPilots".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

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 GoalSimilarityGroupGoals{
 * id : integer : <generated>
 * goalId : integer : REFERENCES "Goals".id
 * goalSimilarityGroupId : integer : REFERENCES "GoalSimilarityGroups".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

class GoalSimilarityGroups{
 * id : integer : <generated>
 finalGoalId : integer : REFERENCES "Goals".id
 * recipientId : integer : REFERENCES "Recipients".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
 * userHasInvalidated : boolean : false
}

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
 lastUsed : timestamp with time zone
 source : varchar(255)
}

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
 * updatedAt : timestamp with time zone
 closeSuspendContext : text
 closeSuspendReason : enum
 createdVia : enum
 deletedAt : timestamp with time zone
 endDate : date
 firstCeasedSuspendedAt : timestamp with time zone
 firstClosedAt : timestamp with time zone
 firstCompletedAt : timestamp with time zone
 firstInProgressAt : timestamp with time zone
 firstNotStartedAt : timestamp with time zone
 isFromSmartsheetTtaPlan : boolean
 isRttapa : enum
 lastCeasedSuspendedAt : timestamp with time zone
 lastClosedAt : timestamp with time zone
 lastCompletedAt : timestamp with time zone
 lastInProgressAt : timestamp with time zone
 lastNotStartedAt : timestamp with time zone
 name : text
 previousStatus : text
 rtrOrder : integer : 1
 source : enum
 status : varchar(255)
 timeframe : text
}

class Grants{
 * id : integer
 oldGrantId : integer : REFERENCES "Grants".id
 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
 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 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>
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone
 * name : text
 * updatedAt : timestamp with time zone
 isPublic : boolean
}

class ImportDataFiles{
 * id : integer : <generated>
 * importFileId : integer : REFERENCES "ImportFiles".id
 * createdAt : timestamp with time zone
 * processed : boolean : false
 * 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
}

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>
 * 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)
 grantNumber : text
 hash : text
 instructionalSupport : decimal(5,4)
 reportDeliveryDate : timestamp with time zone
 reviewId : text
 sourceDeletedAt : timestamp with time zone
}

class MonitoringFindingHistories{
 * id : integer : <generated>
 * 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
 findingHistoryId : text
 hash : text
 reviewId : text
 sourceDeletedAt : timestamp with time zone
}

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

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

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

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 ObjectiveCourses{
 * id : integer : <generated>
 * courseId : integer : REFERENCES "Courses".id
 * objectiveId : integer : REFERENCES "Objectives".id
 * createdAt : timestamp with time zone : now()
 * updatedAt : timestamp with time zone : now()
}

class ObjectiveFiles{
 * id : integer : <generated>
 * fileId : integer : REFERENCES "Files".id
 * objectiveId : integer : REFERENCES "Objectives".id
 * createdAt : timestamp with time zone
 * onApprovedAR : boolean : false
 * onAR : boolean : false
 * updatedAt : timestamp with time zone
}

class ObjectiveResources{
 * id : integer : <generated>
 * objectiveId : integer : REFERENCES "Objectives".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_ObjectiveResources_sourceFields {
 resource
 title
}

enum_ObjectiveResources_sourceFields <|-- ObjectiveResources

class ObjectiveTemplateFiles{
 * id : integer : <generated>
 * fileId : integer : REFERENCES "Files".id
 * objectiveTemplateId : integer : REFERENCES "ObjectiveTemplates".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

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

enum enum_ObjectiveTemplateResources_sourceFields {
 resource
 title
}

enum_ObjectiveTemplateResources_sourceFields <|-- ObjectiveTemplateResources

class ObjectiveTemplateTopics{
 * id : integer : <generated>
 * objectiveTemplateId : integer : REFERENCES "ObjectiveTemplates".id
 * topicId : integer : REFERENCES "Topics".id
 * createdAt : timestamp with time zone
 * updatedAt : timestamp with time zone
}

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 ObjectiveTopics{
 * id : integer : <generated>
 * objectiveId : integer : REFERENCES "Objectives".id
 * topicId : integer : REFERENCES "Topics".id
 * createdAt : timestamp with time zone
 * onApprovedAR : boolean : false
 * onAR : boolean : false
 * updatedAt : timestamp with time zone
}

class Objectives{
 * id : integer : <generated>
 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)
 supportType : enum
 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 : varchar(255)
 name : varchar(255)
 programType : varchar(255)
 startDate : varchar(255)
 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>
 * 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 RttapaPilots{
 * id : integer : <generated>
 * recipientId : integer : REFERENCES "Recipients".id
 * regionId : integer : REFERENCES "Regions".id
 * userId : integer : REFERENCES "Users".id
 * createdAt : timestamp with time zone
 * reviewDate : timestamp with time zone
 * updatedAt : timestamp with time zone
 goals : jsonb
 notes : text
}

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 SimScoreGoalCaches{
 * id : integer : <generated>
 * createdAt : timestamp with time zone
 * goal1 : integer
 * goal2 : integer
 * recipient_id : integer
 * score : decimal(3,1)
 * updatedAt : timestamp with time zone
}

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
 goal_source
 merge_goals
 monitoring
 regional_goal_dashboard
 resources_dashboard
 rttapa_form
}

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 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 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 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 ZALEventReportPilotGoals{
 * 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 ZALGoalSimilarityGroupGoals{
 * 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 ZALGoalSimilarityGroups{
 * 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 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 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 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 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 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 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 ZALObjectiveCourses{
 * 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 ZALObjectiveFiles{
 * 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 ZALObjectiveResources{
 * 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 ZALObjectiveTemplateFiles{
 * 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 ZALObjectiveTemplateResources{
 * 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 ZALObjectiveTemplateTopics{
 * 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 ZALObjectiveTopics{
 * 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 ZALRttapaPilots{
 * 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 ZALSimScoreGoalCaches{
 * 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

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" 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
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" ObjectiveCollaborators : objectiveCollaborator, collaboratorType
CommunicationLogs "1" --[#black,dashed,thickness=2]--{  "n" CommunicationLogFiles : communicationLog, communicationLogFiles
Courses "1" --[#black,dashed,thickness=2]--{  "n" ActivityReportObjectiveCourses : course, activityReportObjectiveCourses
Courses "1" --[#black,dashed,thickness=2]--{  "n" Courses : mapsFromCourse, mapsToCourse
Courses "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveCourses : objectiveCourses, course
EventReportPilots "1" --[#black,dashed,thickness=2]--{  "n" EventReportPilotGoals : event, eventReportPilotGoals
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" ObjectiveFiles : objectiveFiles, file
Files "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveTemplateFiles : objectiveTemplateFiles, file
Files "1" --[#black,dashed,thickness=2]--{  "n" SessionReportPilotFiles : sessionFiles, file
Files "1" --[#black,dashed,thickness=2]--{  "n" SessionReportPilotSupportingAttachments : supportingAttachments, file
GoalSimilarityGroups "1" --[#black,dashed,thickness=2]--{  "n" GoalSimilarityGroupGoals : goalSimilarityGroup, goalSimilarityGroups
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" 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" EventReportPilotGoals : goal, eventReportPilotGoals
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" GoalSimilarityGroupGoals : goal, goalSimilarityGroupGoals
Goals "1" --[#black,dashed,thickness=2]--{  "n" GoalSimilarityGroups : finalGoal, goalSimilarityGroups
Goals "1" --[#black,dashed,thickness=2]--{  "n" Goals : parentGoal, childGoals
Goals "1" --[#black,dashed,thickness=2]--{  "n" Objectives : objectives, goal
Goals "1" --[#black,dashed,thickness=2]--{  "n" SimScoreGoalCaches : scoreOne, scoreTwo, goalOne, goalTwo
Grants "1" --[#black,dashed,thickness=2]--{  "n" ActivityRecipients : grant, activityRecipients
Grants "1" --[#black,dashed,thickness=2]--{  "n" EventReportPilotGoals : grant, eventReportPilotGoals
Grants "1" --[#black,dashed,thickness=2]--{  "n" Goals : grant, goals
Grants "1" --[#black,dashed,thickness=2]--{  "n" Grants : oldGrants, grant
Grants "1" --[#black,dashed,thickness=2]--{  "n" GroupGrants : groupGrants, grant
Grants "1" --[#black,dashed,thickness=2]--{  "n" MonitoringClassSummaries : monitoringClassSummaries, grant
Grants "1" --[#black,dashed,thickness=2]--{  "n" MonitoringReviewGrantees : monitoringReviewGrantees, grant
Grants "1" --[#black,dashed,thickness=2]--{  "n" ProgramPersonnel : programPersonnel, grant
Grants "1" --[#black,dashed,thickness=2]--{  "n" Programs : programs, grant
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
MonitoringReviewStatuses "1" --[#black,dashed,thickness=2]--{  "n" MonitoringReviews : monitoringReviews, status
MonitoringReviews "1" --[#black,dashed,thickness=2]--{  "n" MonitoringClassSummaries : monitoringReview, monitoringClassSummaries
MonitoringReviews "1" --[#black,dashed,thickness=2]--{  "n" MonitoringFindingHistories : monitoringReview, monitoringFindingHistories
MonitoringReviews "1" --[#black,dashed,thickness=2]--{  "n" MonitoringReviewGrantees : monitoringReview, monitoringReviewGrantees
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" ObjectiveTemplateFiles : objectiveTemplate, objectiveTemplateFiles
ObjectiveTemplates "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveTemplateResources : objectiveTemplate, objectiveTemplateResources
ObjectiveTemplates "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveTemplateTopics : objectiveTemplate, objectiveTemplateTopics
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" ObjectiveCourses : objective, objectiveCourses
Objectives "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveFiles : objective, objectiveFiles
Objectives "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveResources : objective, objectiveResources
Objectives "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveTopics : objective, objectiveTopics
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" CommunicationLogs : recipient, communicationLogs
Recipients "1" --[#black,dashed,thickness=2]--{  "n" GoalSimilarityGroups : recipient, goalSimilarityGroups
Recipients "1" --[#black,dashed,thickness=2]--{  "n" Grants : recipient, grants
Recipients "1" --[#black,dashed,thickness=2]--{  "n" RttapaPilots : rttapaPilots, recipient
Recipients "1" --[#black,dashed,thickness=2]--{  "n" SimScoreGoalCaches : recipient
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" RttapaPilots : rttapaPilots, region
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" ObjectiveResources : resource, objectiveResources
Resources "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveTemplateResources : resource, objectiveTemplateResources
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" EventReportPilotGoals : session, eventReportPilotGoals
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" ObjectiveTemplateTopics : topic, objectiveTemplateTopics
Topics "1" --[#black,dashed,thickness=2]--{  "n" ObjectiveTopics : topic, objectiveTopics
Topics "1" --[#black,dashed,thickness=2]--{  "n" RoleTopics : topic, roleTopics
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" CommunicationLogs : author, communicationLogs
Users "1" --[#black,dashed,thickness=2]--{  "n" GoalCollaborators : user, goalCollaborators
Users "1" --[#black,dashed,thickness=2]--{  "n" Groups : user, groups
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" RttapaPilots : user, rttapaPilots
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 : objectivesWithoutGoals, objectivesWithGoals, objectives, activityReports
ActivityReports "n" }--[#black,dotted,thickness=2]--{ "n" OtherEntities : otherEntities, activityReports
ActivityReports "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, activityReports
CollaboratorTypes "n" }--[#black,dotted,thickness=2]--{ "n" Goals : goals, collaboratorTypes
CollaboratorTypes "n" }--[#black,dotted,thickness=2]--{ "n" Objectives : objectives, collaboratorTypes
CollaboratorTypes "n" }--[#black,dotted,thickness=2]--{ "n" Users : usersThroughGoalCollaborators, usersThroughObjectiveCollaborators, collaboratorTypesThroughGoalCollaborator, collaboratorTypesThroughObjectiveCollaborator
CommunicationLogs "n" }--[#black,dotted,thickness=2]--{ "n" Files : files, logs
Courses "n" }--[#black,dotted,thickness=2]--{ "n" Objectives : objectives, courses
EventReportPilots "n" }--[#black,dotted,thickness=2]--{ "n" Goals : goals, eventReportPilots
EventReportPilots "n" }--[#black,dotted,thickness=2]--{ "n" Grants : grants, eventReports
Files "n" }--[#black,dotted,thickness=2]--{ "n" ObjectiveTemplates : objectiveTemplates, files
Files "n" }--[#black,dotted,thickness=2]--{ "n" Objectives : objectives, files
Files "n" }--[#black,dotted,thickness=2]--{ "n" SessionReportPilots : sessions, sessionsWithSupportingAttachments, files, supportingAttachments
GoalSimilarityGroups "n" }--[#black,dotted,thickness=2]--{ "n" Goals : goals, similarityGroups
GoalTemplateFieldPrompts "n" }--[#black,dotted,thickness=2]--{ "n" Goals : goals, prompts
GoalTemplates "n" }--[#black,dotted,thickness=2]--{ "n" ObjectiveTemplates : goalTemplates
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
NationalCenters "n" }--[#black,dotted,thickness=2]--{ "n" Users : users, nationalCenters
NextSteps "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, nextSteps
ObjectiveTemplates "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, objectiveTemplates
ObjectiveTemplates "n" }--[#black,dotted,thickness=2]--{ "n" Topics : topics, objectiveTemplates
Objectives "n" }--[#black,dotted,thickness=2]--{ "n" Resources : resources, objectives
Objectives "n" }--[#black,dotted,thickness=2]--{ "n" Topics : topics, objectives
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
