models

package
v0.0.0-...-c988b48 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 30, 2025 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AnalyzedModelHumanizedOldName is human readable
	// sentence template of AnalyzedModelPlan.OldName
	AnalyzedModelHumanizedOldName = "The model has been renamed (previously %s)"

	// AnalyzedModelHumanizedPlanComplete is human readable
	// sentence template of Complete status shange
	AnalyzedModelHumanizedPlanComplete = "The model plan is complete"

	// AnalyzedModelHumanizedIcipComplete is human readable
	// sentence template of ICIP status change
	AnalyzedModelHumanizedIcipComplete = "The ICIP for this model is complete"

	// AnalyzedModelHumanizedInternalCmmiClearance is human readable
	// sentence template of CMMI status change
	AnalyzedModelHumanizedInternalCmmiClearance = "This model is in internal (CMMI) clearance"

	// AnalyzedModelHumanizedCmsClearance is human readable
	// sentence template of CMS clearance status change
	AnalyzedModelHumanizedCmsClearance = "This model is in CMS clearance"

	// AnalyzedModelHumanizedHhsClearance is human readable
	// sentence template of HHS status change
	AnalyzedModelHumanizedHhsClearance = "This model is in HHS clearance"

	// AnalyzedModelHumanizedOmbAsrfClearance is human readable
	// sentence template of OMB/ASRF status change
	AnalyzedModelHumanizedOmbAsrfClearance = "This model is in OMB/ASRF clearance"

	// AnalyzedModelHumanizedCleared is human readable
	// sentence template of Cleared status change
	AnalyzedModelHumanizedCleared = "This model has been cleared"

	// AnalyzedModelHumanizedAnnounced is human readable
	// sentence template of Announced status change
	AnalyzedModelHumanizedAnnounced = "This model has been announced"

	// AnalyzedModelHumanizedActive is human readable
	// sentence template of Active status change
	AnalyzedModelHumanizedActive = "This model is now active"

	// AnalyzedModelHumanizedEnded is human readable
	// sentence template of Ended status change
	AnalyzedModelHumanizedEnded = "This model has ended"

	// AnalyzedModelHumanizedPaused is human readable
	// sentence template of Paused status change
	AnalyzedModelHumanizedPaused = "This model has been paused"

	// AnalyzedModelHumanizedCanceled is human readable
	// sentence template of Canceled status change
	AnalyzedModelHumanizedCanceled = "This model has been canceled"

	// AnalyzedModelHumanizedPlanDraft is human readable
	// sentence template of Draft status change
	AnalyzedModelHumanizedPlanDraft = "This model plan is in draft"
)
View Source
const (
	// AnalyzedDocumentsHumanizedCounts is human readable
	// sentence template of multiple AnalyzedDocument.Count
	AnalyzedDocumentsHumanizedCounts = "%d new documents have been added"

	// AnalyzedDocumentsHumanizedCount is human readable
	// sentence template of a singular AnalyzedDocument.Count
	AnalyzedDocumentsHumanizedCount = "%d new document has been added"
)
View Source
const (
	// AnalyzedPlanSectionsHumanizedUpdated is human readable
	// sentence template of AnalyzedPlanSections.Updated
	AnalyzedPlanSectionsHumanizedUpdated = "Updates to %s"

	// AnalyzedPlanSectionsHumanizedReview is human readable
	// sentence template of a singule AnalyzedPlanSections.ReadyForReview
	AnalyzedPlanSectionsHumanizedReview = "%s is ready for review"

	// AnalyzedPlanSectionsHumanizedReviews is human readable
	// sentence template of multiple AnalyzedPlanSections.ReadyForReview
	AnalyzedPlanSectionsHumanizedReviews = "%s are ready for review"

	// AnalyzedPlanSectionsHumanizedClearance is human readable
	// sentence template of a single AnalyzedPlanSections.ReadyForClearance
	AnalyzedPlanSectionsHumanizedClearance = "%s is ready for clearance"

	// AnalyzedPlanSectionsHumanizedClearances is human readable
	// sentence template of multiple AnalyzedPlanSections.ReadyForClearance
	AnalyzedPlanSectionsHumanizedClearances = "%s are ready for clearance"

	DataExchangeHumanizedMarkedComplete = "Data exchange approach is complete"
)
View Source
const (
	// AnalyzedAuditChangeMoreChanges is human readable sentence template
	// if there are more changes than requested
	AnalyzedAuditChangeMoreChanges = "+%d more changes"
)
View Source
const (
	// AnalyzedModelLeadsHumanizedAdded is human readable
	// sentence template of AnalyzedModelLeads.Added
	AnalyzedModelLeadsHumanizedAdded = "%s has been added as a Model Lead"
)
View Source
const (
	// AnalyzedPlanDataExchangeApproachHumanizedActivity is human readable
	// sentence template of AnalyzedPlanDataExchangeApproach.Activity
	AnalyzedPlanDataExchangeApproachHumanizedActivity = "Updates to Data Exchange Approach"
)
View Source
const (
	// AnalyzedPlanDiscussionsHumanizedActivity is human readable
	// sentence template of AnalyzedPlanDiscussions.Activity
	AnalyzedPlanDiscussionsHumanizedActivity = "New activity in Discussions"
)
View Source
const UncategorizedMTOName = "Uncategorized"

Variables

list of all template keys

AllOperationalSolutionSubtaskStatus is a collection of all possible values for OperationalSolutionSubtaskStatus

MTOTables is a list of all tables that are related to the MTO section This is used to filter the translated audit collection to only include MTO related tables

View Source
var ModelCategoryHumanized = map[ModelCategory]string{
	MCAccountableCare:            "Accountable Care",
	MCDiseaseSpecificAndEpisodic: "Disease-Specific & Episodic",
	MCHealthPlan:                 "Health Plan",
	MCPrescriptionDrug:           "Prescription Drug",
	MCStateBased:                 "State-Based",
	MCStatutory:                  "Statutory",
	MCToBeDetermined:             "To be determined",
}

ModelCategoryHumanized maps ModelCategory to a human-readable string

View Source
var ModelPlanStatusGroupToModelStatus = map[ModelPlanStatusGroup][]ModelStatus{
	ModelPlanStatusGroupPreClearance: {ModelStatusPlanDraft, ModelStatusPlanComplete, ModelStatusIcipComplete},
	ModelPlanStatusGroupInClearance:  {ModelStatusInternalCmmiClearance, ModelStatusCmsClearance, ModelStatusHhsClearance, ModelStatusOmbAsrfClearance},
	ModelPlanStatusGroupCleared:      {ModelStatusCleared},
	ModelPlanStatusGroupAnnounced:    {ModelStatusAnnounced},
	ModelPlanStatusGroupActive:       {ModelStatusActive},
	ModelPlanStatusGroupEnded:        {ModelStatusEnded},
	ModelPlanStatusGroupCanceled:     {ModelStatusCanceled},
	ModelPlanStatusGroupPaused:       {ModelStatusPaused},
}
View Source
var ModelShareSectionHumanized = map[ModelShareSection]string{
	ModelShareSectionAll:           "more",
	ModelShareSectionModelPlan:     "Model Plan",
	ModelShareSectionModelTimeline: "Model timeline",
	ModelShareSectionMtoAll:        "model-to-operations matrix",
	ModelShareSectionMtoMilestones: "model-to-operations matrix",
	ModelShareSectionMtoSolutions:  "model-to-operations matrix",
}

ModelShareSectionHumanized controls what the email says after View _ details in MINT.

View Source
var ModelShareSectionToRouteTranslation = map[ModelShareSection]string{
	ModelShareSectionAll:           "model-basics",
	ModelShareSectionModelPlan:     "model-basics",
	ModelShareSectionModelTimeline: "model-timeline",
	ModelShareSectionMtoAll:        "milestones",
	ModelShareSectionMtoMilestones: "milestones",
	ModelShareSectionMtoSolutions:  "solutions-and-it-systems",
}
View Source
var ModelStatusHumanized = map[ModelStatus]string{
	ModelStatusPlanDraft:             "Draft model plan",
	ModelStatusPlanComplete:          "Model plan complete",
	ModelStatusIcipComplete:          "ICIP complete",
	ModelStatusInternalCmmiClearance: "Internal (CMMI) clearance",
	ModelStatusCmsClearance:          "CMS clearance",
	ModelStatusHhsClearance:          "HHS clearance",
	ModelStatusOmbAsrfClearance:      "OMB/ASRF clearance",
	ModelStatusCleared:               "Cleared",
	ModelStatusAnnounced:             "Announced",
	ModelStatusActive:                "Active",
	ModelStatusEnded:                 "Ended",
	ModelStatusPaused:                "Paused",
	ModelStatusCanceled:              "Canceled",
}

ModelStatusHumanized maps ModelStatus to a human-readable string

View Source
var ModelViewFilterHumanized = map[ModelViewFilter]string{
	ModelViewFilterChronicConditionsWarehouse:                       "Chronic Conditions Warehouse",
	ModelViewFilterCmmiCostEstimate:                                 "CMMI Cost Estimate",
	ModelViewFilterConsolidatedBusinessOperationsSupportCenter:      "Consolidated Business Operations Support Center",
	ModelViewFilterDivisionOfFinancialServicesAndDebtManagement:     "Division of Financial Services and Debt Management",
	ModelViewFilterInnovationPaymentContractor:                      "Innovation Payment Contractor",
	ModelViewFilterInnovativeDesignDevelopmentAndOperationsContract: "Innovative Design Development and Operations Contract",
	ModelViewFilterMasterDataManagement:                             "Master Data Management",
	ModelViewFilterOfficeOfTheActuary:                               "Office of the Actuary",
	ModelViewFilterProviderBillingGroup:                             "Provider Billing Group",
}

ModelViewFilterHumanized maps ModelViewFilter to a human-readable string

Functions

func BoolPointer

func BoolPointer(value bool) *bool

BoolPointer returns a pointer to a bool input

func ConvertEnums

func ConvertEnums[EnumType ~string](pqGroups pq.StringArray) []EnumType

ConvertEnums converts a pq.StringArray to specific, castable type

func ConvertEnumsToStringArray

func ConvertEnumsToStringArray[EnumType ~string](arr []EnumType) pq.StringArray

ConvertEnumsToStringArray converts an enum array to a pq.StringArray

func FilterNotificationPreferences

func FilterNotificationPreferences(notifPreferences []*UserAccountAndNotificationPreferences) (
	emailPreferences []*UserAccountAndNotificationPreferences,
	inAppPreferences []*UserAccountAndNotificationPreferences,
)

func GenericScan

func GenericScan[memberType any](src interface{}, destination *memberType) error

GenericScan wraps common struct scanning methodology that is common to most structs. Scan is used to satisfy the db scanner interface, which populates data in a struct based on a SQL row.

func GenericValue

func GenericValue[memberType any](member memberType) (driver.Value, error)

GenericValue wraps common struct valuing methodology to be shared across most struct types Value is used to transform data from a struct into a representation useable by the database for storage

func GetMaxPosition

func GetMaxPosition[T Positioner](positioners []T) int

GetMaxPosition will return the max position from an array of positioner types

func GetModelStatusChronologicalIndex

func GetModelStatusChronologicalIndex(ms ModelStatus) int

GetModelStatusChronologicalIndex returns the chronological index of the ModelStatus If a value is not found for the provided status, -1 is returned

func GetMostRecentTime

func GetMostRecentTime(baseStructs []IBaseStruct) (time.Time, uuid.UUID)

func GetPOCEmailAddresses

func GetPOCEmailAddresses(pocs []*PossibleOperationalSolutionContact, sendToTaggedPOCs bool, devTeamEmail string) ([]string, error)

GetPOCEmailAddresses transforms an array of POCs to return a list of email addresses. if sendToTaggedPOCs is false, the individual POC email addresses will be simulated and added to the devteamEmail

func HTML

func HTML(htmlString string) html

HTML sanitizes a string and returns hTML

func IntPointer

func IntPointer(val int) *int

IntPointer returns a pointer to a bool input

func MapArrayToJSONArray

func MapArrayToJSONArray(mapSlice []map[string]interface{}) (string, error)

MapArrayToJSONArray converts an array of maps to a JSON array

func MarshalUUID

func MarshalUUID(id uuid.UUID) graphql.Marshaler

MarshalUUID allows uuid to be marshalled by graphql

func NewBaseStruct

func NewBaseStruct(createdBy uuid.UUID) baseStruct

NewBaseStruct returns a base struct object

func NewBaseTaskListSection

func NewBaseTaskListSection(createdBy uuid.UUID, modelPlanID uuid.UUID) baseTaskListSection

NewBaseTaskListSection makes a task list section by a modelPlanID and user id of the user creating it

func NewDiscussionRelation

func NewDiscussionRelation(discussionID uuid.UUID) discussionRelation

NewDiscussionRelation returns a model plan relation object

func NewModelPlanRelation

func NewModelPlanRelation(modelPlanID uuid.UUID) modelPlanRelation

NewModelPlanRelation returns a model plan relation object

func NewOperationalNeedRelation

func NewOperationalNeedRelation(operationalNeedID uuid.UUID) operationalNeedRelation

NewOperationalNeedRelation returns a operational need relation object

func NewSolutionRelation

func NewSolutionRelation(solutionID uuid.UUID) solutionRelation

NewSolutionRelation returns a solution relation object

func NewTemplateRelation

func NewTemplateRelation(templateID uuid.UUID) templateRelation

NewTemplateRelation returns a template relation object

func NewUserIDRelation

func NewUserIDRelation(userID uuid.UUID) userIDRelation

NewUserIDRelation returns a user ID relation object

func NewUserIDRelationPtr

func NewUserIDRelationPtr(userID *uuid.UUID) userIDRelationPtr

NewUserIDRelationPtr returns a userIDRelationPtr object

func StringPointer

func StringPointer(st string) *string

StringPointer returns a pointer to a string input

func StructArrayToJSONArray

func StructArrayToJSONArray[StructType any](structArray []StructType) (string, error)

StructArrayToJSONArray converts an array of structs to a JSON array

EX: keys := []storage.SolutionAndPossibleKey{{
	OperationalNeedID: uuid.MustParse("477d4dd4-243d-4e37-82d5-85a583145db0"),
	IncludeNotNeeded:  true,
},

	{
		OperationalNeedID: uuid.MustParse("84cb4902-3e9a-43dc-ba03-9579bacafd2e"),
		IncludeNotNeeded:  false,
	},
}

jsonParam, err := models.StructArrayToJSONArray(keys)

This will return the following (using the json tag on the struct field to set the name) [

{
    "include_not_needed": true,
    "operational_need_id": "477d4dd4-243d-4e37-82d5-85a583145db0"
},
{
    "include_not_needed": false,
    "operational_need_id": "84cb4902-3e9a-43dc-ba03-9579bacafd2e"
}

] This will allow you to query an array of data as a table in SQL EX

SQL

WITH QUERIED_IDS AS (

SELECT
    include_not_needed,
    operational_need_id,
    CAST(operational_need_id AS TEXT) || CAST(include_not_needed AS TEXT) AS res_key
FROM
    JSON_TO_RECORDSET(:paramTableJSON)
    AS x("operational_need_id" UUID, "include_not_needed" BOOLEAN ) --noqa

)

note, that JSON_TO_RECORDSET will parse the JSON from this function, providing the expected type and and field name from the JSON

func StructArrayToMapArray

func StructArrayToMapArray[StructType any](structArray []StructType) ([]map[string]interface{}, error)

StructArrayToMapArray converts an array of structs to an array of Maps

func StructToMap

func StructToMap(source interface{}) (map[string]interface{}, error)

StructToMap converts a struct to a Map string interface

func StructToMapDBTag

func StructToMapDBTag(source interface{}) (map[string]interface{}, error)

StructToMapDBTag converts a struct to a map[string]interface{}, using the db tag on the struct.

func StructToTranslationMap

func StructToTranslationMap(source interface{}) (map[string]ITranslationField, error)

StructToTranslationMap converts a struct to a Map string translation type

func StructToTypedMap

func StructToTypedMap[MapType any](source interface{}) (map[string]MapType, error)

StructToTypedMap converts a struct to a Map string generic type

func UUIDArrayToJSONArray

func UUIDArrayToJSONArray(uuidArray []uuid.UUID, propertyName string) (string, error)

UUIDArrayToJSONArray converts an array of UUIDs to JSON

func UUIDArrayToMapArray

func UUIDArrayToMapArray(uuidArray []uuid.UUID, propertyName string) []map[string]interface{}

UUIDArrayToMapArray converts an array of UUIDs to a map array with the UUID being called whatever you name it

func UUIDValueOrEmpty

func UUIDValueOrEmpty(uuid *uuid.UUID) string

UUIDValueOrEmpty returns a string if the input is not nil, otherwise returns an empty string

func UnmarshalUUID

func UnmarshalUUID(v interface{}) (uuid.UUID, error)

UnmarshalUUID allows uuid to be unmarshalled by graphql

func ValueOrEmpty

func ValueOrEmpty(st *string) string

ValueOrEmpty returns a string if the input is not nil, otherwise returns an empty string

Types

type Activity

type Activity struct {
	ActorID      uuid.UUID    `json:"actorID" db:"actor_id"`
	EntityID     uuid.UUID    `json:"entityID" db:"entity_id"`
	ActivityType ActivityType `json:"activityType" db:"activity_type"`

	MetaDataRaw interface{} `db:"meta_data"`
	// this is conditional data that is returned. It deserializes to data specific the activity type
	MetaData ActivityMetaData `json:"metaData"`
	// contains filtered or unexported fields
}

Activity represents a discrete event that has happened in the application that might be notifiable.

func NewActivity

func NewActivity(actorID uuid.UUID, entityID uuid.UUID, activityType ActivityType) *Activity

NewActivity returns a New Activity

func NewAddedAsCollaboratorActivity

func NewAddedAsCollaboratorActivity(actorID uuid.UUID, modelPlanID uuid.UUID, collaboratorID uuid.UUID) *Activity

NewAddedAsCollaboratorActivity creates a New Added as Collaborator type of Activity

func NewDailyDigestCompleteActivity

func NewDailyDigestCompleteActivity(actorID uuid.UUID, userID uuid.UUID, date time.Time, modelPlanIDs []uuid.UUID) *Activity

NewDailyDigestCompleteActivity creates a New Tagged in Plan Discussion type of Activity

func NewDatesChangedActivity

func NewDatesChangedActivity(actorID uuid.UUID, modelPlanID uuid.UUID, dateChanges []DateChange) *Activity

NewDatesChangedActivity creates a new DatesChanged type of Activity

func NewIncorrectModelStatusActivity

func NewIncorrectModelStatusActivity(
	actorID uuid.UUID,
	modelPlan *ModelPlan,
	phaseSuggestion *PhaseSuggestion,
) *Activity

NewIncorrectModelStatusActivity creates a new ActivityIncorrectModelStatus type of Activity

func NewModelPlanSharedActivityMeta

func NewModelPlanSharedActivityMeta(actorID uuid.UUID, modelPlanID uuid.UUID, optionalMessage *string) *Activity

NewModelPlanSharedActivityMeta creates a New Model Plan Shared type of Activity

func NewNewDiscussionAddedActivity

func NewNewDiscussionAddedActivity(
	planDiscussion *PlanDiscussion,
	modelPlan *ModelPlan,
	actorID uuid.UUID,
	userName string,
	role string,
) *Activity

NewNewDiscussionAddedActivity creates an Activity for a newly added discussion. NOTE: If your convention is to set EntityID to the model ID (rather than the discussion ID), swap DiscussionID for ModelID below.

func NewNewDiscussionRepliedActivity

func NewNewDiscussionRepliedActivity(actorID uuid.UUID, modelPlanID uuid.UUID, discussionID uuid.UUID, replyID uuid.UUID, content string) *Activity

NewNewDiscussionRepliedActivity creates a New New Discussion Replied type of Activity

func NewNewModelPlanMetaActivity

func NewNewModelPlanMetaActivity(actorID uuid.UUID, modelPlanID uuid.UUID) *Activity

NewNewModelPlanMetaActivity creates a New New Model Plan Meta type of Activity

func NewPlanDataExchangeApproachMarkedCompleteActivity

func NewPlanDataExchangeApproachMarkedCompleteActivity(
	actorID uuid.UUID,
	modelPlanID uuid.UUID,
	dataExchangeApproachID uuid.UUID,
	markedCompleteBy uuid.UUID,
) *Activity

NewPlanDataExchangeApproachMarkedCompleteActivity creates a new ActivityDataExchangeApproachMarkedComplete type of Activity

func NewTaggedInDiscussionReplyActivity

func NewTaggedInDiscussionReplyActivity(actorID uuid.UUID, modelPlanID uuid.UUID, discussionID uuid.UUID, replyID uuid.UUID, content string) *Activity

NewTaggedInDiscussionReplyActivity creates a New Tagged in Plan Discussion Reply type of Activity

func NewTaggedInPlanDiscussionActivity

func NewTaggedInPlanDiscussionActivity(actorID uuid.UUID, modelPlanID uuid.UUID, discussionID uuid.UUID, content string) *Activity

NewTaggedInPlanDiscussionActivity creates a New Tagged in Plan Discussion type of Activity

func (Activity) GetCreatedBy

func (b Activity) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (Activity) GetID

func (b Activity) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (Activity) GetModifiedBy

func (b Activity) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (Activity) MostRecentModification

func (b Activity) MostRecentModification() (time.Time, uuid.UUID)

func (*Activity) ParseRawActivityMetaData

func (a *Activity) ParseRawActivityMetaData() error

ParseRawActivityMetaData conditionally parses the raw meta data JSON into the appropriate struct based on ActivityType

func (*Activity) SetModifiedBy

func (b *Activity) SetModifiedBy(principal authentication.Principal) error

type ActivityMetaBaseStruct

type ActivityMetaBaseStruct struct {
	Type    ActivityType
	Version int `json:"id"`
}

ActivityMetaBaseStruct represents the shared data in common betwen all models

func NewActivityMetaBaseStruct

func NewActivityMetaBaseStruct(activityType ActivityType, version int) ActivityMetaBaseStruct

NewActivityMetaBaseStruct creates a New ActivityMetaBaseStruct

func (*ActivityMetaBaseStruct) Scan

func (amb *ActivityMetaBaseStruct) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (ActivityMetaBaseStruct) Value

func (amb ActivityMetaBaseStruct) Value() (driver.Value, error)

Value allows us to satisfy the valuer interface so we can write to the database

type ActivityMetaData

type ActivityMetaData interface {
	Value() (driver.Value, error)
	Scan(src interface{}) error
	// contains filtered or unexported methods
}

ActivityMetaData is an interface that all activity meta data structs must implement

type ActivityType

type ActivityType string

ActivityType is an enum that represents the possible activities that happen in the MINT application

const (
	ActivityDigest                             ActivityType = "DAILY_DIGEST_COMPLETE"
	ActivityAddedAsCollaborator                ActivityType = "ADDED_AS_COLLABORATOR"
	ActivityTaggedInDiscussion                 ActivityType = "TAGGED_IN_DISCUSSION"
	ActivityTaggedInDiscussionReply            ActivityType = "TAGGED_IN_DISCUSSION_REPLY"
	ActivityNewDiscussionReply                 ActivityType = "NEW_DISCUSSION_REPLY"
	ActivityModelPlanShared                    ActivityType = "MODEL_PLAN_SHARED"
	ActivityNewModelPlan                       ActivityType = "NEW_MODEL_PLAN"
	ActivityDatesChanged                       ActivityType = "DATES_CHANGED"
	ActivityDataExchangeApproachMarkedComplete ActivityType = "DATA_EXCHANGE_APPROACH_MARKED_COMPLETE"
	ActivityNewDiscussionAdded                 ActivityType = "NEW_DISCUSSION_ADDED"
	ActivityIncorrectModelStatus               ActivityType = "INCORRECT_MODEL_STATUS"
)

These constants represent the different values of ActivityType

type AddedAsCollaboratorMeta

type AddedAsCollaboratorMeta struct {
	ActivityMetaBaseStruct

	CollaboratorID uuid.UUID `json:"collaboratorID"`
	// contains filtered or unexported fields
}

AddedAsCollaboratorMeta represents the notification data that is relevant to being added as a collaborator

func (AddedAsCollaboratorMeta) GetModelPlanID

func (m AddedAsCollaboratorMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*AddedAsCollaboratorMeta) Scan

func (cm *AddedAsCollaboratorMeta) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (AddedAsCollaboratorMeta) Value

func (cm AddedAsCollaboratorMeta) Value() (driver.Value, error)

Value allows us to satisfy the valuer interface so we can write to the database We need to do a specific implementation instead of relying on the implementation of the embedded struct, as that will only serialize the common data

type AnalyticsSummary

type AnalyticsSummary struct {
	ChangesPerModel           []*ModelChangesAnalytics
	ChangesPerModelBySection  []*ModelChangesBySectionAnalytics
	ChangesPerModelOtherData  []*ModelChangesOtherDataAnalytics
	ModelsByStatus            []*ModelsByStatusAnalytics
	NumberOfFollowersPerModel []*ModelFollowersAnalytics
	TotalNumberOfModels       *ModelCountAnalytics
	NumberOfModelsOverTime    []*ModelCountAnalyticsOverTime
}

AnalyticsSummary is the summary of the analytics data for all models

type AnalyzedAudit

type AnalyzedAudit struct {
	ModelName string              `json:"modelName" db:"model_name"`
	Date      time.Time           `json:"date" db:"date"`
	Changes   AnalyzedAuditChange `json:"changes" db:"changes"`
	// contains filtered or unexported fields
}

AnalyzedAudit represents a analyzed_audit to a table row in the database

func NewAnalyzedAudit

func NewAnalyzedAudit(createdBy uuid.UUID, modelPlanID uuid.UUID, modelName string, date time.Time, changes AnalyzedAuditChange) (*AnalyzedAudit, error)

NewAnalyzedAudit returns a new AnalyzedAudit object

func (AnalyzedAudit) GetCreatedBy

func (b AnalyzedAudit) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (AnalyzedAudit) GetID

func (b AnalyzedAudit) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (AnalyzedAudit) GetModelPlanID

func (m AnalyzedAudit) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (AnalyzedAudit) GetModifiedBy

func (b AnalyzedAudit) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (AnalyzedAudit) MostRecentModification

func (b AnalyzedAudit) MostRecentModification() (time.Time, uuid.UUID)

func (*AnalyzedAudit) SetModifiedBy

func (b *AnalyzedAudit) SetModifiedBy(principal authentication.Principal) error

func (*AnalyzedAudit) UTCDate

func (aa *AnalyzedAudit) UTCDate() string

UTCDate returns the date fields formatted to show only the date, and in UTC format

type AnalyzedAuditChange

type AnalyzedAuditChange struct {
	ModelPlan                *AnalyzedModelPlan                `json:"modelPlan,omitempty"`
	Documents                *AnalyzedDocuments                `json:"documents,omitempty"`
	CrTdls                   *AnalyzedCrTdls                   `json:"crTdls,omitempty"`
	PlanSections             *AnalyzedPlanSections             `json:"planSections,omitempty"`
	ModelLeads               *AnalyzedModelLeads               `json:"modelLeads,omitempty"`
	PlanDiscussions          *AnalyzedPlanDiscussions          `json:"planDiscussion,omitempty"`
	PlanDataExchangeApproach *AnalyzedPlanDataExchangeApproach `json:"planDataExchangeApproach,omitempty"`
}

AnalyzedAuditChange represents Changes in an AnalyzedAudit

func (AnalyzedAuditChange) Humanize

func (a AnalyzedAuditChange) Humanize() []string

Humanize returns AnalyzedAuditChanges in human readable sentences

func (AnalyzedAuditChange) HumanizedSubset

func (a AnalyzedAuditChange) HumanizedSubset(size int) []string

HumanizedSubset returns a subset of length size of humanized audit changes

func (AnalyzedAuditChange) IsEmpty

func (a AnalyzedAuditChange) IsEmpty() bool

IsEmpty returns if AnalyzedAuditChange struct is empty

func (*AnalyzedAuditChange) Scan

func (a *AnalyzedAuditChange) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (AnalyzedAuditChange) Value

func (a AnalyzedAuditChange) Value() (driver.Value, error)

Value let's the SQL driver transform the data to the AnalyzedAuditChange type

type AnalyzedCrTdls

type AnalyzedCrTdls struct {
	Activity bool `json:"activity,omitempty"`
}

AnalyzedCrTdls represents an AnalyzedCrTdls in an AnalyzedAuditChange

func (*AnalyzedCrTdls) Humanize

func (a *AnalyzedCrTdls) Humanize() string

Humanize returns AnalyzedCrTdls in a human readable sentence

type AnalyzedDocuments

type AnalyzedDocuments struct {
	Count int `json:"count,omitempty"`
}

AnalyzedDocuments represents an AnalyzedDocuments in an AnalyzedAuditChange

func (*AnalyzedDocuments) Humanize

func (a *AnalyzedDocuments) Humanize() string

Humanize returns AnalyzedDocuments in a human readable sentence

type AnalyzedModelLeadInfo

type AnalyzedModelLeadInfo struct {
	ID         uuid.UUID `json:"id" db:"id"`
	CommonName string    `json:"commonName" db:"common_name"`
}

AnalyzedModelLeadInfo Returns store Information about a ModelLead

func (*AnalyzedModelLeadInfo) String

func (a *AnalyzedModelLeadInfo) String() string

String implements the stringer interface

type AnalyzedModelLeads

type AnalyzedModelLeads struct {
	Added []AnalyzedModelLeadInfo `json:"added,omitempty"`
}

AnalyzedModelLeads represents an AnalyzedModelLeads in an AnalyzedAuditChange

func (*AnalyzedModelLeads) Humanize

func (a *AnalyzedModelLeads) Humanize() []string

Humanize returns AnalyzedModelLeads in human readable sentences

type AnalyzedModelPlan

type AnalyzedModelPlan struct {
	OldName       string   `json:"nameChange,omitempty"`
	StatusChanges []string `json:"statusChanges,omitempty"`
}

AnalyzedModelPlan represents an AnalyzedModelPlan in an AnalyzedAuditChange

func (*AnalyzedModelPlan) Humanize

func (a *AnalyzedModelPlan) Humanize() []string

Humanize returns AnalyzedModelPlan in human readable sentences

func (AnalyzedModelPlan) IsEmpty

func (a AnalyzedModelPlan) IsEmpty() bool

IsEmpty returns if AnalyzedModelPlan fields are empty

type AnalyzedPlanDataExchangeApproach

type AnalyzedPlanDataExchangeApproach struct {
	Activity bool `json:"activity,omitempty"`
}

AnalyzedPlanDataExchangeApproach represents an AnalyzedPlanDataExchangeApproach in an AnalyzedAuditChange

func (*AnalyzedPlanDataExchangeApproach) Humanize

Humanize returns AnalyzedPlanDataExchangeApproach in a human readable sentence

type AnalyzedPlanDiscussions

type AnalyzedPlanDiscussions struct {
	Activity bool `json:"activity,omitempty"`
}

AnalyzedPlanDiscussions represents an AnalyzedPlanDiscussions in an AnalyzedAuditChange

func (*AnalyzedPlanDiscussions) Humanize

func (a *AnalyzedPlanDiscussions) Humanize() string

Humanize returns AnalyzedPlanDiscussions in a human readable sentence

type AnalyzedPlanSections

type AnalyzedPlanSections struct {
	Updated                            []TableName `json:"updated,omitempty"`
	ReadyForReview                     []TableName `json:"readyForReview,omitempty"`
	ReadyForClearance                  []TableName `json:"readyForClearance,omitempty"`
	DataExchangeApproachMarkedComplete bool        `json:"dataExchangeApproachMarkedComplete,omitempty"`
}

AnalyzedPlanSections represents an AnalyzedPlanSections in an AnalyzedAuditChange

func (*AnalyzedPlanSections) Humanize

func (a *AnalyzedPlanSections) Humanize() []string

Humanize returns AnalyzedPlanSections in human readable sentences

func (AnalyzedPlanSections) IsEmpty

func (a AnalyzedPlanSections) IsEmpty() bool

IsEmpty returns if AnalyzedPlanSections fields are empty

type AnticipatedMultiPayerDataAvailabilityUseCase

type AnticipatedMultiPayerDataAvailabilityUseCase string

AnticipatedMultiPayerDataAvailabilityUseCase represents the possible values for anticipated multi-payer data availability use case

const (
	AnticipatedMultiPayerDataAvailabilityUseCaseMoreCompetentAlertDischargeTransferNotification   AnticipatedMultiPayerDataAvailabilityUseCase = "MORE_COMPETENT_ALERT_DISCHARGE_TRANSFER_NOTIFICATION"
	AnticipatedMultiPayerDataAvailabilityUseCaseSupplyMultiPayerClaimsCostUtilAndQualityReporting AnticipatedMultiPayerDataAvailabilityUseCase = "SUPPLY_MULTI_PAYER_CLAIMS_COST_UTIL_AND_QUALITY_REPORTING"
	AnticipatedMultiPayerDataAvailabilityUseCaseFillGapsInCareAlertingAndReports                  AnticipatedMultiPayerDataAvailabilityUseCase = "FILL_GAPS_IN_CARE_ALERTING_AND_REPORTS"
)

Enum values for AnticipatedMultiPayerDataAvailabilityUseCase

type AuditChange

type AuditChange struct {
	ID                  int         `json:"id" db:"id"`
	TableID             int         `json:"tableID" db:"table_id"`
	TableName           TableName   `json:"tableName" db:"table_name"`
	PrimaryKey          uuid.UUID   `json:"primaryKey" db:"primary_key"`
	ForeignKey          uuid.UUID   `json:"foreignKey" db:"foreign_key"`
	SecondaryForeignKey *uuid.UUID  `json:"secondaryForeignKey" db:"secondary_foreign_key"`
	Action              string      `json:"action" db:"action"`
	Fields              AuditFields `json:"fields" db:"fields"`
	ModifiedBy          uuid.UUID   `json:"modifiedBy" db:"modified_by"`
	ModifiedDts         time.Time   `json:"modifiedDts" db:"modified_dts"`
}

AuditChange represents a change to a table row in the database

func (*AuditChange) ModifiedByUserAccount

func (ac *AuditChange) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

type AuditChangeWithModelPlanID

type AuditChangeWithModelPlanID struct {
	AuditChange
	// contains filtered or unexported fields
}

func (AuditChangeWithModelPlanID) GetModelPlanID

func (m AuditChangeWithModelPlanID) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

type AuditField

type AuditField struct {
	Old interface{} `json:"old" db:"old"`
	New interface{} `json:"new" db:"new"`
}

AuditField us a way to represent the old and new values of data from the database.

type AuditFieldChangeType

type AuditFieldChangeType string

AuditFieldChangeType is an enum that represents the possible types of changes that could happen to an audited field

const (
	AFCAnswered AuditFieldChangeType = "ANSWERED"
	AFCUpdated  AuditFieldChangeType = "UPDATED"
	AFCRemoved  AuditFieldChangeType = "REMOVED"
	// This is a type that should not be seen on the frontend. It is possible for it to appear if a value gets changed from null to an empty array, so we expose the type here.
	AFCUnchanged AuditFieldChangeType = "UNCHANGED"
)

These constants represent the different values of AuditFieldChangeType

type AuditFields

type AuditFields map[string]AuditField

AuditFields is a map of changes by field name from the database

func (*AuditFields) Scan

func (a *AuditFields) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (*AuditFields) ToInterface

func (a *AuditFields) ToInterface() (map[string]interface{}, error)

ToInterface returns the audit fields as a generic map[string]interface{}

func (AuditFields) Value

func (a AuditFields) Value() (driver.Value, error)

Value let's the SQL driver transform the data to the AuditFields type

type BenchmarkForPerformanceType

type BenchmarkForPerformanceType string

BenchmarkForPerformanceType represents the possible BENCHMARKFORPERFORMANCETYPE options

const (
	BenchmarkReconcile   BenchmarkForPerformanceType = "YES_RECONCILE"
	BenchmarkReconcileNo BenchmarkForPerformanceType = "YES_NO_RECONCILE"
	BenchmarkNo          BenchmarkForPerformanceType = "NO"
)

These constants represent the choices for BENCHMARKFORPERFORMANCETYPE

type ClaimsBasedPayType

type ClaimsBasedPayType string

ClaimsBasedPayType is the enumeration of options for this category

const (
	// ClaimsBasedPayTypeAdjustmentsToFFSPayments indicates adjustments to FFS payments
	ClaimsBasedPayTypeAdjustmentsToFFSPayments ClaimsBasedPayType = "ADJUSTMENTS_TO_FFS_PAYMENTS"
	// ClaimsBasedPayTypeCareManagementHomeVisits indicates care management home visits
	ClaimsBasedPayTypeCareManagementHomeVisits ClaimsBasedPayType = "CARE_MANAGEMENT_HOME_VISITS"
	// ClaimsBasedPayTypeSNFClaimsWithout3DayHospitalAdmissions indicates SNF claims without 3-Day hospital admissions
	ClaimsBasedPayTypeSNFClaimsWithout3DayHospitalAdmissions ClaimsBasedPayType = "SNF_CLAIMS_WITHOUT_3DAY_HOSPITAL_ADMISSIONS"
	// ClaimsBasedPayTypeTeleHealthServicesNotTraditionalMedicare indicates TeleHealth services not traditional medicare
	ClaimsBasedPayTypeTeleHealthServicesNotTraditionalMedicare ClaimsBasedPayType = "TELEHEALTH_SERVICES_NOT_TRADITIONAL_MEDICARE"
	// ClaimsBasedPayTypePaymentsForPostDischargeHomeVisits indicates payments for post discharge home visits
	ClaimsBasedPayTypePaymentsForPostDischargeHomeVisits ClaimsBasedPayType = "PAYMENTS_FOR_POST_DISCHARGE_HOME_VISITS"
)

type ComplexityCalculationLevelType

type ComplexityCalculationLevelType string

ComplexityCalculationLevelType is an enumeration of options for this category

const (
	// ComplexityCalculationLevelTypeLow indicates a low level of calculation complexity
	ComplexityCalculationLevelTypeLow ComplexityCalculationLevelType = "LOW"
	// ComplexityCalculationLevelTypeMiddle indicates a moderate level of calculation complexity
	ComplexityCalculationLevelTypeMiddle ComplexityCalculationLevelType = "MIDDLE"
	// ComplexityCalculationLevelTypeHigh indicates a high level of calculation complexity
	ComplexityCalculationLevelTypeHigh ComplexityCalculationLevelType = "HIGH"
)

type ComponentGroup

type ComponentGroup string
const (
	ComponentGroupCcmiPmg  ComponentGroup = "CCMI_PCMG"
	ComponentGroupCcmiPpg  ComponentGroup = "CCMI_PPG"
	ComponentGroupCcmiScmg ComponentGroup = "CCMI_SCMG"
	ComponentGroupCcmiSphg ComponentGroup = "CCMI_SPHG"
	ComponentGroupCcmiTbd  ComponentGroup = "CCMI_TBD"
	ComponentGroupCsq      ComponentGroup = "CCSQ"
	ComponentGroupCmcs     ComponentGroup = "CMCS"
	ComponentGroupCm       ComponentGroup = "CM"
	ComponentGroupFchco    ComponentGroup = "FCHCO"
	ComponentGroupCpi      ComponentGroup = "CPI"
)

type ConfidenceType

type ConfidenceType string

ConfidenceType representes the values possible for the amount of confidence in an answer

const (
	ConfidenceNotAtAll   ConfidenceType = "NOT_AT_ALL"
	ConfidenceSlightly   ConfidenceType = "SLIGHTLY"
	ConfidenceFairly     ConfidenceType = "FAIRLY"
	ConfidenceCompletely ConfidenceType = "COMPLETELY"
)

These represent Confidence Type Answers

type CurrentUser

type CurrentUser struct {
}

CurrentUser is a type meant to return information about and relevant to the current user of the application

type DailyDigestCompleteActivityMeta

type DailyDigestCompleteActivityMeta struct {
	ActivityMetaBaseStruct
	ModelPlanIDs []uuid.UUID `json:"modelPlanIDs"`
	Date         time.Time   `json:"date"`
	UserID       uuid.UUID   `json:"userID"`
}

DailyDigestCompleteActivityMeta represents the notification data that is relevant to being tagged in a new Plan Discussion

func (*DailyDigestCompleteActivityMeta) Scan

func (d *DailyDigestCompleteActivityMeta) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (DailyDigestCompleteActivityMeta) Value

Value allows us to satisfy the valuer interface so we can write to the database We need to do a specific implementation instead of relying on the implementation of the embedded struct, as that will only serialize the common data

type DataExchangeApproachMarkedCompleteNotificationType

type DataExchangeApproachMarkedCompleteNotificationType string

DataExchangeApproachMarkedCompleteNotificationType is an enum that represents the type of notification a user wants for when a data exchange approach is marked complete

const (
	DataExchangeApproachMarkedCompleteNotificationTypeAllModels      DataExchangeApproachMarkedCompleteNotificationType = "ALL_MODELS"
	DataExchangeApproachMarkedCompleteNotificationTypeFollowedModels DataExchangeApproachMarkedCompleteNotificationType = "FOLLOWED_MODELS"
	DataExchangeApproachMarkedCompleteNotificationTypeMyModels       DataExchangeApproachMarkedCompleteNotificationType = "MY_MODELS"
)

These constants represent the possible values of a DataExchangeApproachMarkedCompleteNotificationType

type DataExchangeApproachStatus

type DataExchangeApproachStatus string

DataExchangeApproachStatus represents the status of the data exchange approach

const (
	DataExchangeApproachStatusReady      DataExchangeApproachStatus = "READY"
	DataExchangeApproachStatusInProgress DataExchangeApproachStatus = "IN_PROGRESS"
	DataExchangeApproachStatusComplete   DataExchangeApproachStatus = "COMPLETE"
)

Enum values for DataExchangeApproachStatus

type DataFullTimeOrIncrementalType

type DataFullTimeOrIncrementalType string

DataFullTimeOrIncrementalType represents the possible DATAFULLTIMEORINCREMENTALTYPE options

const (
	DataFullTime    DataFullTimeOrIncrementalType = "FULL_TIME"
	DataIncremental DataFullTimeOrIncrementalType = "INCREMENTAL"
)

These constants represent the choices for DATAFULLTIMEORINCREMENTALTYPE

type DataStartsType

type DataStartsType string

DataStartsType represents the possible DATASTARTSTYPE options

const (
	DataStartsApplication DataStartsType = "DURING_APPLICATION_PERIOD"
	DataStartsShort       DataStartsType = "SHORTLY_BEFORE_THE_START_DATE"
	DataStartsEarly       DataStartsType = "EARLY_IN_THE_FIRST_PERFORMANCE_YEAR"
	DataStartsLater       DataStartsType = "LATER_IN_THE_FIRST_PERFORMANCE_YEAR"
	DataStartsSubsequent  DataStartsType = "IN_THE_SUBSEQUENT_PERFORMANCE_YEAR"
	DataStartsAtSome      DataStartsType = "AT_SOME_OTHER_POINT_IN_TIME"
	DataStartsNot         DataStartsType = "NOT_PLANNING_TO_DO_THIS"
	DataStartsOther       DataStartsType = "OTHER"
)

These constants represent the choices for DATASTARTSTYPE

type DataToCollectFromParticipants

type DataToCollectFromParticipants string

DataToCollectFromParticipants represents the possible values for data to collect from participants

const (
	DataToCollectFromParticipantsBankingInformationToMakeNonClaimsBasedPayments DataToCollectFromParticipants = "BANKING_INFORMATION_TO_MAKE_NON_CLAIMS_BASED_PAYMENTS"
	DataToCollectFromParticipantsClinicalData                                   DataToCollectFromParticipants = "CLINICAL_DATA"
	DataToCollectFromParticipantsCollectBidsAndPlanInformation                  DataToCollectFromParticipants = "COLLECT_BIDS_AND_PLAN_INFORMATION"
	DataToCollectFromParticipantsCooperativeAgreementApplication                DataToCollectFromParticipants = "COOPERATIVE_AGREEMENT_APPLICATION"
	DataToCollectFromParticipantsDecarbonizationData                            DataToCollectFromParticipants = "DECARBONIZATION_DATA"
	DataToCollectFromParticipantsExpandedDemographicsData                       DataToCollectFromParticipants = "EXPANDED_DEMOGRAPHICS_DATA"
	DataToCollectFromParticipantsFeeForServiceClaimsAndApplyModelRules          DataToCollectFromParticipants = "FEE_FOR_SERVICE_CLAIMS_AND_APPLY_MODEL_RULES"
	DataToCollectFromParticipantsLearningSystemMetrics                          DataToCollectFromParticipants = "LEARNING_SYSTEM_METRICS"
	DataToCollectFromParticipantsParticipantAgreement                           DataToCollectFromParticipants = "PARTICIPANT_AGREEMENT"
	DataToCollectFromParticipantsParticipantAgreementLetterOfIntent             DataToCollectFromParticipants = "PARTICIPANT_AGREEMENT_LETTER_OF_INTENT"
	DataToCollectFromParticipantsParticipantAgreementRequestForApplication      DataToCollectFromParticipants = "PARTICIPANT_AGREEMENT_REQUEST_FOR_APPLICATION"
	DataToCollectFromParticipantsParticipantReportedData                        DataToCollectFromParticipants = "PARTICIPANT_REPORTED_DATA"
	DataToCollectFromParticipantsParticipantReportedQualityMeasures             DataToCollectFromParticipants = "PARTICIPANT_REPORTED_QUALITY_MEASURES"
	DataToCollectFromParticipantsProviderParticipantRoster                      DataToCollectFromParticipants = "PROVIDER_PARTICIPANT_ROSTER"
	DataToCollectFromParticipantsReportsFromParticipants                        DataToCollectFromParticipants = "REPORTS_FROM_PARTICIPANTS"
	DataToCollectFromParticipantsSocialDeterminantsOfHealth                     DataToCollectFromParticipants = "SOCIAL_DETERMINANTS_OF_HEALTH"
	DataToCollectFromParticipantsSurvey                                         DataToCollectFromParticipants = "SURVEY"
	DataToCollectFromParticipantsOther                                          DataToCollectFromParticipants = "OTHER"
)

Enum values for DataToCollectFromParticipantsType

type DataToSendToParticipants

type DataToSendToParticipants string

DataToSendToParticipants represents the possible values for data to send to participants

const (
	DataToSendToParticipantsDataFeedbackDashboard           DataToSendToParticipants = "DATA_FEEDBACK_DASHBOARD"
	DataToSendToParticipantsNonClaimsBasedPayments          DataToSendToParticipants = "NON_CLAIMS_BASED_PAYMENTS"
	DataToSendToParticipantsOperationsData                  DataToSendToParticipants = "OPERATIONS_DATA"
	DataToSendToParticipantsPartiallyAdjustedClaimsData     DataToSendToParticipants = "PARTIALLY_ADJUSTED_CLAIMS_DATA"
	DataToSendToParticipantsRawClaimsData                   DataToSendToParticipants = "RAW_CLAIMS_DATA"
	DataToSendToParticipantsDataWillNotBeSentToParticipants DataToSendToParticipants = "DATA_WILL_NOT_BE_SENT_TO_PARTICIPANTS"
)

Enum values for DataToSendToParticipantsType

type DatabaseOperation

type DatabaseOperation string

DatabaseOperation The possible types of operations that can cause an audit entry. Currently they are represented in the audit.change table as the first letter of the action EG I, D, U, T

const (
	DBOpInsert   DatabaseOperation = "INSERT"
	DBOpUpdate   DatabaseOperation = "UPDATE"
	DBOpDelete   DatabaseOperation = "DELETE"
	DBOpTruncate DatabaseOperation = "TRUNCATE"
)

these are all the possible values of a Database Operation

type DateChange

type DateChange struct {
	IsChanged     bool
	Field         DateChangeFieldType
	IsRange       bool
	OldDate       *time.Time
	NewDate       *time.Time
	OldRangeStart *time.Time
	OldRangeEnd   *time.Time
	NewRangeStart *time.Time
	NewRangeEnd   *time.Time
}

type DateChangeFieldType

type DateChangeFieldType string
const (
	DateChangeFieldTypeCompleteIcip      DateChangeFieldType = "COMPLETE_ICIP"
	DateChangeFieldTypeClearance         DateChangeFieldType = "CLEARANCE"
	DateChangeFieldTypeAnnounced         DateChangeFieldType = "ANNOUNCED"
	DateChangeFieldTypeApplications      DateChangeFieldType = "APPLICATIONS"
	DateChangeFieldTypePerformancePeriod DateChangeFieldType = "PERFORMANCE_PERIOD"
	DateChangeFieldTypeWrapUpEnds        DateChangeFieldType = "WRAP_UP_ENDS"
)

type DateHistogramAggregationBucket

type DateHistogramAggregationBucket struct {
	Key            string    `json:"key"`
	DocCount       int       `json:"doc_count"`
	MaxModifiedDts time.Time `json:"max_modified_dts"`
	MinModifiedDts time.Time `json:"min_modified_dts"`
}

DateHistogramAggregationBucket represents a bucket from an Elasticsearch date histogram aggregation

func NewDateHistogramAggregationBucketFromRaw

func NewDateHistogramAggregationBucketFromRaw(rawBucket *RawDateHistogramAggregationBucket) (
	*DateHistogramAggregationBucket,
	error,
)

NewDateHistogramAggregationBucketFromRaw creates a new DateHistogramAggregationBucket object from the given raw bucket

type DateHistogramAggregationResponse

type DateHistogramAggregationResponse struct {
	Aggregations struct {
		ChangesOverTime struct {
			Buckets []RawDateHistogramAggregationBucket `json:"buckets"`
		} `json:"changes_over_time"`
	} `json:"aggregations"`
}

DateHistogramAggregationResponse represents the response from an Elasticsearch date histogram aggregation

type DatesChangedActivityMeta

type DatesChangedActivityMeta struct {
	ActivityMetaBaseStruct

	DateChanges []DateChange
	// contains filtered or unexported fields
}

DatesChangedActivityMeta represents the notification data that is relevant when a user changes dates in a model plan

func (DatesChangedActivityMeta) GetModelPlanID

func (m DatesChangedActivityMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*DatesChangedActivityMeta) Scan

func (d *DatesChangedActivityMeta) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (DatesChangedActivityMeta) Value

Value allows us to satisfy the valuer interface so we can write to the database We need to do a specific implementation instead of relying on the implementation of the embedded struct, as that will only serialize the common data

type DatesChangedNotificationType

type DatesChangedNotificationType string

DatesChangedNotificationType is an enum that represents the type of notification a user wants for dates changed

const (
	DatesChangedNotificationTypeAllModels      DatesChangedNotificationType = "ALL_MODELS"
	DatesChangedNotificationTypeFollowedModels DatesChangedNotificationType = "FOLLOWED_MODELS"
	DatesChangedNotificationTypeMyModels       DatesChangedNotificationType = "MY_MODELS"
)

These constants represent the possible values of a DatesChangedNotificationType

type DiscussionReply

type DiscussionReply struct {
	Content             TaggedHTML          `json:"content" db:"content"`
	UserRole            *DiscussionUserRole `json:"userRole" db:"user_role"`
	UserRoleDescription *string             `json:"userRoleDescription" db:"user_role_description"`
	IsAssessment        bool                `json:"isAssessment" db:"is_assessment"`
	// contains filtered or unexported fields
}

DiscussionReply represents a comment that was made on the PlanDiscussion

func NewDiscussionReply

func NewDiscussionReply(
	principal uuid.UUID,
	isAssessment bool,
	discussionID uuid.UUID,
	content TaggedHTML,
	userRole *DiscussionUserRole,
	userRoleDescription *string,
) *DiscussionReply

NewDiscussionReply returns a new Discussion Reply

func (DiscussionReply) GetCreatedBy

func (b DiscussionReply) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (DiscussionReply) GetDiscussionID

func (d DiscussionReply) GetDiscussionID() uuid.UUID

GetDiscussionID returns DiscussionID

func (DiscussionReply) GetID

func (b DiscussionReply) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (DiscussionReply) GetModifiedBy

func (b DiscussionReply) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (DiscussionReply) MostRecentModification

func (b DiscussionReply) MostRecentModification() (time.Time, uuid.UUID)

func (*DiscussionReply) SetModifiedBy

func (b *DiscussionReply) SetModifiedBy(principal authentication.Principal) error

type DiscussionRoleSelection

type DiscussionRoleSelection struct {
	UserRole            DiscussionUserRole `json:"userRole" db:"user_role"`
	UserRoleDescription *string            `json:"userRoleDescription" db:"user_role_description"`
}

DiscussionRoleSelection represents a user's selection of a DiscussionUserRole and optionally a description of their role

type DiscussionUserRole

type DiscussionUserRole string

DiscussionUserRole is an enum that represents the role of a user in a Discussion

const (
	DiscussionRoleCmsSystemServiceTeam             DiscussionUserRole = "CMS_SYSTEM_SERVICE_TEAM"
	DiscussionRoleLeadership                       DiscussionUserRole = "LEADERSHIP"
	DiscussionRoleMedicareAdministrativeContractor DiscussionUserRole = "MEDICARE_ADMINISTRATIVE_CONTRACTOR"
	DiscussionRoleMintTeam                         DiscussionUserRole = "MINT_TEAM"
	DiscussionRoleItLead                           DiscussionUserRole = "IT_LEAD"
	DiscussionRoleModelLead                        DiscussionUserRole = "MODEL_LEAD"
	DiscussionRoleModelTeam                        DiscussionUserRole = "MODEL_TEAM"
	DiscussionRoleSharedSystemMaintainer           DiscussionUserRole = "SHARED_SYSTEM_MAINTAINER"
	DiscussionRoleSolutionArchitect                DiscussionUserRole = "SOLUTION_ARCHITECT"
	DiscussionRoleNoneOfTheAbove                   DiscussionUserRole = "NONE_OF_THE_ABOVE"
)

These constants represent the possible values of a DiscussionUserRole

func DiscussionUserRolePointer

func DiscussionUserRolePointer(role DiscussionUserRole) *DiscussionUserRole

DiscussionUserRolePointer returns a pointer to a DiscussionUserRole input

func (DiscussionUserRole) Humanize

func (r DiscussionUserRole) Humanize(userRoleDescription string) string

Humanize converts the enumeration of the Discussion User Role and the description for NONE OF THE ABOVE And converts it to human readable text.

type DocumentType

type DocumentType string

DocumentType is an enum that represents the type of document

const (
	DocumentTypeConceptPaper                         DocumentType = "CONCEPT_PAPER"
	DocumentTypePolicyPaper                          DocumentType = "POLICY_PAPER"
	DocumentTypeICIPDraft                            DocumentType = "ICIP_DRAFT"
	DocumentTypeMarketResearch                       DocumentType = "MARKET_RESEARCH"
	DocumentTypeDesignParametersMemo                 DocumentType = "DESIGN_PARAMETERS_MEMO"
	DocumentTypeOfficeOfTheAdministratorPresentation DocumentType = "OFFICE_OF_THE_ADMINISTRATOR_PRESENTATION"
	DocumentTypeOther                                DocumentType = "OTHER"
)

These constants represent the different values of DocumentType

type EChimpCR

type EChimpCR struct {
	CrNumber            string         `parquet:"crNumber" json:"crNumber" gqlgen:"id"` // we use gqlgen:"id" here to match the GQL schema
	VersionNum          string         `parquet:"versionNum" json:"versionNum"`
	Initiator           *string        `parquet:"initiator" json:"initiator"`
	FirstName           *string        `parquet:"firstName" json:"firstName"`
	LastName            *string        `parquet:"lastName" json:"lastName"`
	Title               *string        `parquet:"title" json:"title"`
	SensitiveFlag       *bool          `parquet:"sensitiveFlag" json:"sensitiveFlag"`
	ImplementationDate  *string        `parquet:"implementationDate" json:"implementationDate"`
	CrSummary           *TaggedContent `parquet:"crSummary" json:"crSummary"`
	CrStatus            *string        `parquet:"crStatus" json:"crStatus"`
	EmergencyCrFlag     *bool          `parquet:"emergencyCrFlag" json:"emergencyCrFlag"`
	RelatedCrNumbers    *string        `parquet:"relatedCrNumbers" json:"relatedCrNumbers"`
	RelatedCrTdlNumbers *string        `parquet:"relatedCrTdlNumbers" json:"relatedCrTdlNumbers"`
	AssociatedModelUids *uuid.UUID     `parquet:"associatedModelUids" json:"associatedModelUids"`
}

EChimpCR represents a CR that came from E-Chimp

func ConvertRawCRSToParsed

func ConvertRawCRSToParsed(rawRecords []*EChimpCRRaw) ([]*EChimpCR, error)

func (*EChimpCR) IsEChimpCRAndTdls

func (echimp *EChimpCR) IsEChimpCRAndTdls()

type EChimpCRAndTDLS

type EChimpCRAndTDLS interface {
	IsEChimpCRAndTdls()
}

EChimpCRAndTDLS is an interface that represents the union type for CRs and TDLs in graphql

type EChimpCRRaw

type EChimpCRRaw struct {
	CrNumber            string `parquet:"crNumber" json:"crNumber" gqlgen:"id"` // we use gqlgen:"id" here to match the GQL schema
	VersionNum          string `parquet:"versionNum" json:"versionNum"`
	Initiator           string `parquet:"initiator" json:"initiator"`
	FirstName           string `parquet:"firstName" json:"firstName"`
	LastName            string `parquet:"lastName" json:"lastName"`
	Title               string `parquet:"title" json:"title"`
	SensitiveFlag       string `parquet:"sensitiveFlag" json:"sensitiveFlag"`
	ImplementationDate  string `parquet:"implementationDate" json:"implementationDate"`
	CrSummary           string `parquet:"crSummary" json:"crSummary"`
	CrStatus            string `parquet:"crStatus" json:"crStatus"`
	EmergencyCrFlag     string `parquet:"emergencyCrFlag" json:"emergencyCrFlag"`
	RelatedCrNumbers    string `parquet:"relatedCrNumbers" json:"relatedCrNumbers"`
	RelatedCrTdlNumbers string `parquet:"relatedCrTdlNumbers" json:"relatedCrTdlNumbers"`
	AssociatedModelUids string `parquet:"associatedModelUids" json:"associatedModelUids"`
}

EChimpCRRaw represents a CR that came from E-Chimp before sanitization

func (*EChimpCRRaw) Sanitize

func (raw *EChimpCRRaw) Sanitize() (*EChimpCR, error)

type EChimpTDL

type EChimpTDL struct {
	TdlNumber           string     `parquet:"tdlNumber" json:"tdlNumber" gqlgen:"id"` // we use gqlgen:"id" here to match the GQL schema
	VersionNum          string     `parquet:"versionNum" json:"versionNum"`
	Initiator           *string    `parquet:"initiator" json:"initiator"`
	FirstName           *string    `parquet:"firstName" json:"firstName"`
	LastName            *string    `parquet:"lastName" json:"lastName"`
	Title               *string    `parquet:"title" json:"title"`
	IssuedDate          *string    `parquet:"issuedDate" json:"issuedDate"`
	Status              *string    `parquet:"status" json:"status"`
	AssociatedModelUids *uuid.UUID `parquet:"associatedModelUids" json:"associatedModelUids"`
}

EChimpTDL represents a TDL that came from E-Chimp

func ConvertRawTDLSToParsed

func ConvertRawTDLSToParsed(rawRecords []*EChimpTDLRaw) ([]*EChimpTDL, error)

func (*EChimpTDL) IsEChimpCRAndTdls

func (echimp *EChimpTDL) IsEChimpCRAndTdls()

type EChimpTDLRaw

type EChimpTDLRaw struct {
	TdlNumber           string `parquet:"tdlNumber" json:"tdlNumber" gqlgen:"id"` // we use gqlgen:"id" here to match the GQL schema
	VersionNum          string `parquet:"versionNum" json:"versionNum"`
	Initiator           string `parquet:"initiator" json:"initiator"`
	FirstName           string `parquet:"firstName" json:"firstName"`
	LastName            string `parquet:"lastName" json:"lastName"`
	Title               string `parquet:"title" json:"title"`
	IssuedDate          string `parquet:"issuedDate" json:"issuedDate"`
	Status              string `parquet:"status" json:"status"`
	AssociatedModelUids string `parquet:"associatedModelUids" json:"associatedModelUids"`
}

EChimpTDLRaw represents a TDL that came from E-Chimp parquet file before being sanitized

func (*EChimpTDLRaw) Sanitize

func (raw *EChimpTDLRaw) Sanitize() (*EChimpTDL, error)

type EnumArray

type EnumArray[enumType ~string] []enumType

func (EnumArray[EnumType]) MarshalJSON

func (e EnumArray[EnumType]) MarshalJSON() ([]byte, error)

MarshalJSON marshals the EnumArray into JSON for GraphQL

func (*EnumArray[EnumType]) Scan

func (e *EnumArray[EnumType]) Scan(value interface{}) error

Scan implements the Scanner interface to decode data from the database

func (*EnumArray[EnumType]) UnmarshalJSON

func (e *EnumArray[EnumType]) UnmarshalJSON(data []byte) error

UnmarshalJSON un marshals the EnumArray from JSON for GraphQL

func (EnumArray[EnumType]) Value

func (e EnumArray[EnumType]) Value() (driver.Value, error)

Value implements the Valuer interface to encode data into the database

type EnumTranslation

type EnumTranslation struct {
	GeneralName string  `json:"generalName"`
	GroupedName *string `json:"groupedName"`
}

type ExisitingModelLinkFieldType

type ExisitingModelLinkFieldType string

ExisitingModelLinkFieldType is used to distinguish what part of the model plan this link refers to.

const (
	// EMLFTGeneralCharacteristicsResemblesExistingModelWhich is used to denote the link is in reference to the ResemblesExistingModelWhich question on Plan_General_Characteristics
	EMLFTGeneralCharacteristicsResemblesExistingModelWhich ExisitingModelLinkFieldType = "GEN_CHAR_RESEMBLES_EXISTING_MODEL_WHICH"
	// EMLFTGeneralCharacteristicsParticipationExistingModelWhich is used to denote the link is in refernce to the Participation in an existing model which question on Plan_Genereal_Characteristics
	EMLFTGeneralCharacteristicsParticipationExistingModelWhich ExisitingModelLinkFieldType = "GEN_CHAR_PARTICIPATION_EXISTING_MODEL_WHICH"
)

type ExistingModel

type ExistingModel struct {
	ID        int    `json:"id" db:"id"`
	ModelName string `json:"modelName" db:"model_name"`
	Stage     string `json:"stage" db:"stage"`

	NumberOfParticipants          *string    `json:"numberOfParticipants" db:"number_of_participants"`
	Category                      *string    `json:"category" db:"category"`
	Authority                     *string    `json:"authority" db:"authority"`
	Description                   *string    `json:"description" db:"description"`
	NumberOfBeneficiariesImpacted *int       `json:"numberOfBeneficiariesImpacted" db:"number_of_beneficiaries_impacted"`
	NumberOfPhysiciansImpacted    *int       `json:"numberOfPhysiciansImpacted" db:"number_of_physicians_impacted"`
	DateBegan                     *time.Time `json:"dateBegan" db:"date_began"`
	DateEnded                     *time.Time `json:"dateEnded" db:"date_ended"`
	States                        *string    `json:"states" db:"states"`
	Keywords                      *string    `json:"keywords" db:"keywords"`
	URL                           *string    `json:"url" db:"url"`
	DisplayModelSummary           *bool      `json:"displayModelSummary" db:"display_model_summary"`
	// contains filtered or unexported fields
}

ExistingModel represents an existing innovation model that is already in use

func (*ExistingModel) CreatedByUserAccount

func (cbr *ExistingModel) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (*ExistingModel) ModifiedByUserAccount

func (mbr *ExistingModel) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

type ExistingModelLink struct {
	ExistingModelID    *int                        `json:"existingModelID" db:"existing_model_id"`
	CurrentModelPlanID *uuid.UUID                  `json:"currentModelPlanID" db:"current_model_plan_id"`
	FieldName          ExisitingModelLinkFieldType `json:"fieldName" db:"field_name"`
	// contains filtered or unexported fields
}

ExistingModelLink represents a link between another current model, or an existing model from the existing model table.

func NewExistingModelLink(createdBy uuid.UUID, modelPlanID uuid.UUID, existingModelID *int, currentModelPlanID *uuid.UUID) *ExistingModelLink

NewExistingModelLink instantiates a new Existing ModelLink

func (ExistingModelLink) GetCreatedBy

func (b ExistingModelLink) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (ExistingModelLink) GetID

func (b ExistingModelLink) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (ExistingModelLink) GetModelPlanID

func (m ExistingModelLink) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (ExistingModelLink) GetModifiedBy

func (b ExistingModelLink) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (ExistingModelLink) MostRecentModification

func (b ExistingModelLink) MostRecentModification() (time.Time, uuid.UUID)

func (*ExistingModelLink) SetModifiedBy

func (b *ExistingModelLink) SetModifiedBy(principal authentication.Principal) error
type ExistingModelLinks struct {
	FieldName ExisitingModelLinkFieldType `json:"fieldName" db:"field_name"`
	Links     []*ExistingModelLink

	// Name array to store data when specifically requested from the database. It isn't specifcally returned from the database unless requested by GQL
	NameArray pq.StringArray `json:"names_array_db" db:"name_array"`
	// contains filtered or unexported fields
}

ExistingModelLinks is a wrapper for a collection of Existing Model Links

func NewExistingModelLinks(modelPlanID uuid.UUID, fieldName ExisitingModelLinkFieldType, links []*ExistingModelLink) *ExistingModelLinks

NewExistingModelLinks instantiates a new ExistingModelLinks

func (ExistingModelLinks) GetModelPlanID

func (m ExistingModelLinks) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

type FrequencyType

type FrequencyType string

FrequencyType represents the possible Frequency options

const (
	FrequencyTypeAnnually     FrequencyType = "ANNUALLY"
	FrequencyTypeSemiannually FrequencyType = "SEMIANNUALLY"
	FrequencyTypeQuarterly    FrequencyType = "QUARTERLY"
	FrequencyTypeMonthly      FrequencyType = "MONTHLY"
	FrequencyTypeContinually  FrequencyType = "CONTINUALLY"
	FrequencyTypeOther        FrequencyType = "OTHER"
)

These constants represent the different values of FrequencyType

type FundingSource

type FundingSource string

FundingSource is an enumeration of options for this category

const (
	// FundingSourcePatientProtectionAffordableCareAct indicates the funding source is categorically patient protection affordable care act
	FundingSourcePatientProtectionAffordableCareAct FundingSource = "PATIENT_PROTECTION_AFFORDABLE_CARE_ACT"
	// FundingSourceTrustFund indicates the funding source is categorically trust fund
	FundingSourceTrustFund FundingSource = "TRUST_FUND"

	FundingSourceMedicareA FundingSource = "MEDICARE_PART_A_HI_TRUST_FUND"

	FundingSourceMedicareB FundingSource = "MEDICARE_PART_B_SMI_TRUST_FUND"
	// FundingSourceOther indicates the funding source is not included in the provided options
	FundingSourceOther FundingSource = "Other"
)

type GQLTableName

type GQLTableName string

GQLTableName represents the types of GQLTableName types.

const (
	GQTNAnalyzedaudit                GQLTableName = "analyzedAudit"
	GQTNDiscussionreply              GQLTableName = "discussionReply"
	GQTNExistingmodel                GQLTableName = "existingModel"
	GQTNExistingmodellink            GQLTableName = "existingModelLink"
	GQTNModelplan                    GQLTableName = "modelPlan"
	GQTNNdaagreement                 GQLTableName = "ndaAgreement"
	GQTNOperationalneed              GQLTableName = "operationalNeed"
	GQTNOperationalsolution          GQLTableName = "operationalSolution"
	GQTNOperationalsolutionsubtask   GQLTableName = "operationalSolutionSubtask"
	GQTNPlanbasics                   GQLTableName = "planBasics"
	GQTNPlanbeneficiaries            GQLTableName = "planBeneficiaries"
	GQTNPlancollaborator             GQLTableName = "planCollaborator"
	GQTNPlancrtdl                    GQLTableName = "planCrTdl"
	GQTNPlandiscussion               GQLTableName = "planDiscussion"
	GQTNPlandocument                 GQLTableName = "planDocument"
	GQTNPlandocumentsolutionlink     GQLTableName = "planDocumentSolutionLink"
	GQTNPlangeneralcharacteristics   GQLTableName = "planGeneralCharacteristics"
	GQTNPlanopsevalandlearning       GQLTableName = "planOpsEvalAndLearning"
	GQTNPlanparticipantsandproviders GQLTableName = "planParticipantsAndProviders"
	GQTNPlanpayments                 GQLTableName = "planPayments"
	GQTNPossibleoperationalneed      GQLTableName = "possibleOperationalNeed"
	GQTNPossibleoperationalsolution  GQLTableName = "possibleOperationalSolution"
	GQTNUseraccount                  GQLTableName = "userAccount"
)

These are the options for GQLTableName

type GainsharePaymentsEligibility

type GainsharePaymentsEligibility string

GainsharePaymentsEligibility represents the possible GainsharePaymentsEligibility values

const (
	GainsharePaymentsEligibilityALLPROVIDERS  GainsharePaymentsEligibility = "ALL_PROVIDERS"
	GainsharePaymentsEligibilitySOMEPROVIDERS GainsharePaymentsEligibility = "SOME_PROVIDERS"
	GainsharePaymentsEligibilityOTHER         GainsharePaymentsEligibility = "OTHER"
	GainsharePaymentsEligibilityNO            GainsharePaymentsEligibility = "NO"
)

These constants represent the choices for GainsharePaymentsEligibility

type GeneralStatus

type GeneralStatus string
const (
	MbSSPlanned GeneralStatus = "PLANNED"
	MbSSActive  GeneralStatus = "ACTIVE"
	MbSSEnded   GeneralStatus = "ENDED"
	MbSSOther   GeneralStatus = "OTHER"
)

type GeographyRegionType

type GeographyRegionType string

GeographyRegionType represents the possible values for the "Geography Region Type" field

const (
	GeographyRegionTypeCBSA GeographyRegionType = "CBSA"
	GeographyRegionTypeHRR  GeographyRegionType = "HRR"
	GeographyRegionTypeMSA  GeographyRegionType = "MSA"
)

These constants represent the different values of GeographyRegionType

type HTMLMention

type HTMLMention struct {
	RawHTMLNode htmlPackage.Node
	RawHTML     html
	Type        TagType
	DataLabel   string
	EntityRaw   string
	InnerHTML   string
	EntityUUID  *uuid.UUID
	EntityIntID *int
	EntityDB    interface{}   // This is for marshaling to the template
	Entity      *TaggedEntity // this is used to store a reference to the tagged entity
}

HTMLMention represents Meta data about an entity tagged in text

func (HTMLMention) ToHTML

func (hm HTMLMention) ToHTML() (html, error)

ToHTML converts an HTMLMention to an HTMLString

func (HTMLMention) ToTag

func (hm HTMLMention) ToTag(taggedField string, taggedTable string, taggedContentID uuid.UUID) Tag

ToTag converts an HTMLMention to a tag

type IBaseStruct

type IBaseStruct interface {
	GetID() uuid.UUID
	GetCreatedBy() string
	GetModifiedBy() *string
	SetModifiedBy(principal authentication.Principal) error
	MostRecentModification() (time.Time, uuid.UUID)
}

IBaseStruct is an interface that all models must implement

type IBaseTaskListSection

type IBaseTaskListSection interface {
	CalcStatus(TaskStatus) error
	//methods from BaseStruct
	GetID() uuid.UUID
	GetCreatedBy() string
	GetModifiedBy() *string
	SetModifiedBy(principal authentication.Principal) error
	GetStatus() TaskStatus
	MostRecentModification() (time.Time, uuid.UUID)
}

IBaseTaskListSection returns the embedded BaseTaskListSection

type IDiscussionRelation

type IDiscussionRelation interface {
	GetDiscussionID() uuid.UUID
}

IDiscussionRelation is an interface that represents models that are related to a discussion.

type IModelPlanRelation

type IModelPlanRelation interface {
	GetModelPlanID() uuid.UUID
}

IModelPlanRelation is an interface that represents models that are related to a model plan.

type IOperationalNeedRelation

type IOperationalNeedRelation interface {
	GetOperationalNeedID() uuid.UUID
}

IOperationalNeedRelation is an interface that represents models that are related to an operational need.

type ISolutionRelation

type ISolutionRelation interface {
	GetSolutionID() uuid.UUID
}

ISolutionRelation is an interface that represents models that are related to a solution.

type ITranslationField

type ITranslationField interface {
	// Returns the label directly for the field without reference to a parent.
	GetLabel() string
	GetReferencesLabel(map[string]ITranslationField) *string

	GetFieldOrder() float64

	HasOptions() bool
	// Returns options if a translationField has options
	GetOptions() (map[string]interface{}, bool)

	HasParent() bool
	GetParent() (ITranslationParent, bool)

	GetFormType() TranslationFormType
	GetDataType() TranslationDataType

	HasChildren() bool
	GetChildren() (map[string][]TranslationField, bool)

	GetQuestionType() *TranslationQuestionType

	// GetTableReference returns the table that a translation references.
	GetTableReference() (TableName, bool)
}

ITranslationField defines the signature every translation is expected to have

type ITranslationParent

type ITranslationParent interface {
	// contains filtered or unexported methods
}

ITranslationParent is the shared interface for translations that have some sort of parent

type IncorrectModelStatusActivityMeta

type IncorrectModelStatusActivityMeta struct {
	ActivityMetaBaseStruct

	PhaseSuggestion PhaseSuggestion
	CurrentStatus   string
	ModelPlanName   string
	// contains filtered or unexported fields
}

IncorrectModelStatusActivityMeta represents the notification data for an incorrect model status activity

func (IncorrectModelStatusActivityMeta) GetModelPlanID

func (m IncorrectModelStatusActivityMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*IncorrectModelStatusActivityMeta) Scan

func (d *IncorrectModelStatusActivityMeta) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (IncorrectModelStatusActivityMeta) Value

Value allows us to satisfy the valuer interface so we can write to the database

type KeyContact

type KeyContact struct {
	MailboxTitle   *string `db:"mailbox_title" json:"mailboxTitle"`
	MailboxAddress *string `db:"mailbox_address" json:"mailboxAddress"`
	// These are convenience fields, they are not stored in the database, they are sourced from user account
	Name  *string `db:"name" json:"name"`
	Email *string `db:"email" json:"email"`

	SubjectArea       string    `db:"subject_area" json:"subjectArea"`
	SubjectCategoryID uuid.UUID `db:"subject_category_id" json:"subjectCategoryId"`
	// contains filtered or unexported fields
}

func NewKeyContact

func NewKeyContact(
	createdBy uuid.UUID,
	mailboxTitle *string,
	mailboxAddress *string,
	userID *uuid.UUID,
	subjectArea string,
	subjectCategoryID uuid.UUID,
) *KeyContact

NewKeyContact returns a new KeyContact object

func (KeyContact) GetCreatedBy

func (b KeyContact) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (KeyContact) GetID

func (b KeyContact) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (KeyContact) GetModifiedBy

func (b KeyContact) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (KeyContact) MostRecentModification

func (b KeyContact) MostRecentModification() (time.Time, uuid.UUID)

func (*KeyContact) SetModifiedBy

func (b *KeyContact) SetModifiedBy(principal authentication.Principal) error

func (*KeyContact) UserAccount

func (b *KeyContact) UserAccount(ctx context.Context) (*authentication.UserAccount, error)

type KeyContactCategory

type KeyContactCategory struct {
	Name string `json:"name" db:"name"`
	// contains filtered or unexported fields
}

func NewKeyContactCategory

func NewKeyContactCategory(createdBy uuid.UUID, name string) *KeyContactCategory

func (KeyContactCategory) GetCreatedBy

func (b KeyContactCategory) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (KeyContactCategory) GetID

func (b KeyContactCategory) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (KeyContactCategory) GetModifiedBy

func (b KeyContactCategory) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (KeyContactCategory) MostRecentModification

func (b KeyContactCategory) MostRecentModification() (time.Time, uuid.UUID)

func (*KeyContactCategory) SetModifiedBy

func (b *KeyContactCategory) SetModifiedBy(principal authentication.Principal) error

type LinkedExistingModel

type LinkedExistingModel interface {
	// contains filtered or unexported methods
}

LinkedExistingModel is an interface which is used to return a Union type for graphql. Specifically, it allows us to return either a model plan or an existing model.

type LockableSection

type LockableSection string

LockableSection represents any section of the application that a user can uniquely hold a lock on. It _largely_ (currently) maps to the sections of the Task List, but also includes Data Exchange, which notably isn't part of the Task List.

const (
	LockableSectionBasics                          LockableSection = "BASICS"
	LockableSectionGeneralCharacteristics          LockableSection = "GENERAL_CHARACTERISTICS"
	LockableSectionParticipantsAndProviders        LockableSection = "PARTICIPANTS_AND_PROVIDERS"
	LockableSectionBeneficiaries                   LockableSection = "BENEFICIARIES"
	LockableSectionOperationsEvaluationAndLearning LockableSection = "OPERATIONS_EVALUATION_AND_LEARNING"
	LockableSectionPayment                         LockableSection = "PAYMENT"
	LockableSectionItTools                         LockableSection = "IT_TOOLS"
	LockableSectionPrepareForClearance             LockableSection = "PREPARE_FOR_CLEARANCE"
	LockableSectionDataExchangeApproach            LockableSection = "DATA_EXCHANGE_APPROACH"
	LockableSectionDataModelsToOperationMatrix     LockableSection = "MODELS_TO_OPERATION_MATRIX"
	LockableSectionTimeline                        LockableSection = "TIMELINE"
)

These are the options for LockableSection

type MTO

type MTO struct {

	// Note a ready for review by relation could make sense here, and also be embedded for base task list section
	ReadyForReviewBy  *uuid.UUID `json:"readyForReviewBy" db:"ready_for_review_by"`
	ReadyForReviewDts *time.Time `json:"readyForReviewDts" db:"ready_for_review_dts"`
	// contains filtered or unexported fields
}

func (MTO) GetCreatedBy

func (b MTO) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTO) GetID

func (b MTO) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTO) GetModelPlanID

func (m MTO) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTO) GetModifiedBy

func (b MTO) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTO) MostRecentModification

func (b MTO) MostRecentModification() (time.Time, uuid.UUID)

func (*MTO) SetModifiedBy

func (b *MTO) SetModifiedBy(principal authentication.Principal) error

type MTOCategories

type MTOCategories struct {
	Category    *MTOCategory    `json:"category,omitempty"`
	SubCategory *MTOSubcategory `json:"subCategory,omitempty"`
}

MTOCategories is a struct meant to represent the Category and Subcategory associated with a given MTO Milestone. This struct exists to allow us to resolve/fetch both Category and Subcategory at the same time and return them together in a single resolver.

type MTOCategory

type MTOCategory struct {
	Name     string     `json:"name" db:"name"`
	Position int        `json:"position" db:"position"`
	ParentID *uuid.UUID `json:"parent_id" db:"parent_id"`
	// contains filtered or unexported fields
}

func MTOUncategorized

func MTOUncategorized(modelPlanID uuid.UUID, parentID *uuid.UUID, position int) *MTOCategory

MTOUncategorized returns a placeholder category to hold all milestones that aren't categorized into a subcategory

func MTOUncategorizedFromArray

func MTOUncategorizedFromArray(modelPlanID uuid.UUID, parentID *uuid.UUID, categories []*MTOCategory) *MTOCategory

MTOUncategorizedFromArray takes an array of sibling categories to determine the next position that is relevant for the array. the new uncategorized result will now have the correct position

func NewMTOCategory

func NewMTOCategory(createdBy uuid.UUID, name string, modelPlanID uuid.UUID, parentID *uuid.UUID, position int) *MTOCategory

NewMTOCategory returns a new mtoCategory object. A Nil parentID means that this is a top level category, and not a subcategory Note, a new category automatically is added as the last in order. It can be re-ordered, but it can't be set from the start We set a position simply to allow manual manipulation of position for non db- entities (uncategorized categories)

func (MTOCategory) GetCreatedBy

func (b MTOCategory) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOCategory) GetID

func (b MTOCategory) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOCategory) GetModelPlanID

func (m MTOCategory) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOCategory) GetModifiedBy

func (b MTOCategory) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOCategory) GetPosition

func (m MTOCategory) GetPosition() int

func (MTOCategory) IsUncategorized

func (m MTOCategory) IsUncategorized() bool

IsUncategorized returns if a category is an actual category, or if it is a placeholder category that is not store in the database

func (MTOCategory) MostRecentModification

func (b MTOCategory) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOCategory) SetModifiedBy

func (b *MTOCategory) SetModifiedBy(principal authentication.Principal) error

func (*MTOCategory) ToSubcategory

func (m *MTOCategory) ToSubcategory() *MTOSubcategory

type MTOCategoryWithNewlyInsertedStatus

type MTOCategoryWithNewlyInsertedStatus struct {
	MTOCategory
	NewlyInserted bool `json:"newlyInserted" db:"newly_inserted"`
}

MTOCategoryWithNewlyInsertedStatus wraps MTOCategory as well as a newly inserted status it is useful for checking if a category was just added, so an email can be sent

func (MTOCategoryWithNewlyInsertedStatus) GetCreatedBy

func (b MTOCategoryWithNewlyInsertedStatus) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOCategoryWithNewlyInsertedStatus) GetID

func (b MTOCategoryWithNewlyInsertedStatus) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOCategoryWithNewlyInsertedStatus) GetModelPlanID

func (m MTOCategoryWithNewlyInsertedStatus) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOCategoryWithNewlyInsertedStatus) GetModifiedBy

func (b MTOCategoryWithNewlyInsertedStatus) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOCategoryWithNewlyInsertedStatus) MostRecentModification

func (b MTOCategoryWithNewlyInsertedStatus) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOCategoryWithNewlyInsertedStatus) SetModifiedBy

func (b *MTOCategoryWithNewlyInsertedStatus) SetModifiedBy(principal authentication.Principal) error

func (*MTOCategoryWithNewlyInsertedStatus) ToMTOCategory

func (mto *MTOCategoryWithNewlyInsertedStatus) ToMTOCategory() *MTOCategory

ToMTOCategory returns the MTOCategory object from the MTOCategoryWithNewlyInsertedStatus

type MTOCommonMilestone

type MTOCommonMilestone struct {
	Name              string                    `json:"name" db:"name"`
	Description       string                    `json:"description" db:"description"`
	Key               MTOCommonMilestoneKey     `json:"key" db:"key"`
	CategoryName      string                    `json:"categoryName" db:"category_name"`
	SubCategoryName   *string                   `json:"subCategoryName" db:"sub_category_name"`
	FacilitatedByRole EnumArray[MTOFacilitator] `json:"facilitatedByRole" db:"facilitated_by_role"`

	// Section specifies the Task List Section that corresponds to suggesting this common milestone
	Section TaskListSection `json:"section" db:"section"`
	// This field facilitate queries, but is not an actual database column (the mto_milestone table joins to the model plan, and potentially to this table, unless it is a custom milestone)
	ModelPlanID *uuid.UUID `json:"modelPlanID" db:"model_plan_id"`
	IsAdded     bool       `json:"isAdded" db:"is_added"`
	IsSuggested bool       `json:"IsSuggested" db:"is_suggested"`
}

type MTOCommonMilestoneKey

type MTOCommonMilestoneKey string
const (
	MTOCommonMilestoneKeyManageCd                                    MTOCommonMilestoneKey = "MANAGE_CD"
	MTOCommonMilestoneKeyRevColBids                                  MTOCommonMilestoneKey = "REV_COL_BIDS"
	MTOCommonMilestoneKeyUpdateContract                              MTOCommonMilestoneKey = "UPDATE_CONTRACT"
	MTOCommonMilestoneKeySignParticipationAgreements                 MTOCommonMilestoneKey = "SIGN_PARTICIPATION_AGREEMENTS"
	MTOCommonMilestoneKeyRecruitParticipants                         MTOCommonMilestoneKey = "RECRUIT_PARTICIPANTS"
	MTOCommonMilestoneKeyRevScoreApp                                 MTOCommonMilestoneKey = "REV_SCORE_APP"
	MTOCommonMilestoneKeyAppSupportCon                               MTOCommonMilestoneKey = "APP_SUPPORT_CON"
	MTOCommonMilestoneKeyCommWPart                                   MTOCommonMilestoneKey = "COMM_W_PART"
	MTOCommonMilestoneKeyVetProvidersForProgramIntegrity             MTOCommonMilestoneKey = "VET_PROVIDERS_FOR_PROGRAM_INTEGRITY"
	MTOCommonMilestoneKeyManageProvOverlap                           MTOCommonMilestoneKey = "MANAGE_PROV_OVERLAP"
	MTOCommonMilestoneKeyManageBenOverlap                            MTOCommonMilestoneKey = "MANAGE_BEN_OVERLAP"
	MTOCommonMilestoneKeyHelpdeskSupport                             MTOCommonMilestoneKey = "HELPDESK_SUPPORT"
	MTOCommonMilestoneKeyIddocSupport                                MTOCommonMilestoneKey = "IDDOC_SUPPORT"
	MTOCommonMilestoneKeyEstablishBench                              MTOCommonMilestoneKey = "ESTABLISH_BENCH"
	MTOCommonMilestoneKeyProcessPartAppeals                          MTOCommonMilestoneKey = "PROCESS_PART_APPEALS"
	MTOCommonMilestoneKeyAcquireAnEvalCont                           MTOCommonMilestoneKey = "ACQUIRE_AN_EVAL_CONT"
	MTOCommonMilestoneKeyDataToMonitor                               MTOCommonMilestoneKey = "DATA_TO_MONITOR"
	MTOCommonMilestoneKeyDataToSupportEval                           MTOCommonMilestoneKey = "DATA_TO_SUPPORT_EVAL"
	MTOCommonMilestoneKeyClaimsBasedMeasures                         MTOCommonMilestoneKey = "CLAIMS_BASED_MEASURES"
	MTOCommonMilestoneKeyQualityPerformanceScores                    MTOCommonMilestoneKey = "QUALITY_PERFORMANCE_SCORES"
	MTOCommonMilestoneKeySendRepdataToPart                           MTOCommonMilestoneKey = "SEND_REPDATA_TO_PART"
	MTOCommonMilestoneKeyUtilizeQualityMeasuresDevelopmentContractor MTOCommonMilestoneKey = "UTILIZE_QUALITY_MEASURES_DEVELOPMENT_CONTRACTOR"
	MTOCommonMilestoneKeyAcquireALearnCont                           MTOCommonMilestoneKey = "ACQUIRE_A_LEARN_CONT"
	MTOCommonMilestoneKeyPartToPartCollab                            MTOCommonMilestoneKey = "PART_TO_PART_COLLAB"
	MTOCommonMilestoneKeyEducateBenef                                MTOCommonMilestoneKey = "EDUCATE_BENEF"
	MTOCommonMilestoneKeyItPlatformForLearning                       MTOCommonMilestoneKey = "IT_PLATFORM_FOR_LEARNING"
	MTOCommonMilestoneKeyAdjustFfsClaims                             MTOCommonMilestoneKey = "ADJUST_FFS_CLAIMS"
	MTOCommonMilestoneKeyManageFfsExclPayments                       MTOCommonMilestoneKey = "MANAGE_FFS_EXCL_PAYMENTS"
	MTOCommonMilestoneKeyMakeNonClaimsBasedPayments                  MTOCommonMilestoneKey = "MAKE_NON_CLAIMS_BASED_PAYMENTS"
	MTOCommonMilestoneKeyComputeSharedSavingsPayment                 MTOCommonMilestoneKey = "COMPUTE_SHARED_SAVINGS_PAYMENT"
	MTOCommonMilestoneKeyRecoverPayments                             MTOCommonMilestoneKey = "RECOVER_PAYMENTS"
	MTOCommonMilestoneKeyAcquireAnImpCont                            MTOCommonMilestoneKey = "ACQUIRE_AN_IMP_CONT"
	MTOCommonMilestoneKeyAcquireAPreImpCont                          MTOCommonMilestoneKey = "ACQUIRE_A_PRE_IMP_CONT"
	MTOCommonMilestoneKeyAcquireADataAggCont                         MTOCommonMilestoneKey = "ACQUIRE_A_DATA_AGG_CONT"
	MTOCommonMilestoneKeySendDashboardsReportsToPart                 MTOCommonMilestoneKey = "SEND_DASHBOARDS_REPORTS_TO_PART"
	MTOCommonMilestoneKeySendDataViaAPIToPart                        MTOCommonMilestoneKey = "SEND_DATA_VIA_API_TO_PART"
	MTOCommonMilestoneKeySendRawFilesToPart                          MTOCommonMilestoneKey = "SEND_RAW_FILES_TO_PART"
	MTOCommonMilestoneKeySignCooperativeAgreements                   MTOCommonMilestoneKey = "SIGN_COOPERATIVE_AGREEMENTS"
)

type MTOCommonSolution

type MTOCommonSolution struct {
	ID         uuid.UUID                           `json:"id" db:"id"`
	Name       string                              `json:"name" db:"name"`
	Key        MTOCommonSolutionKey                `json:"key" db:"key"`
	Type       MTOSolutionType                     `json:"type" db:"type"`
	Subjects   EnumArray[MTOCommonSolutionSubject] `json:"subjects" db:"subjects"`
	FilterView *ModelViewFilter                    `json:"filterView" db:"filter_view"`
	// This field facilitate queries, but is not an actual database column (the mto_solution table joins to the model plan, and potentially to this table, unless it is a custom solution)
	ModelPlanID *uuid.UUID `json:"modelPlanID" db:"model_plan_id"`
	// This field is here for the sake of simplifying DB queries, it comes from a linking table, and only provides some contextual data
	CommonMilestoneKey *MTOCommonMilestoneKey `json:"commonMilestoneKey" db:"mto_common_milestone_key"`
	// This field facilitate queries, but is not an actual database column. It is evaluated contextually in the database to note if a common solution has been added to an MTO for a specific model plan
	IsAdded bool `json:"isAdded" db:"is_added"`
}

func (MTOCommonSolution) IsTaggedEntity

func (MTOCommonSolution) IsTaggedEntity()

IsTaggedEntity is a method to satisfy the IsTaggedEntity interface for MTOCommonSolution.

type MTOCommonSolutionCMSComponent

type MTOCommonSolutionCMSComponent string

MTOCommonSolutionCMSComponent is an enum that represents the CMS components for MTOCommonSolutionSystemOwner

const (
	OfficeOfTheAdministrator                          MTOCommonSolutionCMSComponent = "OFFICE_OF_THE_ADMINISTRATOR"
	OfficeOfHealthcareExperienceAndInteroperability   MTOCommonSolutionCMSComponent = "OFFICE_OF_HEALTHCARE_EXPERIENCE_AND_INTEROPERABILITY"
	OfficeOfProgramOperationsAndLocalEngagement       MTOCommonSolutionCMSComponent = "OFFICE_OF_PROGRAM_OPERATIONS_AND_LOCAL_ENGAGEMENT_OPOLE"
	OfficeOfEnterpriseDataAndAnalytics                MTOCommonSolutionCMSComponent = "OFFICE_OF_ENTERPRISE_DATA_AND_ANALYTICS_OEDA"
	OfficeOfEqualOpportunityAndCivilRights            MTOCommonSolutionCMSComponent = "OFFICE_OF_EQUAL_OPPORTUNITY_AND_CIVIL_RIGHTS"
	OfficeOfCommunications                            MTOCommonSolutionCMSComponent = "OFFICE_OF_COMMUNICATIONS_OC"
	OfficeOfLegislation                               MTOCommonSolutionCMSComponent = "OFFICE_OF_LEGISLATION"
	FederalCoordinatedHealthCareOffice                MTOCommonSolutionCMSComponent = "FEDERAL_COORDINATED_HEALTH_CARE_OFFICE"
	OfficeOfMinorityHealth                            MTOCommonSolutionCMSComponent = "OFFICE_OF_MINORITY_HEALTH_OMH"
	OfficeOfTheActuary                                MTOCommonSolutionCMSComponent = "OFFICE_OF_THE_ACTUARY_OACT"
	OfficeOfStrategicOperationsAndRegulatoryAffairs   MTOCommonSolutionCMSComponent = "OFFICE_OF_STRATEGIC_OPERATIONS_AND_REGULATORY_AFFAIRS_OSORA"
	OfficeOfInformationTechnology                     MTOCommonSolutionCMSComponent = "OFFICE_OF_INFORMATION_TECHNOLOGY_OIT"
	OfficeOfAcquisitionAndGrantsManagement            MTOCommonSolutionCMSComponent = "OFFICE_OF_ACQUISITION_AND_GRANTS_MANAGEMENT_OAGM"
	OfficesOfHearingsAndInquiries                     MTOCommonSolutionCMSComponent = "OFFICES_OF_HEARINGS_AND_INQUIRIES"
	OfficeOfFinancialManagement                       MTOCommonSolutionCMSComponent = "OFFICE_OF_FINANCIAL_MANAGEMENT_OFM"
	OfficeOfStrategyPerformanceAndResults             MTOCommonSolutionCMSComponent = "OFFICE_OF_STRATEGY_PERFORMANCE_AND_RESULTS_OSPR"
	OfficeOfSecurityFacilitiesAndLogisticsOperations  MTOCommonSolutionCMSComponent = "OFFICE_OF_SECURITY_FACILITIES_AND_LOGISTICS_OPERATIONS_OSFLO"
	OfficeOfHumanCapital                              MTOCommonSolutionCMSComponent = "OFFICE_OF_HUMAN_CAPITAL"
	CenterForClinicalStandardsAndQuality              MTOCommonSolutionCMSComponent = "CENTER_FOR_CLINICAL_STANDARDS_AND_QUALITY_CCSQ"
	CenterForMedicareAndMedicaidInnovation            MTOCommonSolutionCMSComponent = "CENTER_FOR_MEDICARE_AND_MEDICAID_INNOVATION_CMMI"
	CenterForMedicare                                 MTOCommonSolutionCMSComponent = "CENTER_FOR_MEDICARE_CM"
	CenterForMedicaidAndChipServices                  MTOCommonSolutionCMSComponent = "CENTER_FOR_MEDICAID_AND_CHIP_SERVICES_CMCS"
	CenterForProgramIntegrity                         MTOCommonSolutionCMSComponent = "CENTER_FOR_PROGRAM_INTEGRITY_CPI"
	CenterForConsumerInformationAndInsuranceOversight MTOCommonSolutionCMSComponent = "CENTER_FOR_CONSUMER_INFORMATION_AND_INSURANCE_OVERSIGHT_CCIIO"
)

These constants represent the different values of MTOCommonSolutionCMSComponent

type MTOCommonSolutionContact

type MTOCommonSolutionContact struct {
	Key            MTOCommonSolutionKey `json:"key" db:"mto_common_solution_key"`
	MailboxTitle   *string              `db:"mailbox_title" json:"mailboxTitle"`
	MailboxAddress *string              `db:"mailbox_address" json:"mailboxAddress"`
	// These are convenience fields, they are not stored in the database, they are sourced from user account
	Name  string `db:"name" json:"name"`
	Email string `db:"email" json:"email"`

	IsTeam        bool    `db:"is_team" json:"isTeam"`
	Role          *string `db:"role" json:"role"`
	IsPrimary     bool    `db:"is_primary" json:"isPrimary"`
	ReceiveEmails bool    `db:"receive_emails" json:"receiveEmails"`
	// contains filtered or unexported fields
}

func NewMTOCommonSolutionContact

func NewMTOCommonSolutionContact(
	createdBy uuid.UUID,
	key MTOCommonSolutionKey,
	mailboxTitle *string,
	mailboxAddress *string,
	userID *uuid.UUID,
	isTeam bool,
	role *string,
	isPrimary bool,
	receiveEmails bool,
) *MTOCommonSolutionContact

NewMTOCommonSolutionContact returns a new MTOCommonSolutionContact object

func (MTOCommonSolutionContact) GetCreatedBy

func (b MTOCommonSolutionContact) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOCommonSolutionContact) GetID

func (b MTOCommonSolutionContact) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOCommonSolutionContact) GetModifiedBy

func (b MTOCommonSolutionContact) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOCommonSolutionContact) MostRecentModification

func (b MTOCommonSolutionContact) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOCommonSolutionContact) SetModifiedBy

func (b *MTOCommonSolutionContact) SetModifiedBy(principal authentication.Principal) error

func (*MTOCommonSolutionContact) UserAccount

func (b *MTOCommonSolutionContact) UserAccount(ctx context.Context) (*authentication.UserAccount, error)

type MTOCommonSolutionContactInformation

type MTOCommonSolutionContactInformation struct {
	PointsOfContact []*MTOCommonSolutionContact `json:"pointsOfContact"`
}

MTOCommonSolutionContactInformation is a wrapper method that enables efficient fetching and sorting of MTOCommonSolutionContact information

func (*MTOCommonSolutionContactInformation) EmailAddresses

func (mtoCSC *MTOCommonSolutionContactInformation) EmailAddresses(sendToTaggedPOCs bool, devTeamEmail string) ([]string, error)

func (*MTOCommonSolutionContactInformation) PrimaryContact

type MTOCommonSolutionContractor

type MTOCommonSolutionContractor struct {
	Key            MTOCommonSolutionKey `json:"key" db:"mto_common_solution_key"`
	ContractTitle  *string              `db:"contract_title" json:"contractTitle"`
	ContractorName string               `db:"contractor_name" json:"contractorName"`
	// contains filtered or unexported fields
}

func NewMTOCommonSolutionContractor

func NewMTOCommonSolutionContractor(
	createdBy uuid.UUID,
	key MTOCommonSolutionKey,
	contractTitle *string,
	contractorName string,
) *MTOCommonSolutionContractor

NewMTOCommonSolutionContractor returns a new MTOCommonSolutionContractor object

func (MTOCommonSolutionContractor) GetCreatedBy

func (b MTOCommonSolutionContractor) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOCommonSolutionContractor) GetID

func (b MTOCommonSolutionContractor) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOCommonSolutionContractor) GetModifiedBy

func (b MTOCommonSolutionContractor) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOCommonSolutionContractor) MostRecentModification

func (b MTOCommonSolutionContractor) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOCommonSolutionContractor) SetModifiedBy

func (b *MTOCommonSolutionContractor) SetModifiedBy(principal authentication.Principal) error

type MTOCommonSolutionContractorInformation

type MTOCommonSolutionContractorInformation struct {
	Contractors []*MTOCommonSolutionContractor `json:"contractors"`
}

MTOCommonSolutionContractorInformation is a wrapper method that enables efficient fetching and sorting of MTOCommonSolutionContact information

func (*MTOCommonSolutionContractorInformation) ContractorsList

type MTOCommonSolutionKey

type MTOCommonSolutionKey string
const (
	MTOCSKInnovation                  MTOCommonSolutionKey = "INNOVATION"
	MTOCSKAcoOs                       MTOCommonSolutionKey = "ACO_OS"
	MTOCSKApps                        MTOCommonSolutionKey = "APPS"
	MTOCSKCdx                         MTOCommonSolutionKey = "CDX"
	MTOCSKCcw                         MTOCommonSolutionKey = "CCW"
	MTOCSKCmsBox                      MTOCommonSolutionKey = "CMS_BOX"
	MTOCSKCbosc                       MTOCommonSolutionKey = "CBOSC"
	MTOCSKCpiVetting                  MTOCommonSolutionKey = "CPI_VETTING"
	MTOCSKEft                         MTOCommonSolutionKey = "EFT"
	MTOCSKEdfr                        MTOCommonSolutionKey = "EDFR"
	MTOCSKGovdelivery                 MTOCommonSolutionKey = "GOVDELIVERY"
	MTOCSKGs                          MTOCommonSolutionKey = "GS"
	MTOCSKHdr                         MTOCommonSolutionKey = "HDR"
	MTOCSKHpms                        MTOCommonSolutionKey = "HPMS"
	MTOCSKHiglas                      MTOCommonSolutionKey = "HIGLAS"
	MTOCSKIpc                         MTOCommonSolutionKey = "IPC"
	MTOCSKIdr                         MTOCommonSolutionKey = "IDR"
	MTOCSKLdg                         MTOCommonSolutionKey = "LDG"
	MTOCSKLv                          MTOCommonSolutionKey = "LV"
	MTOCSKMarx                        MTOCommonSolutionKey = "MARX"
	MTOCSKOutlookMailbox              MTOCommonSolutionKey = "OUTLOOK_MAILBOX"
	MTOCSKQv                          MTOCommonSolutionKey = "QV"
	MTOCSKRmada                       MTOCommonSolutionKey = "RMADA"
	MTOCSKArs                         MTOCommonSolutionKey = "ARS"
	MTOCSKConnect                     MTOCommonSolutionKey = "CONNECT"
	MTOCSKLoi                         MTOCommonSolutionKey = "LOI"
	MTOCSKPostPortal                  MTOCommonSolutionKey = "POST_PORTAL"
	MTOCSKRfa                         MTOCommonSolutionKey = "RFA"
	MTOCSKSharedSystems               MTOCommonSolutionKey = "SHARED_SYSTEMS"
	MTOCSKBcda                        MTOCommonSolutionKey = "BCDA"
	MTOCSKIsp                         MTOCommonSolutionKey = "ISP"
	MTOCSKMids                        MTOCommonSolutionKey = "MIDS"
	MTOCSKModelSpace                  MTOCommonSolutionKey = "MODEL_SPACE"
	MTOCSKCdac                        MTOCommonSolutionKey = "CDAC"
	MTOCSKRreg                        MTOCommonSolutionKey = "RREG"
	MTOCSKFfrdc                       MTOCommonSolutionKey = "FFRDC"
	MTOCSKArds                        MTOCommonSolutionKey = "ARDS"
	MTOCSKTmiss                       MTOCommonSolutionKey = "T_MISS"
	MTOCSKEppe                        MTOCommonSolutionKey = "EPPE"
	MTOCSKDsep                        MTOCommonSolutionKey = "DSEP"
	MTOCSKAms                         MTOCommonSolutionKey = "AMS"
	MTOCSKIcLanding                   MTOCommonSolutionKey = "IC_LANDING"
	MTOCSKRass                        MTOCommonSolutionKey = "RASS"
	MTOCSKDdps                        MTOCommonSolutionKey = "DDPS"
	MTOCSKOact                        MTOCommonSolutionKey = "OACT"
	MTOCSKQpp                         MTOCommonSolutionKey = "QPP"
	MTOCSKPam                         MTOCommonSolutionKey = "PAM"
	MTOCSKNcqa                        MTOCommonSolutionKey = "NCQA"
	MTOCSKMsForms                     MTOCommonSolutionKey = "MS_FORMS"
	MTOCSKResdacCmds                  MTOCommonSolutionKey = "RESDAC_CMDS"
	MTOCSKOverlapsOperationsWorkgroup MTOCommonSolutionKey = "OVERLAPS_OPERATIONS_WORKGROUP"
	MTOCSKHETS                        MTOCommonSolutionKey = "HETS"
)

type MTOCommonSolutionModelUsage

type MTOCommonSolutionModelUsage struct {
	Key         MTOCommonSolutionKey `json:"key" db:"mto_common_solution_key"`
	ModelName   string               `json:"modelName" db:"model_name"`
	ModelStatus ModelStatus          `json:"status" db:"status"`
	ModelPlanID uuid.UUID            `json:"modelPlanId" db:"model_plan_id"`
	// contains filtered or unexported fields
}

func (MTOCommonSolutionModelUsage) GetCreatedBy

func (b MTOCommonSolutionModelUsage) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOCommonSolutionModelUsage) GetID

func (b MTOCommonSolutionModelUsage) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOCommonSolutionModelUsage) GetModifiedBy

func (b MTOCommonSolutionModelUsage) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOCommonSolutionModelUsage) MostRecentModification

func (b MTOCommonSolutionModelUsage) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOCommonSolutionModelUsage) SetModifiedBy

func (b *MTOCommonSolutionModelUsage) SetModifiedBy(principal authentication.Principal) error

type MTOCommonSolutionOwnerType

type MTOCommonSolutionOwnerType string

MTOCommonSolutionOwnerType is an enum that represents the types of owners for MTOCommonSolutionSystemOwner

const (
	SystemOwner   MTOCommonSolutionOwnerType = "SYSTEM_OWNER"
	BusinessOwner MTOCommonSolutionOwnerType = "BUSINESS_OWNER"
)

These constants represent the different values of MTOCommonSolutionOwnerType

type MTOCommonSolutionSubject

type MTOCommonSolutionSubject string
const (
	MTOCSSApplicationsAndParticipantInteractionAcoAndKidneyModels MTOCommonSolutionSubject = "APPLICATIONS_AND_PARTICIPANT_INTERACTION_ACO_AND_KIDNEY_MODELS"
	MTOCSSApplicationsAndParticipantInteractionNonAcoModels       MTOCommonSolutionSubject = "APPLICATIONS_AND_PARTICIPANT_INTERACTION_NON_ACO_MODELS"
	MTOCSSMedicareFeeForService                                   MTOCommonSolutionSubject = "MEDICARE_FEE_FOR_SERVICE"
	MTOCSSContractVehicles                                        MTOCommonSolutionSubject = "CONTRACT_VEHICLES"
	MTOCSSLearning                                                MTOCommonSolutionSubject = "LEARNING"
	MTOCSSQuality                                                 MTOCommonSolutionSubject = "QUALITY"
	MTOCSSCommunicationToolsAndHelpDesk                           MTOCommonSolutionSubject = "COMMUNICATION_TOOLS_AND_HELP_DESK"
	MTOCSSMedicareAdvantageAndPartD                               MTOCommonSolutionSubject = "MEDICARE_ADVANTAGE_AND_PART_D"
	MTOCSSPaymentsAndFinancials                                   MTOCommonSolutionSubject = "PAYMENTS_AND_FINANCIALS"
	MTOCSSData                                                    MTOCommonSolutionSubject = "DATA"
	MTOCSSLegal                                                   MTOCommonSolutionSubject = "LEGAL"
	MTOCSSEvaluationAndReview                                     MTOCommonSolutionSubject = "EVALUATION_AND_REVIEW"
)

type MTOCommonSolutionSystemOwner

type MTOCommonSolutionSystemOwner struct {
	Key          MTOCommonSolutionKey          `json:"key" db:"mto_common_solution_key"`
	OwnerType    MTOCommonSolutionOwnerType    `db:"owner_type" json:"ownerType"`
	CMSComponent MTOCommonSolutionCMSComponent `db:"cms_component" json:"cmsComponent"`
	// contains filtered or unexported fields
}

func NewMTOCommonSolutionSystemOwner

func NewMTOCommonSolutionSystemOwner(
	createdBy uuid.UUID,
	key MTOCommonSolutionKey,
	ownerType MTOCommonSolutionOwnerType,
	cmsComponent MTOCommonSolutionCMSComponent,
) *MTOCommonSolutionSystemOwner

NewMTOCommonSolutionSystemOwner returns a new MTOCommonSolutionSystemOwner object

func (MTOCommonSolutionSystemOwner) GetCreatedBy

func (b MTOCommonSolutionSystemOwner) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOCommonSolutionSystemOwner) GetID

func (b MTOCommonSolutionSystemOwner) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOCommonSolutionSystemOwner) GetModifiedBy

func (b MTOCommonSolutionSystemOwner) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOCommonSolutionSystemOwner) MostRecentModification

func (b MTOCommonSolutionSystemOwner) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOCommonSolutionSystemOwner) SetModifiedBy

func (b *MTOCommonSolutionSystemOwner) SetModifiedBy(principal authentication.Principal) error

type MTOCommonSolutionSystemOwnerInformation

type MTOCommonSolutionSystemOwnerInformation struct {
	SystemOwners []*MTOCommonSolutionSystemOwner `json:"systemOwners"`
}

MTOCommonSolutionSystemOwnerInformation is a wrapper method that enables efficient fetching and sorting of MTOCommonSolutionSystemOwner information

func (*MTOCommonSolutionSystemOwnerInformation) SystemOwnersList

type MTOFacilitator

type MTOFacilitator string
const (
	MTOFacilitatorModelTeam                            MTOFacilitator = "MODEL_TEAM"
	MTOFacilitatorModelLead                            MTOFacilitator = "MODEL_LEAD"
	MTOFacilitatorITLead                               MTOFacilitator = "IT_LEAD"
	MTOFacilitatorSolutionArchitect                    MTOFacilitator = "SOLUTION_ARCHITECT"
	MTOFacilitatorITSystemProductOwner                 MTOFacilitator = "IT_SYSTEM_PRODUCT_OWNER"
	MTOFacilitatorParticipants                         MTOFacilitator = "PARTICIPANTS"
	MTOFacilitatorApplicationSupportContractor         MTOFacilitator = "APPLICATION_SUPPORT_CONTRACTOR"
	MTOFacilitatorImplementationContractor             MTOFacilitator = "IMPLEMENTATION_CONTRACTOR"
	MTOFacilitatorEvaluationContractor                 MTOFacilitator = "EVALUATION_CONTRACTOR"
	MTOFacilitatorQualityMeasuresDevelopmentContractor MTOFacilitator = "QUALITY_MEASURES_DEVELOPMENT_CONTRACTOR"
	MTOFacilitatorLearningContractor                   MTOFacilitator = "LEARNING_CONTRACTOR"
	MTOFacilitatorMonitoringContractor                 MTOFacilitator = "MONITORING_CONTRACTOR"
	MTOFacilitatorContractingOfficersRepresentative    MTOFacilitator = "CONTRACTING_OFFICERS_REPRESENTATIVE"
	MTOFacilitatorLearningAndDiffusionGroup            MTOFacilitator = "LEARNING_AND_DIFFUSION_GROUP"
	MTOFacilitatorResearchAndRapidCycleEvaluationGroup MTOFacilitator = "RESEARCH_AND_RAPID_CYCLE_EVALUATION_GROUP"
	MTOFacilitatorDataAnalyticsContractor              MTOFacilitator = "DATA_ANALYTICS_CONTRACTOR"
	MTOFacilitatorModelDataLead                        MTOFacilitator = "MODEL_DATA_LEAD"
	MTOFacilitatorOther                                MTOFacilitator = "OTHER"
)

These are the options for MTOFacilitator

type MTOInfo

type MTOInfo struct {

	// Note a ready for review by relation could make sense here, and also be embedded for base task list section
	ReadyForReviewBy  *uuid.UUID `json:"readyForReviewBy" db:"ready_for_review_by"`
	ReadyForReviewDts *time.Time `json:"readyForReviewDts" db:"ready_for_review_dts"`
	// contains filtered or unexported fields
}

func NewMTOInfo

func NewMTOInfo(createdBy uuid.UUID, modelPlanID uuid.UUID) *MTOInfo

func (MTOInfo) GetCreatedBy

func (b MTOInfo) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOInfo) GetID

func (b MTOInfo) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOInfo) GetModelPlanID

func (m MTOInfo) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOInfo) GetModifiedBy

func (b MTOInfo) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOInfo) MostRecentModification

func (b MTOInfo) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOInfo) SetModifiedBy

func (b *MTOInfo) SetModifiedBy(principal authentication.Principal) error

type MTOMilestone

type MTOMilestone struct {
	Name        *string                `json:"name" db:"name"` // From Common Milestone Table if linked
	Description *string                `json:"description" db:"description"`
	Key         *MTOCommonMilestoneKey `json:"key" db:"mto_common_milestone_key"` // Foreign Key to the Common Milestone Table

	MTOCategoryID        *uuid.UUID                                  `json:"mtoCategoryID" db:"mto_category_id"`
	ResponsibleComponent EnumArray[MTOMilestoneResponsibleComponent] `json:"responsibleComponent" db:"responsible_component"`
	FacilitatedBy        *EnumArray[MTOFacilitator]                  `json:"facilitatedBy" db:"facilitated_by"`
	FacilitatedByOther   *string                                     `json:"facilitatedByOther" db:"facilitated_by_other"`
	AssignedTo           *uuid.UUID                                  `json:"assignedTo" db:"assigned_to"`
	NeedBy               *time.Time                                  `json:"needBy" db:"need_by"`
	Status               MTOMilestoneStatus                          `json:"status" db:"status"`
	RiskIndicator        MTORiskIndicator                            `json:"riskIndicator" db:"risk_indicator"`
	IsDraft              bool                                        `json:"isDraft" db:"is_draft"`
	// contains filtered or unexported fields
}

func NewMTOMilestone

func NewMTOMilestone(createdBy uuid.UUID, name *string, description *string, commonMilestoneKey *MTOCommonMilestoneKey, modelPlanID uuid.UUID, mtoCategoryID *uuid.UUID) *MTOMilestone

NewMTOMilestone returns a new mtoMileMTOMilestone object

func (*MTOMilestone) AddedFromMilestoneLibrary

func (m *MTOMilestone) AddedFromMilestoneLibrary() bool

AddedFromMilestoneLibrary returns true or false if this was added from the common milestone library. It simply checks if the common milestone id is populated or not

func (MTOMilestone) GetCreatedBy

func (b MTOMilestone) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOMilestone) GetID

func (b MTOMilestone) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOMilestone) GetModelPlanID

func (m MTOMilestone) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOMilestone) GetModifiedBy

func (b MTOMilestone) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOMilestone) MostRecentModification

func (b MTOMilestone) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOMilestone) SetModifiedBy

func (b *MTOMilestone) SetModifiedBy(principal authentication.Principal) error

type MTOMilestoneNote

type MTOMilestoneNote struct {
	MilestoneID uuid.UUID `json:"milestoneID" db:"milestone_id"`
	Content     string    `json:"content" db:"content"`
	// contains filtered or unexported fields
}

func NewMTOMilestoneNote

func NewMTOMilestoneNote(createdBy uuid.UUID, content string, milestoneID uuid.UUID, modelPlanID uuid.UUID) *MTOMilestoneNote

func (MTOMilestoneNote) GetCreatedBy

func (b MTOMilestoneNote) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOMilestoneNote) GetID

func (b MTOMilestoneNote) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOMilestoneNote) GetModelPlanID

func (m MTOMilestoneNote) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOMilestoneNote) GetModifiedBy

func (b MTOMilestoneNote) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOMilestoneNote) MostRecentModification

func (b MTOMilestoneNote) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOMilestoneNote) SetModifiedBy

func (b *MTOMilestoneNote) SetModifiedBy(principal authentication.Principal) error

type MTOMilestoneNoteCreateInput

type MTOMilestoneNoteCreateInput struct {
	Content     string    `json:"content" db:"content"`
	MilestoneID uuid.UUID `json:"milestoneID" db:"milestone_id"`
}

type MTOMilestoneNoteDeleteInput

type MTOMilestoneNoteDeleteInput struct {
	ID uuid.UUID `json:"id" db:"id"`
}

type MTOMilestoneNoteUpdateInput

type MTOMilestoneNoteUpdateInput struct {
	Content string    `json:"content" db:"content"`
	ID      uuid.UUID `json:"id" db:"id"`
}

type MTOMilestoneResponsibleComponent

type MTOMilestoneResponsibleComponent string
const (
	MTOMilestoneResponsibleComponentCCIIO     MTOMilestoneResponsibleComponent = "CIIO"
	MTOMilestoneResponsibleComponentCCSQ      MTOMilestoneResponsibleComponent = "CCSQ"
	MTOMilestoneResponsibleComponentCM        MTOMilestoneResponsibleComponent = "CM"
	MTOMilestoneResponsibleComponentCMCS      MTOMilestoneResponsibleComponent = "CMCS"
	MTOMilestoneResponsibleComponentCMMIBSG   MTOMilestoneResponsibleComponent = "CMMI_BSG"
	MTOMilestoneResponsibleComponentCMMILDG   MTOMilestoneResponsibleComponent = "CMMI_LDG"
	MTOMilestoneResponsibleComponentCMMIPCMG  MTOMilestoneResponsibleComponent = "CMMI_PCMG"
	MTOMilestoneResponsibleComponentCMMIPPG   MTOMilestoneResponsibleComponent = "CMMI_PPG"
	MTOMilestoneResponsibleComponentCMMIRRCEG MTOMilestoneResponsibleComponent = "CMMI_RRCEG"
	MTOMilestoneResponsibleComponentCMMISCMG  MTOMilestoneResponsibleComponent = "CMMI_SCMG"
	MTOMilestoneResponsibleComponentCMMISPHG  MTOMilestoneResponsibleComponent = "CMMI_SPHG"
	MTOMilestoneResponsibleComponentCPI       MTOMilestoneResponsibleComponent = "CPI"
	MTOMilestoneResponsibleComponentFCHCO     MTOMilestoneResponsibleComponent = "FCHCO"
	MTOMilestoneResponsibleComponentOA        MTOMilestoneResponsibleComponent = "OA"
	MTOMilestoneResponsibleComponentOACT      MTOMilestoneResponsibleComponent = "OACT"
	MTOMilestoneResponsibleComponentOAGM      MTOMilestoneResponsibleComponent = "OAGM"
	MTOMilestoneResponsibleComponentOC        MTOMilestoneResponsibleComponent = "OC"
	MTOMilestoneResponsibleComponentOEDA      MTOMilestoneResponsibleComponent = "OEDA"
	MTOMilestoneResponsibleComponentOEOCR     MTOMilestoneResponsibleComponent = "OEOCR"
	MTOMilestoneResponsibleComponentOFM       MTOMilestoneResponsibleComponent = "OFM"
	MTOMilestoneResponsibleComponentOHC       MTOMilestoneResponsibleComponent = "OHC"
	MTOMilestoneResponsibleComponentOHEI      MTOMilestoneResponsibleComponent = "OHEI"
	MTOMilestoneResponsibleComponentOHI       MTOMilestoneResponsibleComponent = "OHI"
	MTOMilestoneResponsibleComponentOITAMG    MTOMilestoneResponsibleComponent = "OIT_AMG"
	MTOMilestoneResponsibleComponentOITBOG    MTOMilestoneResponsibleComponent = "OIT_BOG"
	MTOMilestoneResponsibleComponentOITEADG   MTOMilestoneResponsibleComponent = "OIT_EADG"
	MTOMilestoneResponsibleComponentOITESSG   MTOMilestoneResponsibleComponent = "OIT_ESSG"
	MTOMilestoneResponsibleComponentOITICPG   MTOMilestoneResponsibleComponent = "OIT_ICPG"
	MTOMilestoneResponsibleComponentOITISPG   MTOMilestoneResponsibleComponent = "OIT_ISPG"
	MTOMilestoneResponsibleComponentOITIUSG   MTOMilestoneResponsibleComponent = "OIT_IUSG"
	MTOMilestoneResponsibleComponentOITNTSS   MTOMilestoneResponsibleComponent = "OIT_NTSS"
	MTOMilestoneResponsibleComponentOL        MTOMilestoneResponsibleComponent = "OL"
	MTOMilestoneResponsibleComponentOMH       MTOMilestoneResponsibleComponent = "OMH"
	MTOMilestoneResponsibleComponentOPOLE     MTOMilestoneResponsibleComponent = "OPOLE"
	MTOMilestoneResponsibleComponentOSFLO     MTOMilestoneResponsibleComponent = "OSFLO"
	MTOMilestoneResponsibleComponentOSORA     MTOMilestoneResponsibleComponent = "OSORA"
	MTOMilestoneResponsibleComponentOSPR      MTOMilestoneResponsibleComponent = "OSPR"
)

These are the options for MTOMilestoneResponsibleComponent

type MTOMilestoneSolutionLink struct {
	MilestoneID uuid.UUID `json:"milestoneID" db:"milestone_id"`
	SolutionID  uuid.UUID `json:"solutionID" db:"solution_id"`
	// contains filtered or unexported fields
}
func NewMTOMilestoneSolutionLink(createdBy uuid.UUID, milestoneID uuid.UUID, solutionID uuid.UUID) *MTOMilestoneSolutionLink

NewMTOMilestoneSolutionLink returns a new mtoMilestoneSolutionLink object

func (MTOMilestoneSolutionLink) GetCreatedBy

func (b MTOMilestoneSolutionLink) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOMilestoneSolutionLink) GetID

func (b MTOMilestoneSolutionLink) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOMilestoneSolutionLink) GetModifiedBy

func (b MTOMilestoneSolutionLink) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOMilestoneSolutionLink) MostRecentModification

func (b MTOMilestoneSolutionLink) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOMilestoneSolutionLink) SetModifiedBy

func (b *MTOMilestoneSolutionLink) SetModifiedBy(principal authentication.Principal) error

type MTOMilestoneStatus

type MTOMilestoneStatus string
const (
	MTMNotStarted MTOMilestoneStatus = "NOT_STARTED"
	MTMInProgress MTOMilestoneStatus = "IN_PROGRESS"
	MTMCompleted  MTOMilestoneStatus = "COMPLETED"
)

func (MTOMilestoneStatus) Humanize

func (m MTOMilestoneStatus) Humanize() string

Humanize returns the human-readable string of a MTO milestone Status if a value is not found for the provided status, an empty string is returned

type MTOMilestoneWithNewlyInsertedStatus

type MTOMilestoneWithNewlyInsertedStatus struct {
	MTOMilestone
	NewlyInserted bool `json:"newlyInserted" db:"newly_inserted"`
}

MTOMilestoneWithNewlyInsertedStatus wraps MTOMilestone as well as a newly inserted status it is useful for checking if a milestone was just added, so an email can be sent

func (MTOMilestoneWithNewlyInsertedStatus) GetCreatedBy

func (b MTOMilestoneWithNewlyInsertedStatus) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOMilestoneWithNewlyInsertedStatus) GetID

func (b MTOMilestoneWithNewlyInsertedStatus) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOMilestoneWithNewlyInsertedStatus) GetModelPlanID

func (m MTOMilestoneWithNewlyInsertedStatus) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOMilestoneWithNewlyInsertedStatus) GetModifiedBy

func (b MTOMilestoneWithNewlyInsertedStatus) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOMilestoneWithNewlyInsertedStatus) MostRecentModification

func (b MTOMilestoneWithNewlyInsertedStatus) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOMilestoneWithNewlyInsertedStatus) SetModifiedBy

func (b *MTOMilestoneWithNewlyInsertedStatus) SetModifiedBy(principal authentication.Principal) error

func (*MTOMilestoneWithNewlyInsertedStatus) ToMTOMilestone

func (mto *MTOMilestoneWithNewlyInsertedStatus) ToMTOMilestone() *MTOMilestone

ToMTOMilestone returns the MTOMilestone object from the MTOMilestoneWithNewlyInsertedStatus

type MTOMilestoneWithSolutionID

type MTOMilestoneWithSolutionID struct {
	MTOMilestone
	SolutionID uuid.UUID `json:"solutionID" db:"solution_id"`
}

MTOMilestoneWithSolutionID wraps an MTOMilestone with a solution id. It is useful for referring to milestones that are linked to specific solutions

func (MTOMilestoneWithSolutionID) GetCreatedBy

func (b MTOMilestoneWithSolutionID) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOMilestoneWithSolutionID) GetID

func (b MTOMilestoneWithSolutionID) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOMilestoneWithSolutionID) GetModelPlanID

func (m MTOMilestoneWithSolutionID) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOMilestoneWithSolutionID) GetModifiedBy

func (b MTOMilestoneWithSolutionID) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOMilestoneWithSolutionID) MostRecentModification

func (b MTOMilestoneWithSolutionID) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOMilestoneWithSolutionID) SetModifiedBy

func (b *MTOMilestoneWithSolutionID) SetModifiedBy(principal authentication.Principal) error

func (*MTOMilestoneWithSolutionID) ToMTOMilestone

func (mto *MTOMilestoneWithSolutionID) ToMTOMilestone() *MTOMilestone

type MTORiskIndicator

type MTORiskIndicator string
const (
	MTORiskIndicatorOnTrack  MTORiskIndicator = "ON_TRACK"
	MTORiskIndicatorOffTrack MTORiskIndicator = "OFF_TRACK"
	MTORiskIndicatorAtRisk   MTORiskIndicator = "AT_RISK"
)

These are the options for MTORiskIndicator

func (MTORiskIndicator) Humanize

func (m MTORiskIndicator) Humanize() string

Humanize returns the human-readable string of a MTO Risk Indicator if a value is not found for the provided status, an empty string is returned

type MTOSolution

type MTOSolution struct {
	Name               *string                    `json:"name" db:"name"`
	FacilitatedBy      *EnumArray[MTOFacilitator] `json:"facilitatedBy" db:"facilitated_by"`
	FacilitatedByOther *string                    `json:"facilitatedByOther" db:"facilitated_by_other"`
	NeededBy           *time.Time                 `json:"neededBy" db:"needed_by"`
	Status             MTOSolutionStatus          `json:"status" db:"status"`
	RiskIndicator      MTORiskIndicator           `json:"riskIndicator" db:"risk_indicator"`
	Key                *MTOCommonSolutionKey      `json:"key" db:"mto_common_solution_key"`
	Type               *MTOSolutionType           `json:"type" db:"type"`
	PocName            *string                    `json:"pocName" db:"poc_name"`
	PocEmail           *string                    `json:"pocEmail" db:"poc_email"`
	// contains filtered or unexported fields
}

func NewMTOSolution

func NewMTOSolution(
	modelPlanID uuid.UUID,
	commonSolutionKey *MTOCommonSolutionKey,
	name *string,
	solutionType *MTOSolutionType,
	neededBy *time.Time,
	createdBy uuid.UUID,
) *MTOSolution

NewMTOSolution returns a new MTOSolution object

func (*MTOSolution) AddedFromSolutionLibrary

func (m *MTOSolution) AddedFromSolutionLibrary() bool

AddedFromSolutionLibrary returns true or false if this was added from the common solution library. It simply checks if the common solution id is populated or not

func (MTOSolution) GetCreatedBy

func (b MTOSolution) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOSolution) GetID

func (b MTOSolution) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOSolution) GetModelPlanID

func (m MTOSolution) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOSolution) GetModifiedBy

func (b MTOSolution) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOSolution) MostRecentModification

func (b MTOSolution) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOSolution) SetModifiedBy

func (b *MTOSolution) SetModifiedBy(principal authentication.Principal) error

type MTOSolutionStatus

type MTOSolutionStatus string

MTOSolutionStatus represents the status of an MTO Solution

const (
	MTOSolutionStatusNotStarted MTOSolutionStatus = "NOT_STARTED"
	MTOSolutionStatusOnboarding MTOSolutionStatus = "ONBOARDING"
	MTOSolutionStatusBacklog    MTOSolutionStatus = "BACKLOG"
	MTOSolutionStatusInProgress MTOSolutionStatus = "IN_PROGRESS"
	MTOSolutionStatusCompleted  MTOSolutionStatus = "COMPLETED"
)

MTOSolutionStatus values

func (MTOSolutionStatus) Humanize

func (m MTOSolutionStatus) Humanize() string

Humanize returns the human-readable string of a MTO Solution Status if a value is not found for the provided status, an empty string is returned

type MTOSolutionType

type MTOSolutionType string
const (
	MTOSolutionTypeItSystem   MTOSolutionType = "IT_SYSTEM"
	MTOSolutionTypeContractor MTOSolutionType = "CONTRACTOR"
	MTOCrossCuttingGroup      MTOSolutionType = "CROSS_CUTTING_GROUP"
	MTOSolutionTypeOther      MTOSolutionType = "OTHER"
)

type MTOSolutionWithMilestoneID

type MTOSolutionWithMilestoneID struct {
	MTOSolution
	MilestoneID uuid.UUID `json:"milestoneID" db:"milestone_id"`
}

MTOSolutionWithMilestoneID wraps an MTOSolution with a milestone id. It is useful for referring to solutions that are linked to specific milestone

func (MTOSolutionWithMilestoneID) GetCreatedBy

func (b MTOSolutionWithMilestoneID) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOSolutionWithMilestoneID) GetID

func (b MTOSolutionWithMilestoneID) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOSolutionWithMilestoneID) GetModelPlanID

func (m MTOSolutionWithMilestoneID) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOSolutionWithMilestoneID) GetModifiedBy

func (b MTOSolutionWithMilestoneID) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOSolutionWithMilestoneID) MostRecentModification

func (b MTOSolutionWithMilestoneID) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOSolutionWithMilestoneID) SetModifiedBy

func (b *MTOSolutionWithMilestoneID) SetModifiedBy(principal authentication.Principal) error

func (*MTOSolutionWithMilestoneID) ToMTOSolution

func (mto *MTOSolutionWithMilestoneID) ToMTOSolution() *MTOSolution

type MTOSolutionWithModelFilterView

type MTOSolutionWithModelFilterView struct {
	MTOSolution
	FilterView ModelViewFilter `json:"filterView" db:"filter_view"`
}

MTOSolutionWithModelFilterView wraps MTOSolution it also includes a filter view. Note, this is only meant to be used as a return type for solutions that are associated with filter view.

func (MTOSolutionWithModelFilterView) GetCreatedBy

func (b MTOSolutionWithModelFilterView) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOSolutionWithModelFilterView) GetID

func (b MTOSolutionWithModelFilterView) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOSolutionWithModelFilterView) GetModelPlanID

func (m MTOSolutionWithModelFilterView) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOSolutionWithModelFilterView) GetModifiedBy

func (b MTOSolutionWithModelFilterView) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOSolutionWithModelFilterView) MostRecentModification

func (b MTOSolutionWithModelFilterView) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOSolutionWithModelFilterView) SetModifiedBy

func (b *MTOSolutionWithModelFilterView) SetModifiedBy(principal authentication.Principal) error

func (*MTOSolutionWithModelFilterView) ToMTOSolution

func (mto *MTOSolutionWithModelFilterView) ToMTOSolution() *MTOSolution

ToMTOSolution returns the MTOSolution object from the MTOSolutionWithModelFilterView

type MTOSolutionWithNewlyInsertedStatus

type MTOSolutionWithNewlyInsertedStatus struct {
	MTOSolution
	NewlyInserted bool `json:"newlyInserted" db:"newly_inserted"`
}

MTOSolutionWithNewlyInsertedStatus wraps MTOSolution as well as a newly inserted status it is useful for checking if a solution was just added, so an email can be sent

func (MTOSolutionWithNewlyInsertedStatus) GetCreatedBy

func (b MTOSolutionWithNewlyInsertedStatus) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOSolutionWithNewlyInsertedStatus) GetID

func (b MTOSolutionWithNewlyInsertedStatus) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOSolutionWithNewlyInsertedStatus) GetModelPlanID

func (m MTOSolutionWithNewlyInsertedStatus) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOSolutionWithNewlyInsertedStatus) GetModifiedBy

func (b MTOSolutionWithNewlyInsertedStatus) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOSolutionWithNewlyInsertedStatus) MostRecentModification

func (b MTOSolutionWithNewlyInsertedStatus) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOSolutionWithNewlyInsertedStatus) SetModifiedBy

func (b *MTOSolutionWithNewlyInsertedStatus) SetModifiedBy(principal authentication.Principal) error

func (*MTOSolutionWithNewlyInsertedStatus) ToMTOSolution

func (mto *MTOSolutionWithNewlyInsertedStatus) ToMTOSolution() *MTOSolution

ToMTOSolution returns the MTOSolution object from the MTOSolutionWithNewlyInsertedStatus

type MTOStatus

type MTOStatus string
const (
	MTOStatusReadyToStart   MTOStatus = "READY"
	MTOStatusInProgress     MTOStatus = "IN_PROGRESS"
	MTOStatusReadyForReview MTOStatus = "READY_FOR_REVIEW"
)

These are the options for MTOStatus

type MTOSubcategory

type MTOSubcategory MTOCategory

MTOSubcategory is the same as a MTOCategory in the database. It is separated here so we can be precise in graphql

func MTOUncategorizedSubcategory

func MTOUncategorizedSubcategory(modelPlanID uuid.UUID, parentID *uuid.UUID, position int) *MTOSubcategory

func MTOUncategorizedSubcategoryFromArray

func MTOUncategorizedSubcategoryFromArray(modelPlanID uuid.UUID, parentID *uuid.UUID, subCategories []*MTOSubcategory) *MTOSubcategory

func (MTOSubcategory) GetPosition

func (m MTOSubcategory) GetPosition() int

func (MTOSubcategory) IsUncategorized

func (m MTOSubcategory) IsUncategorized() bool

IsUncategorized returns if a category is an actual subcategory, or if it is a placeholder subcategory that is not store in the database

type MTOTemplate

type MTOTemplate struct {
	Key         MTOTemplateKey `json:"key"         db:"key"`
	Name        string         `json:"name"        db:"name"`
	Description *string        `json:"description" db:"description"`

	// Convenience counts (not persisted, filled in resolvers)
	CategoryCount        int `json:"categoryCount"        db:"category_count"`
	PrimaryCategoryCount int `json:"primaryCategoryCount" db:"primary_category_count"`
	MilestoneCount       int `json:"milestoneCount"       db:"milestone_count"`
	SolutionCount        int `json:"solutionCount"        db:"solution_count"`

	// Indicates if the template is added to a model plan (not persisted, filled in by join in database)
	IsAdded   bool       `json:"isAdded" db:"is_added"`
	DateAdded *time.Time `json:"dateAdded" db:"date_added"`
	// contains filtered or unexported fields
}

MTOTemplate Represents a Master Template of MTO that can be applied to a Model Plan

func NewMTOTemplate

func NewMTOTemplate(
	createdBy uuid.UUID,
	key MTOTemplateKey,
	name string,
	description *string,
) *MTOTemplate

NewMTOTemplate returns a new MTOTemplate object

func (MTOTemplate) GetCreatedBy

func (b MTOTemplate) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOTemplate) GetID

func (b MTOTemplate) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOTemplate) GetModelPlanID

func (m MTOTemplate) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (MTOTemplate) GetModifiedBy

func (b MTOTemplate) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOTemplate) MostRecentModification

func (b MTOTemplate) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOTemplate) SetModifiedBy

func (b *MTOTemplate) SetModifiedBy(principal authentication.Principal) error

type MTOTemplateCategory

type MTOTemplateCategory struct {
	Name     string     `json:"name"       db:"name"`
	ParentID *uuid.UUID `json:"parentID"   db:"parent_id"`
	Order    int        `json:"order"      db:"order"`
	// contains filtered or unexported fields
}

func NewMTOTemplateCategory

func NewMTOTemplateCategory(
	createdBy uuid.UUID,
	templateID uuid.UUID,
	name string,
	parentID *uuid.UUID,
	order int,
) *MTOTemplateCategory

NewMTOTemplateCategory returns a new MTOTemplateCategory object

func (MTOTemplateCategory) GetCreatedBy

func (b MTOTemplateCategory) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOTemplateCategory) GetID

func (b MTOTemplateCategory) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOTemplateCategory) GetModifiedBy

func (b MTOTemplateCategory) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOTemplateCategory) GetTemplateID

func (t MTOTemplateCategory) GetTemplateID() uuid.UUID

GetTemplateID returns the templateID of the object

func (MTOTemplateCategory) IsUncategorized

func (m MTOTemplateCategory) IsUncategorized() bool

IsUncategorized returns if a category is an actual category, or if it is a placeholder category that is not store in the database

func (MTOTemplateCategory) MostRecentModification

func (b MTOTemplateCategory) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOTemplateCategory) SetModifiedBy

func (b *MTOTemplateCategory) SetModifiedBy(principal authentication.Principal) error

type MTOTemplateKey

type MTOTemplateKey string
const (
	MTOTemplateKeyAcoAndKidneyModels                MTOTemplateKey = "ACO_AND_KIDNEY_MODELS"
	MTOTemplateKeyEpisodePrimaryCareAndNonAcoModels MTOTemplateKey = "EPISODE_PRIMARY_CARE_AND_NON_ACO_MODELS"
	MTOTemplateKeyMedicareAdvantageAndDrugModels    MTOTemplateKey = "MEDICARE_ADVANTAGE_AND_DRUG_MODELS"
	MTOTemplateKeyStandardCategories                MTOTemplateKey = "STANDARD_CATEGORIES"
	MTOTemplateKeyStateAndLocalModels               MTOTemplateKey = "STATE_AND_LOCAL_MODELS"
)

type MTOTemplateMilestone

type MTOTemplateMilestone struct {

	// Note name and key are copied from the common milestone table when the template milestone is applied
	Name                  string                `json:"name"                  db:"name"`
	Key                   MTOCommonMilestoneKey `json:"key" db:"key"`
	MTOTemplateCategoryID *uuid.UUID            `json:"mtoTemplateCategoryID" db:"mto_template_category_id"`

	// Filled in by sql query when loading by solution ID
	MTOSolutionID *uuid.UUID `json:"mtoSolutionID" db:"mto_solution_id"`
	// contains filtered or unexported fields
}

func NewMTOTemplateMilestone

func NewMTOTemplateMilestone(
	createdBy uuid.UUID,
	templateID uuid.UUID,
	mtoCommonMilestoneKey MTOCommonMilestoneKey,
	mtoTemplateCategoryID *uuid.UUID,
) *MTOTemplateMilestone

NewMTOTemplateMilestone returns a new MTOTemplateMilestone object

func (MTOTemplateMilestone) GetCreatedBy

func (b MTOTemplateMilestone) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOTemplateMilestone) GetID

func (b MTOTemplateMilestone) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOTemplateMilestone) GetModifiedBy

func (b MTOTemplateMilestone) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOTemplateMilestone) GetTemplateID

func (t MTOTemplateMilestone) GetTemplateID() uuid.UUID

GetTemplateID returns the templateID of the object

func (MTOTemplateMilestone) MostRecentModification

func (b MTOTemplateMilestone) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOTemplateMilestone) SetModifiedBy

func (b *MTOTemplateMilestone) SetModifiedBy(principal authentication.Principal) error
type MTOTemplateMilestoneSolutionLink struct {
	TemplateMilestoneID uuid.UUID `json:"templateMilestoneID" db:"mto_template_milestone"`
	TemplateSolutionID  uuid.UUID `json:"templateSolutionID" db:"mto_template_solution"`
	// contains filtered or unexported fields
}
func NewMTOTemplateMilestoneSolutionLink(createdBy uuid.UUID, templateMilestoneID uuid.UUID, templateSolutionID uuid.UUID, templateID uuid.UUID) *MTOTemplateMilestoneSolutionLink

NewMTOTemplateMilestoneSolutionLink returns a new mtoTemplateMilestoneSolutionLink object

func (MTOTemplateMilestoneSolutionLink) GetCreatedBy

func (b MTOTemplateMilestoneSolutionLink) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOTemplateMilestoneSolutionLink) GetID

func (b MTOTemplateMilestoneSolutionLink) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOTemplateMilestoneSolutionLink) GetModifiedBy

func (b MTOTemplateMilestoneSolutionLink) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOTemplateMilestoneSolutionLink) GetTemplateID

func (t MTOTemplateMilestoneSolutionLink) GetTemplateID() uuid.UUID

GetTemplateID returns the templateID of the object

func (MTOTemplateMilestoneSolutionLink) MostRecentModification

func (b MTOTemplateMilestoneSolutionLink) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOTemplateMilestoneSolutionLink) SetModifiedBy

func (b *MTOTemplateMilestoneSolutionLink) SetModifiedBy(principal authentication.Principal) error

type MTOTemplateSolution

type MTOTemplateSolution struct {

	// Note name and key are copied from the common solution table when the template solution is applied
	Name                string               `json:"name"               db:"name"`
	Key                 MTOCommonSolutionKey `json:"key"                db:"key"`
	MTOCommonSolutionID uuid.UUID            `json:"mtoCommonSolutionID" db:"mto_common_solution_id"`

	// Filled in by sql query
	MTOMilestoneID *uuid.UUID `json:"mtoMilestoneID" db:"mto_milestone_id"`
	// contains filtered or unexported fields
}

func NewMTOTemplateSolution

func NewMTOTemplateSolution(
	createdBy uuid.UUID,
	templateID uuid.UUID,
	mtoCommonSolutionID uuid.UUID,
) *MTOTemplateSolution

NewMTOTemplateSolution returns a new MTOTemplateSolution object

func (MTOTemplateSolution) GetCreatedBy

func (b MTOTemplateSolution) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (MTOTemplateSolution) GetID

func (b MTOTemplateSolution) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (MTOTemplateSolution) GetModifiedBy

func (b MTOTemplateSolution) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (MTOTemplateSolution) GetTemplateID

func (t MTOTemplateSolution) GetTemplateID() uuid.UUID

GetTemplateID returns the templateID of the object

func (MTOTemplateSolution) MostRecentModification

func (b MTOTemplateSolution) MostRecentModification() (time.Time, uuid.UUID)

func (*MTOTemplateSolution) SetModifiedBy

func (b *MTOTemplateSolution) SetModifiedBy(principal authentication.Principal) error

type MTOTemplateSubCategory

type MTOTemplateSubCategory MTOTemplateCategory

MTOTemplateSubCategory is the same as a MTOTemplateCategory in the database. It is separated here so we can be precise in graphql

func NewMTOTemplateSubCategory

func NewMTOTemplateSubCategory(
	createdBy uuid.UUID,
	templateID uuid.UUID,
	name string,
	order int,
) *MTOTemplateSubCategory

NewMTOTemplateSubCategory returns a new MTOTemplateSubCategory object

func (MTOTemplateSubCategory) IsUncategorized

func (m MTOTemplateSubCategory) IsUncategorized() bool

IsUncategorized returns if a category is an actual subcategory, or if it is a placeholder subcategory that is not store in the database

type MetricsDigest

type MetricsDigest struct {
}

MetricsDigest contains a set of metrics

type ModelCategory

type ModelCategory string

ModelCategory represents the category of a model

const (
	MCAccountableCare            ModelCategory = "ACCOUNTABLE_CARE"
	MCDiseaseSpecificAndEpisodic ModelCategory = "DISEASE_SPECIFIC_AND_EPISODIC"
	MCHealthPlan                 ModelCategory = "HEALTH_PLAN"
	MCPrescriptionDrug           ModelCategory = "PRESCRIPTION_DRUG"
	MCStateBased                 ModelCategory = "STATE_BASED"
	MCStatutory                  ModelCategory = "STATUTORY"
	MCToBeDetermined             ModelCategory = "TO_BE_DETERMINED"
)

These constants represent the different values of ModelCategory

type ModelChangesAnalytics

type ModelChangesAnalytics struct {
	ModelName             *string    `json:"modelName" db:"model_name"`
	NumberOfChanges       *int       `json:"numberOfChanges" db:"number_of_changes"`
	NumberOfRecordChanges *int       `json:"numberOfRecordChanges" db:"number_of_record_changes"`
	ModelPlanID           *uuid.UUID `json:"modelPlanID" db:"id"`
}

ModelChangesAnalytics is the analytics data for changes by model

type ModelChangesBySectionAnalytics

type ModelChangesBySectionAnalytics struct {
	ModelName             *string    `json:"modelName" db:"model_name"`
	TableName             *string    `json:"tableName" db:"table_name"`
	NumberOfChanges       *int       `json:"numberOfChanges" db:"number_of_changes"`
	NumberOfRecordChanges *int       `json:"numberOfRecordChanges" db:"number_of_record_changes"`
	ModelPlanID           *uuid.UUID `json:"modelPlanID" db:"id"`
}

ModelChangesBySectionAnalytics is the analytics data for changes by section

type ModelChangesOtherDataAnalytics

type ModelChangesOtherDataAnalytics struct {
	ModelName             *string    `json:"modelName" db:"model_name"`
	TableName             *string    `json:"tableName" db:"table_name"`
	NumberOfChanges       *int       `json:"numberOfChanges" db:"number_of_changes"`
	NumberOfRecordChanges *int       `json:"numberOfRecordChanges" db:"number_of_record_changes"`
	Section               *string    `json:"section" db:"section"`
	ModelPlanID           *uuid.UUID `json:"modelPlanID" db:"id"`
}

ModelChangesOtherDataAnalytics is the analytics data for changes by other data

type ModelCountAnalytics

type ModelCountAnalytics struct {
	TotalNumberOfModels *int `json:"totalNumberOfModels" db:"total_number_of_models"`
}

ModelCountAnalytics is the analytics data for the total number of models

type ModelCountAnalyticsOverTime

type ModelCountAnalyticsOverTime struct {
	MonthYear      *string `json:"monthYear" db:"month_year"`
	NumberOfModels *int    `json:"numberOfModels" db:"number_of_models"`
}

ModelCountAnalytics is the analytics data for the total number of models over time

type ModelFollowersAnalytics

type ModelFollowersAnalytics struct {
	ModelName         *string    `json:"modelName" db:"model_name"`
	NumberOfFollowers *int       `json:"numberOfFollowers" db:"number_of_followers"`
	ModelPlanID       *uuid.UUID `json:"modelPlanID" db:"id"`
}

ModelFollowersAnalytics is the analytics data for the number of followers per model

type ModelPhase

type ModelPhase string
const (
	ModelPhaseIcipComplete ModelPhase = "ICIP_COMPLETE"
	ModelPhaseInClearance  ModelPhase = "IN_CLEARANCE"
	ModelPhaseCleared      ModelPhase = "CLEARED"
	ModelPhaseAnnounced    ModelPhase = "ANNOUNCED"
	ModelPhaseActive       ModelPhase = "ACTIVE"
	ModelPhaseEnded        ModelPhase = "ENDED"
)

type ModelPlan

type ModelPlan struct {
	ModelName              string      `json:"modelName" db:"model_name"`
	Abbreviation           *string     `json:"abbreviation" db:"abbreviation"`
	Archived               bool        `json:"archived" db:"archived"`
	Status                 ModelStatus `json:"status" db:"status"`
	PreviousSuggestedPhase *ModelPhase `json:"previousSuggestedPhase" db:"previous_suggested_phase"`
	// contains filtered or unexported fields
}

ModelPlan is the top-level object for an entire draft model plan

func NewModelPlan

func NewModelPlan(createdBy uuid.UUID, modelName string) *ModelPlan

NewModelPlan returns a new unarchived model plan with a default status of ModelStatusPlanDraft

func (ModelPlan) GetCreatedBy

func (b ModelPlan) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (ModelPlan) GetID

func (b ModelPlan) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (ModelPlan) GetModelPlanID

func (m ModelPlan) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (ModelPlan) GetModifiedBy

func (b ModelPlan) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (ModelPlan) MostRecentModification

func (b ModelPlan) MostRecentModification() (time.Time, uuid.UUID)

func (*ModelPlan) SetModifiedBy

func (b *ModelPlan) SetModifiedBy(principal authentication.Principal) error

type ModelPlanAndGroup

type ModelPlanAndGroup struct {
	ComponentGroup ComponentGroup `json:"componentGroup" db:"component_group"`
	// contains filtered or unexported fields
}

func (ModelPlanAndGroup) GetModelPlanID

func (m ModelPlanAndGroup) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

type ModelPlanAndMTOCommonSolution

type ModelPlanAndMTOCommonSolution struct {
	ModelPlanID uuid.UUID            `json:"modelPlanId" db:"model_plan_id"`
	ModelName   string               `json:"modelName" db:"model_name"`
	ModelStatus ModelStatus          `json:"modelStatus" db:"model_status"`
	ModelID     *string              `json:"modelId" db:"model_id"`
	Key         MTOCommonSolutionKey `json:"key" db:"mto_common_solution_key"`
}

type ModelPlanAndPossibleOperationalSolution

type ModelPlanAndPossibleOperationalSolution struct {
	PossibleOperationalSolutionID int                    `json:"possibleOperationalSolutionId" db:"possible_operational_solution_id"`
	Key                           OperationalSolutionKey `json:"key" db:"sol_key"`
	ModelPlanID                   uuid.UUID              `json:"modelPlanId" db:"model_plan_id"`
}

ModelPlanAndPossibleOperationalSolution represents the combined data from the SQL query with unique field names. NOTE, this type is not meant to return all operational solutions for a model plan, but rather just the type (possible solution)

type ModelPlanMTOTemplateLink struct {
	AppliedDate time.Time `json:"appliedDate" db:"applied_date"`
	IsActive    bool      `json:"isActive" db:"is_active"`
	// contains filtered or unexported fields
}

ModelPlanMTOTemplateLink represents the relationship between a model plan and an MTO template This table tracks which templates have been applied to which model plans and when

func NewModelPlanMTOTemplateLink(
	createdBy uuid.UUID,
	modelPlanID uuid.UUID,
	templateID uuid.UUID,
	appliedDate time.Time,
	isActive bool,
) *ModelPlanMTOTemplateLink

NewModelPlanMTOTemplateLink returns a new ModelPlanMTOTemplateLink object

func (ModelPlanMTOTemplateLink) GetCreatedBy

func (b ModelPlanMTOTemplateLink) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (ModelPlanMTOTemplateLink) GetID

func (b ModelPlanMTOTemplateLink) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (ModelPlanMTOTemplateLink) GetModelPlanID

func (m ModelPlanMTOTemplateLink) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (ModelPlanMTOTemplateLink) GetModifiedBy

func (b ModelPlanMTOTemplateLink) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (ModelPlanMTOTemplateLink) GetTemplateID

func (t ModelPlanMTOTemplateLink) GetTemplateID() uuid.UUID

GetTemplateID returns the templateID of the object

func (ModelPlanMTOTemplateLink) MostRecentModification

func (b ModelPlanMTOTemplateLink) MostRecentModification() (time.Time, uuid.UUID)

func (*ModelPlanMTOTemplateLink) SetModifiedBy

func (b *ModelPlanMTOTemplateLink) SetModifiedBy(principal authentication.Principal) error

type ModelPlanSharedActivityMeta

type ModelPlanSharedActivityMeta struct {
	ActivityMetaBaseStruct

	OptionalMessage *string `json:"optionalMessage"`
	// contains filtered or unexported fields
}

ModelPlanSharedActivityMeta represents the notification data that is relevant to sharing a model plan

func (ModelPlanSharedActivityMeta) GetModelPlanID

func (m ModelPlanSharedActivityMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*ModelPlanSharedActivityMeta) Scan

func (d *ModelPlanSharedActivityMeta) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (ModelPlanSharedActivityMeta) Value

Value allows us to satisfy the valuer interface so we can write to the database We need to do a specific implementation instead of relying on the implementation of the embedded struct, as that will only serialize the common data

type ModelPlanStatusGroup

type ModelPlanStatusGroup string
const (
	ModelPlanStatusGroupPreClearance ModelPlanStatusGroup = "PRE_CLEARANCE"
	ModelPlanStatusGroupInClearance  ModelPlanStatusGroup = "IN_CLEARANCE"
	ModelPlanStatusGroupCleared      ModelPlanStatusGroup = "CLEARED"
	ModelPlanStatusGroupAnnounced    ModelPlanStatusGroup = "ANNOUNCED"
	ModelPlanStatusGroupActive       ModelPlanStatusGroup = "ACTIVE"
	ModelPlanStatusGroupEnded        ModelPlanStatusGroup = "ENDED"
	ModelPlanStatusGroupCanceled     ModelPlanStatusGroup = "CANCELED"
	ModelPlanStatusGroupPaused       ModelPlanStatusGroup = "PAUSED"
)

type ModelShareSection

type ModelShareSection string

ModelShareSection is the section of the model plan that is being shared.

const (
	// // Include all sections below
	ModelShareSectionAll ModelShareSection = "ALL"
	// Just share the model plan
	ModelShareSectionModelPlan ModelShareSection = "MODEL_PLAN"
	// Share the model timeline
	ModelShareSectionModelTimeline ModelShareSection = "TIMELINE"
	// Share all MTO info
	ModelShareSectionMtoAll ModelShareSection = "MTO_ALL"
	// Only share MTO Milestones
	ModelShareSectionMtoMilestones ModelShareSection = "MTO_MILESTONES"
	// Only share MTO Solutions
	ModelShareSectionMtoSolutions ModelShareSection = "MTO_SOLUTIONS"
)

type ModelStatus

type ModelStatus string

ModelStatus represents the possible statuses of a Model Plan

const (
	ModelStatusPlanDraft             ModelStatus = "PLAN_DRAFT"
	ModelStatusPlanComplete          ModelStatus = "PLAN_COMPLETE"
	ModelStatusIcipComplete          ModelStatus = "ICIP_COMPLETE"
	ModelStatusInternalCmmiClearance ModelStatus = "INTERNAL_CMMI_CLEARANCE"
	ModelStatusCmsClearance          ModelStatus = "CMS_CLEARANCE"
	ModelStatusHhsClearance          ModelStatus = "HHS_CLEARANCE"
	ModelStatusOmbAsrfClearance      ModelStatus = "OMB_ASRF_CLEARANCE"
	ModelStatusCleared               ModelStatus = "CLEARED"
	ModelStatusAnnounced             ModelStatus = "ANNOUNCED"
	ModelStatusActive                ModelStatus = "ACTIVE"
	ModelStatusEnded                 ModelStatus = "ENDED"
	ModelStatusPaused                ModelStatus = "PAUSED"
	ModelStatusCanceled              ModelStatus = "CANCELED"
)

These constants represent the different values of ModelStatus

func (ModelStatus) Humanize

func (ms ModelStatus) Humanize() string

Humanize returns the human-readable string of a Model Status if a value is not found for the provided status, an empty string is returned

type ModelType

type ModelType string

ModelType is an enum that represents the basic type of a model

const (
	MTVoluntary                ModelType = "VOLUNTARY"
	MTMandatoryRegionalOrState ModelType = "MANDATORY_REGIONAL_OR_STATE"
	MTMandatoryNational        ModelType = "MANDATORY_NATIONAL"
	MTOther                    ModelType = "OTHER"
)

These constants represent the different values of ModelType

type ModelViewFilter

type ModelViewFilter string

ModelViewFilter represents the possible filters for a model plan view

const (
	ModelViewFilterChronicConditionsWarehouse                       ModelViewFilter = "CCW"
	ModelViewFilterCmmiCostEstimate                                 ModelViewFilter = "CMMI"
	ModelViewFilterConsolidatedBusinessOperationsSupportCenter      ModelViewFilter = "CBOSC"
	ModelViewFilterDivisionOfFinancialServicesAndDebtManagement     ModelViewFilter = "DFSDM"
	ModelViewFilterInnovationPaymentContractor                      ModelViewFilter = "IPC"
	ModelViewFilterInnovativeDesignDevelopmentAndOperationsContract ModelViewFilter = "IDDOC"
	ModelViewFilterMasterDataManagement                             ModelViewFilter = "MDM"
	ModelViewFilterOfficeOfTheActuary                               ModelViewFilter = "OACT"
	ModelViewFilterProviderBillingGroup                             ModelViewFilter = "PBG"
)

These constants represent the different values of ModelViewFilter

func (*ModelViewFilter) ValueOrEmpty

func (mvf *ModelViewFilter) ValueOrEmpty() string

ValueOrEmpty returns either the string value of the Filter, or an empty string if it is nil

type ModelsByStatusAnalytics

type ModelsByStatusAnalytics struct {
	Status         ModelStatus `json:"status" db:"status"`
	NumberOfModels *int        `json:"numberOfModels" db:"number_of_models"`
}

ModelsByStatusAnalytics is the analytics data for models by status

type ModelsToOperationMatrix

type ModelsToOperationMatrix struct {
	// empty on purpose so we have to add resolvers
	// we could probably swap ModelPlan out for modelPlanRelation since we only really need the ID, but this works for now
	ModelPlan *ModelPlan
}

type MultiSourceDataToCollect

type MultiSourceDataToCollect string

MultiSourceDataToCollect represents the possible values for multi-source data to collect

const (
	MultiSourceDataToCollectCommercialClaims MultiSourceDataToCollect = "COMMERCIAL_CLAIMS"
	MultiSourceDataToCollectLabData          MultiSourceDataToCollect = "LAB_DATA"
	MultiSourceDataToCollectManufacturer     MultiSourceDataToCollect = "MANUFACTURER"
	MultiSourceDataToCollectMedicaidClaims   MultiSourceDataToCollect = "MEDICAID_CLAIMS"
	MultiSourceDataToCollectMedicareClaims   MultiSourceDataToCollect = "MEDICARE_CLAIMS"
	MultiSourceDataToCollectPatientRegistry  MultiSourceDataToCollect = "PATIENT_REGISTRY"
	MultiSourceDataToCollectOther            MultiSourceDataToCollect = "OTHER"
)

Enum values for MultiSourceDataToCollect

type NDAAgreement

type NDAAgreement struct {
	// baseStruct
	UserID      uuid.UUID  `json:"userID" db:"user_id"`
	V1Agreed    bool       `json:"v1Agreed" db:"v1_agreed"`
	V1AgreedDts *time.Time `json:"v1AgreedDts" db:"v1_agreed_dts"`
	V2Agreed    bool       `json:"v2Agreed" db:"v2_agreed"`
	V2AgreedDts *time.Time `json:"v2AgreedDts" db:"v2_agreed_dts"`

	ID          uuid.UUID  `json:"id" db:"id"`
	CreatedBy   uuid.UUID  `json:"createdBy" db:"created_by"`
	CreatedDts  time.Time  `json:"createdDts" db:"created_dts"`
	ModifiedBy  *uuid.UUID `json:"modifiedBy" db:"modified_by"`
	ModifiedDts *time.Time `json:"modifiedDts" db:"modified_dts"`
}

NDAAgreement represents an NDAAgreement saved in the database

type NewDiscussionAddedActivityMeta

type NewDiscussionAddedActivityMeta struct {
	ActivityMetaBaseStruct

	UserName          string `json:"userName"`
	ModelPlanName     string `json:"modelPlanName"`
	ModelAbbreviation string `json:"modelAbbreviation"`
	Role              string `json:"role"`
	Content           string `json:"content"`
	// contains filtered or unexported fields
}

NewDiscussionAddedActivityMeta represents metadata for a "new discussion added" activity.

func (NewDiscussionAddedActivityMeta) GetDiscussionID

func (d NewDiscussionAddedActivityMeta) GetDiscussionID() uuid.UUID

GetDiscussionID returns DiscussionID

func (NewDiscussionAddedActivityMeta) GetModelPlanID

func (m NewDiscussionAddedActivityMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*NewDiscussionAddedActivityMeta) Scan

func (m *NewDiscussionAddedActivityMeta) Scan(src interface{}) error

Scan loads the meta from the database (JSONB)

func (NewDiscussionAddedActivityMeta) Value

Value allows writing the meta to the database (JSONB)

type NewDiscussionAddedNotificationType

type NewDiscussionAddedNotificationType string

NewDiscussionAddedNotificationType is an enum that represents the type of notification a user wants for when a new discussion is added

const (
	NewDiscussionAddedNotificationTypeAllModels      NewDiscussionAddedNotificationType = "ALL_MODELS"
	NewDiscussionAddedNotificationTypeFollowedModels NewDiscussionAddedNotificationType = "FOLLOWED_MODELS"
	NewDiscussionAddedNotificationTypeMyModels       NewDiscussionAddedNotificationType = "MY_MODELS"
)

These constants represent the possible values of a NewDiscussionAddedNotificationType

type NewDiscussionRepliedActivityMeta

type NewDiscussionRepliedActivityMeta struct {
	ActivityMetaBaseStruct

	ReplyID uuid.UUID `json:"replyID"`
	Content string    `json:"content"`
	// contains filtered or unexported fields
}

NewDiscussionRepliedActivityMeta represents the notification data that is relevant to a new Discussion Reply

func (NewDiscussionRepliedActivityMeta) GetDiscussionID

func (d NewDiscussionRepliedActivityMeta) GetDiscussionID() uuid.UUID

GetDiscussionID returns DiscussionID

func (NewDiscussionRepliedActivityMeta) GetModelPlanID

func (m NewDiscussionRepliedActivityMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*NewDiscussionRepliedActivityMeta) Scan

func (d *NewDiscussionRepliedActivityMeta) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (NewDiscussionRepliedActivityMeta) Value

Value allows us to satisfy the valuer interface so we can write to the database We need to do a specific implementation instead of relying on the implementation of the embedded struct, as that will only serialize the common data

type NewModelPlanActivityMeta

type NewModelPlanActivityMeta struct {
	ActivityMetaBaseStruct
	// contains filtered or unexported fields
}

NewModelPlanActivityMeta represents the notification data that is relevant to creating a new model plan

func (NewModelPlanActivityMeta) GetModelPlanID

func (m NewModelPlanActivityMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*NewModelPlanActivityMeta) Scan

func (cm *NewModelPlanActivityMeta) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (NewModelPlanActivityMeta) Value

Value allows us to satisfy the valuer interface so we can write to the database We need to do a specific implementation instead of relying on the implementation of the embedded struct, as that will only serialize the common data

type NonClaimsBasedPaymentType

type NonClaimsBasedPaymentType string

NonClaimsBasedPaymentType is the enumeration of options for this category

const (
	// NonClaimsBasedPaymentTypeAdvancedPayment indicates advanced payment
	NonClaimsBasedPaymentTypeAdvancedPayment NonClaimsBasedPaymentType = "ADVANCED_PAYMENT"
	// NonClaimsBasedPaymentTypeBundledEpisodeOfCare indicates bundled episode of care
	NonClaimsBasedPaymentTypeBundledEpisodeOfCare NonClaimsBasedPaymentType = "BUNDLED_EPISODE_OF_CARE"
	// NonClaimsBasedPaymentTypeCapitationPopulationBasedFull indicates capitation population based full
	NonClaimsBasedPaymentTypeCapitationPopulationBasedFull NonClaimsBasedPaymentType = "CAPITATION_POPULATION_BASED_FULL"
	// NonClaimsBasedPaymentTypeCapitationPopulationBasedPartial indicates capitation population based partial
	NonClaimsBasedPaymentTypeCapitationPopulationBasedPartial NonClaimsBasedPaymentType = "CAPITATION_POPULATION_BASED_PARTIAL"
	// NonClaimsBasedPaymentTypeCareCoordinationManagementFee indicates care coordination management fee
	NonClaimsBasedPaymentTypeCareCoordinationManagementFee NonClaimsBasedPaymentType = "CARE_COORDINATION_MANAGEMENT_FEE"
	// NonClaimsBasedPaymentTypeGlobalBudget indicates global budget
	NonClaimsBasedPaymentTypeGlobalBudget NonClaimsBasedPaymentType = "GLOBAL_BUDGET"
	// NonClaimsBasedPaymentTypeIncentivePayment indicates incentive payment
	NonClaimsBasedPaymentTypeIncentivePayment NonClaimsBasedPaymentType = "INCENTIVE_PAYMENT"
	// NonClaimsBasedPaymentTypeMAPDSharedSavings indicates MAPD shared savings
	NonClaimsBasedPaymentTypeMAPDSharedSavings NonClaimsBasedPaymentType = "MAPD_SHARED_SAVINGS"
	// NonClaimsBasedPaymentTypeSharedSavings indicates shared savings
	NonClaimsBasedPaymentTypeSharedSavings NonClaimsBasedPaymentType = "SHARED_SAVINGS"
	// NonClaimsBasedPaymentTypeOther indicates an option not provided
	NonClaimsBasedPaymentTypeOther NonClaimsBasedPaymentType = "OTHER"
)

type OpSolutionStatus

type OpSolutionStatus string

OpSolutionStatus represents the types of OpSolutionStatus types.

const (
	OpSNotStarted OpSolutionStatus = "NOT_STARTED"
	OpSOnboarding OpSolutionStatus = "ONBOARDING"
	OpSBacklog    OpSolutionStatus = "BACKLOG"
	OpSInProgress OpSolutionStatus = "IN_PROGRESS"
	OpSCompleted  OpSolutionStatus = "COMPLETED"
	OpSAtRisk     OpSolutionStatus = "AT_RISK"
)

These are the options for OpSolutionStatus

func (OpSolutionStatus) Humanize

func (oss OpSolutionStatus) Humanize() string

Humanize returns the human-readable string of a Operational Solution Status if a value is not found for the provided status, an empty string is returned

type OperationalNeed

type OperationalNeed struct {
	NeedType *int                `json:"needType" db:"need_type"`
	Name     *string             `json:"name" db:"need_name"`  // From Possible Operational Need Table
	Key      *OperationalNeedKey `json:"key" db:"need_key"`    // From Possible Operational Need Table
	Section  *TaskListSection    `json:"section" db:"section"` // From Possible Operational Need Table

	NameOther *string `json:"nameOther" db:"name_other"`
	Needed    *bool   `json:"needed" db:"needed"` // Null means that it has not been answered
	// contains filtered or unexported fields
}

OperationalNeed represents the need of a model plan

func NewOperationalNeed

func NewOperationalNeed(createdBy uuid.UUID, modelPlanID uuid.UUID) *OperationalNeed

NewOperationalNeed creates an Operational Need with the required fields

func (OperationalNeed) GetCreatedBy

func (b OperationalNeed) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (OperationalNeed) GetID

func (b OperationalNeed) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (OperationalNeed) GetIsOther

func (opN OperationalNeed) GetIsOther() bool

GetIsOther checks if this is a custom need, or a predefined possible operational need

func (OperationalNeed) GetModelPlanID

func (m OperationalNeed) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (OperationalNeed) GetModifiedBy

func (b OperationalNeed) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (OperationalNeed) GetName

func (opN OperationalNeed) GetName() string

GetName returns either the type name from the Possible Operational Need Table if it is a defined type, or the other name if an other type. if both are nil, it returns an empty string

func (OperationalNeed) MostRecentModification

func (b OperationalNeed) MostRecentModification() (time.Time, uuid.UUID)

func (*OperationalNeed) SetModifiedBy

func (b *OperationalNeed) SetModifiedBy(principal authentication.Principal) error

type OperationalNeedKey

type OperationalNeedKey string

OperationalNeedKey represents the types of OperationalNeedKey types.

const (
	OpNKManageCd                                    OperationalNeedKey = "MANAGE_CD"
	OpNKRevColBids                                  OperationalNeedKey = "REV_COL_BIDS"
	OpNKUpdateContract                              OperationalNeedKey = "UPDATE_CONTRACT"
	OpNKRecruitParticipants                         OperationalNeedKey = "RECRUIT_PARTICIPANTS"
	OpNKRevScoreApp                                 OperationalNeedKey = "REV_SCORE_APP"
	OpNKAppSupportCon                               OperationalNeedKey = "APP_SUPPORT_CON"
	OpNKCommWPart                                   OperationalNeedKey = "COMM_W_PART"
	OpNKManageProvOverlap                           OperationalNeedKey = "MANAGE_PROV_OVERLAP"
	OpNKManageBenOverlap                            OperationalNeedKey = "MANAGE_BEN_OVERLAP"
	OpNKHelpdeskSupport                             OperationalNeedKey = "HELPDESK_SUPPORT"
	OpNKIddocSupport                                OperationalNeedKey = "IDDOC_SUPPORT"
	OpNKEstablishBench                              OperationalNeedKey = "ESTABLISH_BENCH"
	OpNKProcessPartAppeals                          OperationalNeedKey = "PROCESS_PART_APPEALS"
	OpNKAcquireAnEvalCont                           OperationalNeedKey = "ACQUIRE_AN_EVAL_CONT"
	OpNKDataToMonitor                               OperationalNeedKey = "DATA_TO_MONITOR"
	OpNKDataToSupportEval                           OperationalNeedKey = "DATA_TO_SUPPORT_EVAL"
	OpNKClaimsBasedMeasures                         OperationalNeedKey = "CLAIMS_BASED_MEASURES"
	OpNKQualityPerformanceScores                    OperationalNeedKey = "QUALITY_PERFORMANCE_SCORES"
	OpNKSendRepdataToPart                           OperationalNeedKey = "SEND_REPDATA_TO_PART"
	OpNKAcquireALearnCont                           OperationalNeedKey = "ACQUIRE_A_LEARN_CONT"
	OpNKPartToPartCollab                            OperationalNeedKey = "PART_TO_PART_COLLAB"
	OpNKEducateBenef                                OperationalNeedKey = "EDUCATE_BENEF"
	OpNKAdjustFfsClaims                             OperationalNeedKey = "ADJUST_FFS_CLAIMS"
	OpNKManageFfsExclPayments                       OperationalNeedKey = "MANAGE_FFS_EXCL_PAYMENTS"
	OpNKMakeNonClaimsBasedPayments                  OperationalNeedKey = "MAKE_NON_CLAIMS_BASED_PAYMENTS"
	OpNKComputeSharedSavingsPayment                 OperationalNeedKey = "COMPUTE_SHARED_SAVINGS_PAYMENT"
	OpNKRecoverPayments                             OperationalNeedKey = "RECOVER_PAYMENTS"
	OpNKSignParticipationAgreements                 OperationalNeedKey = "SIGN_PARTICIPATION_AGREEMENTS"
	OpNKVetProvidersForProgramIntegrity             OperationalNeedKey = "VET_PROVIDERS_FOR_PROGRAM_INTEGRITY"
	OpNKUtilizeQualityMeasuresDevelopmentContractor OperationalNeedKey = "UTILIZE_QUALITY_MEASURES_DEVELOPMENT_CONTRACTOR"
	OpNKItPlatformForLearning                       OperationalNeedKey = "IT_PLATFORM_FOR_LEARNING"
)

These are the options for OperationalNeedKey

type OperationalSolution

type OperationalSolution struct {
	SolutionType     *int                    `json:"solutionType" db:"solution_type"`
	Needed           *bool                   `json:"needed" db:"needed"` // Null means that it is not an actual record
	Name             *string                 `json:"name" db:"sol_name"`
	Key              *OperationalSolutionKey `json:"key" db:"sol_key"`
	NameOther        *string                 `json:"nameOther" db:"name_other"`
	PocName          *string                 `json:"pocName" db:"poc_name"`
	PocEmail         *string                 `json:"pocEmail" db:"poc_email"`
	MustStartDts     *time.Time              `json:"mustStartDts" db:"must_start_dts"`
	MustFinishDts    *time.Time              `json:"mustFinishDts" db:"must_finish_dts"`
	IsOther          *bool                   `json:"isOther" db:"is_other"`
	IsCommonSolution *bool                   `json:"isCommonSolution" db:"is_common_solution"` // This is returned by the query true or false if it linked as a possible solution by need type. It is not stored in the operational_solution table, but we still map it here with a "db:" struct tag
	OtherHeader      *string                 `json:"otherHeader" db:"other_header"`
	Status           OpSolutionStatus        `json:"status" db:"status"`
	// contains filtered or unexported fields
}

OperationalSolution represents the specific implemented solution to an Operational Need

func NewOperationalSolution

func NewOperationalSolution(createdBy uuid.UUID, operationalNeedID uuid.UUID) *OperationalSolution

NewOperationalSolution creates a Operation Solution with the required fields

func (OperationalSolution) GetCreatedBy

func (b OperationalSolution) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (OperationalSolution) GetID

func (b OperationalSolution) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (OperationalSolution) GetIsOther

func (opSol OperationalSolution) GetIsOther() bool

GetIsOther checks if this is a custom need, or a predefined possible operational need

func (OperationalSolution) GetModifiedBy

func (b OperationalSolution) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (OperationalSolution) GetName

func (opSol OperationalSolution) GetName() string

GetName returns either the type name from the Possible Operational Solution Table if it is a defined type, or the other name if an other type. if both are nil, it returns an empty string

func (OperationalSolution) GetOperationalNeedID

func (d OperationalSolution) GetOperationalNeedID() uuid.UUID

GetOperationalNeedID returns OperationalID

func (OperationalSolution) MostRecentModification

func (b OperationalSolution) MostRecentModification() (time.Time, uuid.UUID)

func (*OperationalSolution) SetModifiedBy

func (b *OperationalSolution) SetModifiedBy(principal authentication.Principal) error

type OperationalSolutionKey

type OperationalSolutionKey string

OperationalSolutionKey represents the types of OperationalSolutionKey types.

const (
	OpSKInnovation                OperationalSolutionKey = "INNOVATION"
	OpSKAcoOs                     OperationalSolutionKey = "ACO_OS"
	OpSKApps                      OperationalSolutionKey = "APPS"
	OpSKCdx                       OperationalSolutionKey = "CDX"
	OpSKCcw                       OperationalSolutionKey = "CCW"
	OpSKCmsBox                    OperationalSolutionKey = "CMS_BOX"
	OpSKCbosc                     OperationalSolutionKey = "CBOSC"
	OpSKContractor                OperationalSolutionKey = "CONTRACTOR"
	OpSKCpiVetting                OperationalSolutionKey = "CPI_VETTING"
	OpSKCrossModelContract        OperationalSolutionKey = "CROSS_MODEL_CONTRACT"
	OpSKEft                       OperationalSolutionKey = "EFT"
	OpSKExistingCmsDataAndProcess OperationalSolutionKey = "EXISTING_CMS_DATA_AND_PROCESS"
	OpSKEdfr                      OperationalSolutionKey = "EDFR"
	OpSKGovdelivery               OperationalSolutionKey = "GOVDELIVERY"
	OpSKGs                        OperationalSolutionKey = "GS"
	OpSKHdr                       OperationalSolutionKey = "HDR"
	OpSKHpms                      OperationalSolutionKey = "HPMS"
	OpSKHiglas                    OperationalSolutionKey = "HIGLAS"
	OpSKIpc                       OperationalSolutionKey = "IPC"
	OpSKIdr                       OperationalSolutionKey = "IDR"
	OpSKInternalStaff             OperationalSolutionKey = "INTERNAL_STAFF"
	OpSKLdg                       OperationalSolutionKey = "LDG"
	OpSKLv                        OperationalSolutionKey = "LV"
	OpSKMarx                      OperationalSolutionKey = "MARX"
	OpSKOtherNewProcess           OperationalSolutionKey = "OTHER_NEW_PROCESS"
	OpSKOutlookMailbox            OperationalSolutionKey = "OUTLOOK_MAILBOX"
	OpSKQv                        OperationalSolutionKey = "QV"
	OpSKRmada                     OperationalSolutionKey = "RMADA"
	OpSKArs                       OperationalSolutionKey = "ARS"
	OpSKConnect                   OperationalSolutionKey = "CONNECT"
	OpSKLoi                       OperationalSolutionKey = "LOI"
	OpSKPostPortal                OperationalSolutionKey = "POST_PORTAL"
	OpSKRfa                       OperationalSolutionKey = "RFA"
	OpSKSharedSystems             OperationalSolutionKey = "SHARED_SYSTEMS"
	OpSKBCDA                      OperationalSolutionKey = "BCDA"
	OpSKISP                       OperationalSolutionKey = "ISP"
	OpSKMIDS                      OperationalSolutionKey = "MIDS"
	OpSKModelSpace                OperationalSolutionKey = "MODEL_SPACE"
)

These are the options for OperationalSolutionKey

type OperationalSolutionSubtask

type OperationalSolutionSubtask struct {
	Name   string                           `json:"name" db:"name"`
	Status OperationalSolutionSubtaskStatus `json:"status" db:"status"`
	// contains filtered or unexported fields
}

OperationalSolutionSubtask represents the specific implemented solution to an OperationalSolutionSubtask

func NewOperationalSolutionSubtask

func NewOperationalSolutionSubtask(
	createdBy uuid.UUID,
	ID uuid.UUID,
	solutionID uuid.UUID,
	name string,
	status OperationalSolutionSubtaskStatus,
) *OperationalSolutionSubtask

NewOperationalSolutionSubtask is a constructor to create an instance of OperationalSolutionSubtask

func (OperationalSolutionSubtask) GetCreatedBy

func (b OperationalSolutionSubtask) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (OperationalSolutionSubtask) GetID

func (b OperationalSolutionSubtask) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (OperationalSolutionSubtask) GetModifiedBy

func (b OperationalSolutionSubtask) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (OperationalSolutionSubtask) GetSolutionID

func (m OperationalSolutionSubtask) GetSolutionID() uuid.UUID

GetSolutionID returns the SolutionID of the task list section

func (OperationalSolutionSubtask) MostRecentModification

func (b OperationalSolutionSubtask) MostRecentModification() (time.Time, uuid.UUID)

func (*OperationalSolutionSubtask) SetModifiedBy

func (b *OperationalSolutionSubtask) SetModifiedBy(principal authentication.Principal) error

type OperationalSolutionSubtaskStatus

type OperationalSolutionSubtaskStatus string

OperationalSolutionSubtaskStatus is an enum that represents the possible operational solution subtask statuses

const (
	OperationalSolutionSubtaskStatusTodo       OperationalSolutionSubtaskStatus = "TODO"
	OperationalSolutionSubtaskStatusInProgress OperationalSolutionSubtaskStatus = "IN_PROGRESS"
	OperationalSolutionSubtaskStatusDone       OperationalSolutionSubtaskStatus = "DONE"
)

These constants represent the different values of OperationalSolutionSubtaskStatus

type OperationalSolutionWithNumberOfSubtasks

type OperationalSolutionWithNumberOfSubtasks struct {
	OperationalSolution
	NumberOfSubtasks int `json:"numberOfSubtasks" db:"number_of_subtasks"`
}

func (OperationalSolutionWithNumberOfSubtasks) GetCreatedBy

func (b OperationalSolutionWithNumberOfSubtasks) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (OperationalSolutionWithNumberOfSubtasks) GetID

func (b OperationalSolutionWithNumberOfSubtasks) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (OperationalSolutionWithNumberOfSubtasks) GetModifiedBy

func (b OperationalSolutionWithNumberOfSubtasks) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (OperationalSolutionWithNumberOfSubtasks) GetOperationalNeedID

func (d OperationalSolutionWithNumberOfSubtasks) GetOperationalNeedID() uuid.UUID

GetOperationalNeedID returns OperationalID

func (OperationalSolutionWithNumberOfSubtasks) MostRecentModification

func (b OperationalSolutionWithNumberOfSubtasks) MostRecentModification() (time.Time, uuid.UUID)

func (*OperationalSolutionWithNumberOfSubtasks) SetModifiedBy

func (b *OperationalSolutionWithNumberOfSubtasks) SetModifiedBy(principal authentication.Principal) error

type OverlapType

type OverlapType string

OverlapType represents the possible Overlap Type answers

const (
	OverlapYesNeedPolicies OverlapType = "YES_NEED_POLICIES"
	OverlapYesNoIssues     OverlapType = "YES_NO_ISSUES"
	OverlapNo              OverlapType = "NO"
)

These constants represent the possible OverLap Type values

type ParticipantRiskType

type ParticipantRiskType string

ParticipantRiskType represents the possible RiskType values

const (
	RiskTWOSIDED     ParticipantRiskType = "TWO_SIDED"
	RiskONESIDED     ParticipantRiskType = "ONE_SIDED"
	RiskCAPITATION   ParticipantRiskType = "CAPITATION"
	RiskNOTRISKBASED ParticipantRiskType = "NOT_RISK_BASED"
	RiskOTHER        ParticipantRiskType = "OTHER"
)

These constants represent the choices for Participant Risk Type

type PayRecipient

type PayRecipient string

PayRecipient is an enumeration of options for this category

const (
	// PayRecipientProviders indicates the pay recipient is a provider
	PayRecipientProviders PayRecipient = "PROVIDERS"
	// PayRecipientBeneficiaries indicates the pay recipient is a beneficiary
	PayRecipientBeneficiaries PayRecipient = "BENEFICIARIES"
	// PayRecipientParticipants indicates the pay recipient is a participant
	PayRecipientParticipants PayRecipient = "PARTICIPANTS"
	// PayRecipientStates indicates the pay recipient is a state
	PayRecipientStates PayRecipient = "STATES"
	// PayRecipientOther indicates the pay recipient is not included in the provided options
	PayRecipientOther PayRecipient = "OTHER"
)

type PayType

type PayType string

PayType is the enumeration of options for this category

const (
	// PayTypeClaimsBasedPayments indicates a claims based payment type
	PayTypeClaimsBasedPayments PayType = "CLAIMS_BASED_PAYMENTS"
	// PayTypeNonClaimsBasedPayments indicates a non-claims based payment type
	PayTypeNonClaimsBasedPayments PayType = "NON_CLAIMS_BASED_PAYMENTS"
	// PayTypeGrants indicates payments will involve grants
	PayTypeGrants PayType = "GRANTS"
)

type PhaseSuggestion

type PhaseSuggestion struct {
	Phase             ModelPhase
	SuggestedStatuses []ModelStatus
}

type PlanBasics

type PlanBasics struct {
	DemoCode   *string `json:"demoCode" db:"demo_code"`
	AmsModelID *string `json:"amsModelID" db:"ams_model_id"`

	ModelCategory             *ModelCategory `json:"modelCategory" db:"model_category"`
	AdditionalModelCategories pq.StringArray `json:"additionalModelCategories" db:"additional_model_categories"`
	CMSCenters                pq.StringArray `json:"cmsCenters" db:"cms_centers"`
	// CMSOther                  *string        `json:"cmsOther" db:"cms_other"`
	CMMIGroups pq.StringArray `json:"cmmiGroups" db:"cmmi_groups"`

	ModelType      pq.StringArray `json:"modelType" db:"model_type" statusWeight:"1"`
	ModelTypeOther *string        `json:"modelTypeOther" db:"model_type_other"`

	Problem           *string `json:"problem" db:"problem" statusWeight:"1"`
	Goal              *string `json:"goal" db:"goal" statusWeight:"1"`
	TestInterventions *string `json:"testInterventions" db:"test_interventions" statusWeight:"1"`
	Note              *string `json:"note" db:"note"`
	// contains filtered or unexported fields
}

PlanBasics represents the "plan basics" section of a plan

func NewPlanBasics

func NewPlanBasics(tls baseTaskListSection) *PlanBasics

NewPlanBasics returns a new plan basics object

func (*PlanBasics) CalcStatus

func (b *PlanBasics) CalcStatus(oldStatus TaskStatus) error

CalcStatus updates the TaskStatus if it is in ready, but it has been modified.

func (PlanBasics) GetModelPlanID

func (b PlanBasics) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*PlanBasics) GetStatus

func (b *PlanBasics) GetStatus() TaskStatus

GetStatus returns the status of a basesTaskListSection

func (*PlanBasics) ReadyForClearanceByUserAccount

func (b *PlanBasics) ReadyForClearanceByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForClearanceByUserAccount returns the user account for user ID set for Ready for Clearance By

func (*PlanBasics) ReadyForReviewByUserAccount

func (b *PlanBasics) ReadyForReviewByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForReviewByUserAccount returns the user account for user ID set for Ready for Review By

type PlanBeneficiaries

type PlanBeneficiaries struct {

	//page 1
	Beneficiaries                         pq.StringArray  `json:"beneficiaries" db:"beneficiaries"`
	BeneficiariesOther                    *string         `json:"beneficiariesOther" db:"beneficiaries_other"`
	BeneficiariesNote                     *string         `json:"beneficiariesNote" db:"beneficiaries_note"`
	DiseaseSpecificGroup                  *string         `json:"diseaseSpecificGroup" db:"disease_specific_group"`
	TreatDualElligibleDifferent           *TriStateAnswer `json:"treatDualElligibleDifferent" db:"treat_dual_elligible_different" statusWeight:"1"`
	TreatDualElligibleDifferentHow        *string         `json:"treatDualElligibleDifferentHow" db:"treat_dual_elligible_different_how"`
	TreatDualElligibleDifferentNote       *string         `json:"treatDualElligibleDifferentNote" db:"treat_dual_elligible_different_note"`
	ExcludeCertainCharacteristics         *TriStateAnswer `json:"excludeCertainCharacteristics" db:"exclude_certain_characteristics"  statusWeight:"1"`
	ExcludeCertainCharacteristicsCriteria *string         `json:"excludeCertainCharacteristicsCriteria" db:"exclude_certain_characteristics_criteria"`
	ExcludeCertainCharacteristicsNote     *string         `json:"excludeCertainCharacteristicsNote" db:"exclude_certain_characteristics_note"`

	// Page 2
	NumberPeopleImpacted       *int            `json:"numberPeopleImpacted" db:"number_people_impacted" statusWeight:"1"`
	EstimateConfidence         *ConfidenceType `json:"estimateConfidence" db:"estimate_confidence" statusWeight:"1"`
	ConfidenceNote             *string         `json:"confidenceNote" db:"confidence_note"`
	BeneficiarySelectionMethod pq.StringArray  `json:"beneficiarySelectionMethod" db:"beneficiary_selection_method"`
	BeneficiarySelectionOther  *string         `json:"beneficiarySelectionOther" db:"beneficiary_selection_other"`
	BeneficiarySelectionNote   *string         `json:"beneficiarySelectionNote" db:"beneficiary_selection_note"`

	// Page 3
	BeneficiarySelectionFrequency            pq.StringArray `json:"beneficiarySelectionFrequency" db:"beneficiary_selection_frequency" statusWeight:"1"`
	BeneficiarySelectionFrequencyContinually *string        `json:"beneficiarySelectionFrequencyContinually" db:"beneficiary_selection_frequency_continually"`
	BeneficiarySelectionFrequencyOther       *string        `json:"beneficiarySelectionFrequencyOther" db:"beneficiary_selection_frequency_other"`
	BeneficiarySelectionFrequencyNote        *string        `json:"beneficiarySelectionFrequencyNote" db:"beneficiary_selection_frequency_note"`
	BeneficiaryRemovalFrequency              pq.StringArray `json:"beneficiaryRemovalFrequency" db:"beneficiary_removal_frequency" statusWeight:"1"`
	BeneficiaryRemovalFrequencyContinually   *string        `json:"beneficiaryRemovalFrequencyContinually" db:"beneficiary_removal_frequency_continually"`
	BeneficiaryRemovalFrequencyOther         *string        `json:"beneficiaryRemovalFrequencyOther" db:"beneficiary_removal_frequency_other"`
	BeneficiaryRemovalFrequencyNote          *string        `json:"beneficiaryRemovalFrequencyNote" db:"beneficiary_removal_frequency_note"`
	BeneficiaryOverlap                       *OverlapType   `json:"beneficiaryOverlap" db:"beneficiary_overlap" statusWeight:"1"`
	BeneficiaryOverlapNote                   *string        `json:"beneficiaryOverlapNote" db:"beneficiary_overlap_note"`
	PrecedenceRules                          pq.StringArray `json:"precedenceRules" db:"precedence_rules"`
	PrecedenceRulesYes                       *string        `json:"precedenceRulesYes" db:"precedence_rules_yes"`
	PrecedenceRulesNo                        *string        `json:"precedenceRulesNo" db:"precedence_rules_no"`
	PrecedenceRulesNote                      *string        `json:"precedenceRulesNote" db:"precedence_rules_note"`
	// contains filtered or unexported fields
}

PlanBeneficiaries represents the beneficiaries section of the model plan task list

func NewPlanBeneficiaries

func NewPlanBeneficiaries(tls baseTaskListSection) *PlanBeneficiaries

NewPlanBeneficiaries returns a new plan Beneficiaries

func (*PlanBeneficiaries) CalcStatus

func (b *PlanBeneficiaries) CalcStatus(oldStatus TaskStatus) error

CalcStatus updates the TaskStatus if it is in ready, but it has been modified.

func (PlanBeneficiaries) GetModelPlanID

func (b PlanBeneficiaries) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*PlanBeneficiaries) GetStatus

func (b *PlanBeneficiaries) GetStatus() TaskStatus

GetStatus returns the status of a basesTaskListSection

func (*PlanBeneficiaries) ReadyForClearanceByUserAccount

func (b *PlanBeneficiaries) ReadyForClearanceByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForClearanceByUserAccount returns the user account for user ID set for Ready for Clearance By

func (*PlanBeneficiaries) ReadyForReviewByUserAccount

func (b *PlanBeneficiaries) ReadyForReviewByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForReviewByUserAccount returns the user account for user ID set for Ready for Review By

type PlanCR

type PlanCR struct {
	IDNumber        string     `json:"idNumber" db:"id_number"`
	DateInitiated   *time.Time `json:"dateInitiated" db:"date_initiated"`
	DateImplemented *time.Time `json:"dateImplemented" db:"date_implemented"`
	Title           string     `json:"title" db:"title"`
	Note            *string    `json:"note" db:"note"`
	// contains filtered or unexported fields
}

PlanCR represents CRs (Change Requests) related to a model plan

func NewPlanCR

func NewPlanCR(createdBy uuid.UUID, modelPlanID uuid.UUID) *PlanCR

NewPlanCR returns a New PlanCR

func (PlanCR) GetCreatedBy

func (b PlanCR) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PlanCR) GetID

func (b PlanCR) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PlanCR) GetModelPlanID

func (m PlanCR) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (PlanCR) GetModifiedBy

func (b PlanCR) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (PlanCR) MostRecentModification

func (b PlanCR) MostRecentModification() (time.Time, uuid.UUID)

func (*PlanCR) SetModifiedBy

func (b *PlanCR) SetModifiedBy(principal authentication.Principal) error

func (*PlanCR) ToEchimpCR

func (cr *PlanCR) ToEchimpCR(associatedModelUids *uuid.UUID) *EChimpCR

type PlanCollaborator

type PlanCollaborator struct {
	TeamRoles pq.StringArray `json:"teamRoles" db:"team_roles"`
	// contains filtered or unexported fields
}

PlanCollaborator represents a plan collaborator FullName and Email are stored as a result from the initial CEDAR query that's made when we create the collaborator This _could_ cause drift if either of these values change in CEDAR, but it's unlikely.

func NewPlanCollaborator

func NewPlanCollaborator(createdBy uuid.UUID, modelPlanID uuid.UUID, userID uuid.UUID, teamRoles []TeamRole) *PlanCollaborator

NewPlanCollaborator returns a plan collaborator object

func (PlanCollaborator) GetCreatedBy

func (b PlanCollaborator) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PlanCollaborator) GetID

func (b PlanCollaborator) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PlanCollaborator) GetModelPlanID

func (m PlanCollaborator) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (PlanCollaborator) GetModifiedBy

func (b PlanCollaborator) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (PlanCollaborator) MostRecentModification

func (b PlanCollaborator) MostRecentModification() (time.Time, uuid.UUID)

func (*PlanCollaborator) SetModifiedBy

func (b *PlanCollaborator) SetModifiedBy(principal authentication.Principal) error

func (*PlanCollaborator) UserAccount

func (b *PlanCollaborator) UserAccount(ctx context.Context) (*authentication.UserAccount, error)

type PlanDataExchangeApproach

type PlanDataExchangeApproach struct {

	// Page 2
	DataToCollectFromParticipants               pq.StringArray `json:"dataToCollectFromParticipants" db:"data_to_collect_from_participants" statusWeight:"1"`
	DataToCollectFromParticipantsReportsDetails *string        `json:"dataToCollectFromParticipantsReportsDetails" db:"data_to_collect_from_participants_reports_details"`
	DataToCollectFromParticipantsOther          *string        `json:"dataToCollectFromParticipantsOther" db:"data_to_collect_from_participants_other"`
	DataWillNotBeCollectedFromParticipants      *bool          `json:"dataWillNotBeCollectedFromParticipants" db:"data_will_not_be_collected_from_participants" statusWeight:"1"`
	DataToCollectFromParticipantsNote           *string        `json:"dataToCollectFromParticipantsNote" db:"data_to_collect_from_participants_note"`

	DataToSendToParticipants     pq.StringArray `json:"dataToSendToParticipants" db:"data_to_send_to_participants"`
	DataToSendToParticipantsNote *string        `json:"dataToSendToParticipantsNote" db:"data_to_send_to_participants_note"`

	// Page 3
	DoesNeedToMakeMultiPayerDataAvailable        *bool          `json:"doesNeedToMakeMultiPayerDataAvailable" db:"does_need_to_make_multi_payer_data_available" statusWeight:"1"`
	AnticipatedMultiPayerDataAvailabilityUseCase pq.StringArray `json:"anticipatedMultiPayerDataAvailabilityUseCase" db:"anticipated_multi_payer_data_availability_use_case"`
	DoesNeedToMakeMultiPayerDataAvailableNote    *string        `json:"doesNeedToMakeMultiPayerDataAvailableNote" db:"does_need_to_make_multi_payer_data_available_note"`

	DoesNeedToCollectAndAggregateMultiSourceData     *bool          `` /* 126-byte string literal not displayed */
	MultiSourceDataToCollect                         pq.StringArray `json:"multiSourceDataToCollect" db:"multi_source_data_to_collect"`
	MultiSourceDataToCollectOther                    *string        `json:"multiSourceDataToCollectOther" db:"multi_source_data_to_collect_other"`
	DoesNeedToCollectAndAggregateMultiSourceDataNote *string        `json:"doesNeedToCollectAndAggregateMultiSourceDataNote" db:"does_need_to_collect_and_aggregate_multi_source_data_note"`

	// Page 4
	WillImplementNewDataExchangeMethods *bool   `json:"willImplementNewDataExchangeMethods" db:"will_implement_new_data_exchange_methods" statusWeight:"1"`
	NewDataExchangeMethodsDescription   *string `json:"newDataExchangeMethodsDescription" db:"new_data_exchange_methods_description"`
	NewDataExchangeMethodsNote          *string `json:"newDataExchangeMethodsNote" db:"new_data_exchange_methods_note"`

	AdditionalDataExchangeConsiderationsDescription *string `json:"additionalDataExchangeConsiderationsDescription" db:"additional_data_exchange_considerations_description"`

	Status DataExchangeApproachStatus `json:"status" db:"status"`
	// contains filtered or unexported fields
}

PlanDataExchangeApproach represents the data exchange approach of a model plan

func NewPlanDataExchangeApproach

func NewPlanDataExchangeApproach(createdBy uuid.UUID, modelPlanID uuid.UUID) *PlanDataExchangeApproach

NewPlanDataExchangeApproach creates a new PlanDataExchangeApproach with the required fields

func (PlanDataExchangeApproach) GetCreatedBy

func (b PlanDataExchangeApproach) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PlanDataExchangeApproach) GetID

func (b PlanDataExchangeApproach) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PlanDataExchangeApproach) GetModelPlanID

func (m PlanDataExchangeApproach) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (PlanDataExchangeApproach) GetModifiedBy

func (b PlanDataExchangeApproach) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (*PlanDataExchangeApproach) IsDataExchangeApproachComplete

func (p *PlanDataExchangeApproach) IsDataExchangeApproachComplete() bool

func (*PlanDataExchangeApproach) MarkedCompleteByUserAccount

func (relation *PlanDataExchangeApproach) MarkedCompleteByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

MarkedCompleteByUserAccount returns the user account of the user who marked the struct as complete from the DB using the UserAccount service

func (PlanDataExchangeApproach) MostRecentModification

func (b PlanDataExchangeApproach) MostRecentModification() (time.Time, uuid.UUID)

func (*PlanDataExchangeApproach) SetModifiedBy

func (b *PlanDataExchangeApproach) SetModifiedBy(principal authentication.Principal) error

type PlanDataExchangeApproachMarkedCompleteActivityMeta

type PlanDataExchangeApproachMarkedCompleteActivityMeta struct {
	ActivityMetaBaseStruct

	DataExchangeApproachID uuid.UUID `json:"dataExchangeApproachID"`
	MarkedCompleteBy       uuid.UUID `json:"markedCompleteBy"`
	// contains filtered or unexported fields
}

PlanDataExchangeApproachMarkedCompleteActivityMeta represents the notification data that is relevant to completing a Data Exchange Approach

func (PlanDataExchangeApproachMarkedCompleteActivityMeta) GetModelPlanID

func (m PlanDataExchangeApproachMarkedCompleteActivityMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*PlanDataExchangeApproachMarkedCompleteActivityMeta) Scan

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (PlanDataExchangeApproachMarkedCompleteActivityMeta) Value

Value allows us to satisfy the valuer interface so we can write to the database

type PlanDiscussion

type PlanDiscussion struct {
	Content             TaggedHTML          `json:"content" db:"content"`
	UserRole            *DiscussionUserRole `json:"userRole" db:"user_role"`
	UserRoleDescription *string             `json:"userRoleDescription" db:"user_role_description"`
	IsAssessment        bool                `json:"isAssessment" db:"is_assessment"`
	// contains filtered or unexported fields
}

PlanDiscussion represents a discussion that a user has about a model plan

func NewPlanDiscussion

func NewPlanDiscussion(
	principal uuid.UUID,
	isAssessment bool,
	modelPlanID uuid.UUID,
	content TaggedHTML,
	userRole *DiscussionUserRole,
	userRoleDescription *string,
) *PlanDiscussion

NewPlanDiscussion returns a New PlanDiscussion with a status of UNANSWERED

func (PlanDiscussion) GetCreatedBy

func (b PlanDiscussion) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PlanDiscussion) GetID

func (b PlanDiscussion) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PlanDiscussion) GetModelPlanID

func (m PlanDiscussion) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (PlanDiscussion) GetModifiedBy

func (b PlanDiscussion) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (PlanDiscussion) MostRecentModification

func (b PlanDiscussion) MostRecentModification() (time.Time, uuid.UUID)

func (*PlanDiscussion) SetModifiedBy

func (b *PlanDiscussion) SetModifiedBy(principal authentication.Principal) error

type PlanDiscussionWithNumberOfReplies

type PlanDiscussionWithNumberOfReplies struct {
	PlanDiscussion
	NumberOfReplies int `json:"numberOfReplies" db:"number_of_replies"`
}

PlanDiscussionWithNumberOfReplies is a convenience struct to return a plan discussion with a count of the number of discussion replies in one method

func (PlanDiscussionWithNumberOfReplies) GetCreatedBy

func (b PlanDiscussionWithNumberOfReplies) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PlanDiscussionWithNumberOfReplies) GetID

func (b PlanDiscussionWithNumberOfReplies) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PlanDiscussionWithNumberOfReplies) GetModelPlanID

func (m PlanDiscussionWithNumberOfReplies) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (PlanDiscussionWithNumberOfReplies) GetModifiedBy

func (b PlanDiscussionWithNumberOfReplies) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (PlanDiscussionWithNumberOfReplies) MostRecentModification

func (b PlanDiscussionWithNumberOfReplies) MostRecentModification() (time.Time, uuid.UUID)

func (*PlanDiscussionWithNumberOfReplies) SetModifiedBy

func (b *PlanDiscussionWithNumberOfReplies) SetModifiedBy(principal authentication.Principal) error

type PlanDocument

type PlanDocument struct {
	IsLink bool        `json:"isLink" db:"is_link"`
	URL    zero.String `json:"url" db:"url"`

	FileType string `json:"fileType" db:"file_type"`
	Bucket   string `json:"bucket" db:"bucket"`
	FileKey  string `json:"fileKey" db:"file_key"`

	VirusScanned bool `json:"virusScanned" db:"virus_scanned"`
	VirusClean   bool `json:"virusClean" db:"virus_clean"`

	FileName             string       `json:"fileName" db:"file_name"`
	FileSize             int          `json:"fileSize" db:"file_size"`
	Restricted           bool         `json:"restricted" db:"restricted"`
	DocumentType         DocumentType `json:"documentType" db:"document_type"`
	OtherTypeDescription zero.String  `json:"otherType" db:"other_type"`
	OptionalNotes        zero.String  `json:"optionalNotes" db:"optional_notes"`

	DeletedAt *time.Time `json:"deletedAt" db:"deleted_at"`
	// contains filtered or unexported fields
}

PlanDocument represents a document attached to the plan

func NewPlanDocument

func NewPlanDocument(createdBy uuid.UUID, modelPlanID uuid.UUID, fileType string, bucket string, fileKey string, fileName string, fileSize int, documentType DocumentType, restricted bool, otherTypeDescription zero.String, optionalNotes zero.String, isLink bool, url zero.String) *PlanDocument

NewPlanDocument returns a new Plan Document

func (PlanDocument) GetCreatedBy

func (b PlanDocument) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PlanDocument) GetID

func (b PlanDocument) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PlanDocument) GetModelPlanID

func (m PlanDocument) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (PlanDocument) GetModifiedBy

func (b PlanDocument) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (PlanDocument) MostRecentModification

func (b PlanDocument) MostRecentModification() (time.Time, uuid.UUID)

func (*PlanDocument) SetModifiedBy

func (b *PlanDocument) SetModifiedBy(principal authentication.Principal) error
type PlanDocumentSolutionLink struct {
	DocumentID uuid.UUID `json:"documentID" db:"document_id"`
	// contains filtered or unexported fields
}

PlanDocumentSolutionLink represents a plan document solution link

func NewPlanDocumentSolutionLink(createdBy uuid.UUID, solutionID uuid.UUID) PlanDocumentSolutionLink

NewPlanDocumentSolutionLink creates an instance of a PlanDocumentSolutionLink

func (PlanDocumentSolutionLink) GetCreatedBy

func (b PlanDocumentSolutionLink) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PlanDocumentSolutionLink) GetID

func (b PlanDocumentSolutionLink) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PlanDocumentSolutionLink) GetModifiedBy

func (b PlanDocumentSolutionLink) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (PlanDocumentSolutionLink) GetSolutionID

func (m PlanDocumentSolutionLink) GetSolutionID() uuid.UUID

GetSolutionID returns the SolutionID of the task list section

func (PlanDocumentSolutionLink) MostRecentModification

func (b PlanDocumentSolutionLink) MostRecentModification() (time.Time, uuid.UUID)

func (*PlanDocumentSolutionLink) SetModifiedBy

func (b *PlanDocumentSolutionLink) SetModifiedBy(principal authentication.Principal) error

type PlanFavorite

type PlanFavorite struct {
	// contains filtered or unexported fields
}

PlanFavorite represents a relation that shows a model plan has been favorited

func NewPlanFavorite

func NewPlanFavorite(createdBy uuid.UUID, userID uuid.UUID, modelPlanID uuid.UUID) PlanFavorite

NewPlanFavorite returns a plan collaborator object

func (PlanFavorite) GetCreatedBy

func (b PlanFavorite) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PlanFavorite) GetID

func (b PlanFavorite) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PlanFavorite) GetModelPlanID

func (m PlanFavorite) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (PlanFavorite) GetModifiedBy

func (b PlanFavorite) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (PlanFavorite) MostRecentModification

func (b PlanFavorite) MostRecentModification() (time.Time, uuid.UUID)

func (*PlanFavorite) SetModifiedBy

func (b *PlanFavorite) SetModifiedBy(principal authentication.Principal) error

func (*PlanFavorite) UserAccount

func (b *PlanFavorite) UserAccount(ctx context.Context) (*authentication.UserAccount, error)

type PlanGeneralCharacteristics

type PlanGeneralCharacteristics struct {

	// Page 1
	IsNewModel         *bool      `json:"isNewModel" db:"is_new_model" statusWeight:"1"`
	CurrentModelPlanID *uuid.UUID `json:"currentModelPlanID" db:"current_model_plan_id"`
	ExistingModelID    *int       `json:"existingModelID" db:"existing_model_id"`

	// Resemble existing model questions
	ResemblesExistingModel              *YesNoOtherType `json:"resemblesExistingModel" db:"resembles_existing_model" statusWeight:"1"`
	ResemblesExistingModelWhyHow        *string         `json:"resemblesExistingModelWhyHow" db:"resembles_existing_model_why_how" statusWeight:"1"`
	ResemblesExistingModelOtherSpecify  *string         `json:"resemblesExistingModelOtherSpecify" db:"resembles_existing_model_other_specify" statusWeight:"1"`
	ResemblesExistingModelOtherSelected *bool           `json:"resemblesExistingModelOtherSelected" db:"resembles_existing_model_other_selected" statusWeight:"1"`
	ResemblesExistingModelOtherOption   *string         `json:"resemblesExistingModelOtherOption" db:"resembles_existing_model_other_option" statusWeight:"1"`
	ResemblesExistingModelHow           *string         `json:"resemblesExistingModelHow" db:"resembles_existing_model_how"`
	ResemblesExistingModelNote          *string         `json:"resemblesExistingModelNote" db:"resembles_existing_model_note"`

	// Particpation in model questions
	ParticipationInModelPrecondition              *YesNoOtherType `json:"participationInModelPrecondition" db:"participation_in_model_precondition"`
	ParticipationInModelPreconditionWhyHow        *string         `json:"participationInModelPreconditionWhyHow" db:"participation_in_model_precondition_why_how"`
	ParticipationInModelPreconditionOtherSpecify  *string         `json:"participationInModelPreconditionOtherSpecify" db:"participation_in_model_precondition_other_specify"`
	ParticipationInModelPreconditionOtherSelected *bool           `json:"participationInModelPreconditionOtherSelected" db:"participation_in_model_precondition_other_selected"`
	ParticipationInModelPreconditionOtherOption   *string         `json:"participationInModelPreconditionOtherOption" db:"participation_in_model_precondition_other_option"`
	ParticipationInModelPreconditionNote          *string         `json:"participationInModelPreconditionNote" db:"participation_in_model_precondition_note"`

	HasComponentsOrTracks       *bool   `json:"hasComponentsOrTracks" db:"has_components_or_tracks" statusWeight:"1"`
	HasComponentsOrTracksDiffer *string `json:"hasComponentsOrTracksDiffer" db:"has_components_or_tracks_differ"`
	HasComponentsOrTracksNote   *string `json:"hasComponentsOrTracksNote" db:"has_components_or_tracks_note"`

	// Page 2
	PhasedIn                     *bool          `json:"phasedIn" db:"phased_in" statusWeight:"1"` //default to false
	PhasedInNote                 *string        `json:"phasedInNote" db:"phased_in_note"`
	AgencyOrStateHelp            pq.StringArray `json:"agencyOrStateHelp" db:"agency_or_state_help"`
	AgencyOrStateHelpOther       *string        `json:"agencyOrStateHelpOther" db:"agency_or_state_help_other"`
	AgencyOrStateHelpNote        *string        `json:"agencyOrStateHelpNote" db:"agency_or_state_help_note"`
	AlternativePaymentModelTypes pq.StringArray `json:"alternativePaymentModelTypes" db:"alternative_payment_model_types"`
	AlternativePaymentModelNote  *string        `json:"alternativePaymentModelNote" db:"alternative_payment_model_note"`
	KeyCharacteristics           pq.StringArray `json:"keyCharacteristics" db:"key_characteristics"`
	KeyCharacteristicsOther      *string        `json:"keyCharacteristicsOther" db:"key_characteristics_other"`
	KeyCharacteristicsNote       *string        `json:"keyCharacteristicsNote" db:"key_characteristics_note"`
	CollectPlanBids              *bool          `json:"collectPlanBids" db:"collect_plan_bids"`
	CollectPlanBidsNote          *string        `json:"collectPlanBidsNote" db:"collect_plan_bids_note"`
	ManagePartCDEnrollment       *bool          `json:"managePartCDEnrollment" db:"manage_part_c_d_enrollment"`
	ManagePartCDEnrollmentNote   *string        `json:"managePartCDEnrollmentNote" db:"manage_part_c_d_enrollment_note"`
	PlanContractUpdated          *bool          `json:"planContractUpdated" db:"plan_contract_updated"`
	PlanContractUpdatedNote      *string        `json:"planContractUpdatedNote" db:"plan_contract_updated_note"`

	// Page 3
	CareCoordinationInvolved              *bool   `json:"careCoordinationInvolved" db:"care_coordination_involved" statusWeight:"1"`
	CareCoordinationInvolvedDescription   *string `json:"careCoordinationInvolvedDescription" db:"care_coordination_involved_description"`
	CareCoordinationInvolvedNote          *string `json:"careCoordinationInvolvedNote" db:"care_coordination_involved_note"`
	AdditionalServicesInvolved            *bool   `json:"additionalServicesInvolved" db:"additional_services_involved" statusWeight:"1"`
	AdditionalServicesInvolvedDescription *string `json:"additionalServicesInvolvedDescription" db:"additional_services_involved_description"`
	AdditionalServicesInvolvedNote        *string `json:"additionalServicesInvolvedNote" db:"additional_services_involved_note"`
	CommunityPartnersInvolved             *bool   `json:"communityPartnersInvolved" db:"community_partners_involved" statusWeight:"1"`
	CommunityPartnersInvolvedDescription  *string `json:"communityPartnersInvolvedDescription" db:"community_partners_involved_description"`
	CommunityPartnersInvolvedNote         *string `json:"communityPartnersInvolvedNote" db:"community_partners_involved_note"`

	// Page 4
	GeographiesTargeted                       *bool          `json:"geographiesTargeted" db:"geographies_targeted" statusWeight:"1"`
	GeographiesTargetedTypes                  pq.StringArray `json:"geographiesTargetedTypes" db:"geographies_targeted_types"`
	GeographiesStatesAndTerritories           pq.StringArray `json:"geographiesStatesAndTerritories" db:"geographies_states_and_territories"`
	GeographiesRegionTypes                    pq.StringArray `json:"geographiesRegionTypes" db:"geographies_region_types"`
	GeographiesTargetedTypesOther             *string        `json:"geographiesTargetedTypesOther" db:"geographies_targeted_types_other"`
	GeographiesTargetedAppliedTo              pq.StringArray `json:"geographiesTargetedAppliedTo" db:"geographies_targeted_applied_to"`
	GeographiesTargetedAppliedToOther         *string        `json:"geographiesTargetedAppliedToOther" db:"geographies_targeted_applied_to_other"`
	GeographiesTargetedNote                   *string        `json:"geographiesTargetedNote" db:"geographies_targeted_note"`
	ParticipationOptions                      *bool          `json:"participationOptions" db:"participation_options" statusWeight:"1"`
	ParticipationOptionsNote                  *string        `json:"participationOptionsNote" db:"participation_options_note"`
	AgreementTypes                            pq.StringArray `json:"agreementTypes" db:"agreement_types"`
	AgreementTypesOther                       *string        `json:"agreementTypesOther" db:"agreement_types_other"`
	MultiplePatricipationAgreementsNeeded     *bool          `json:"multiplePatricipationAgreementsNeeded" db:"multiple_patricipation_agreements_needed"`
	MultiplePatricipationAgreementsNeededNote *string        `json:"multiplePatricipationAgreementsNeededNote" db:"multiple_patricipation_agreements_needed_note"`

	// Page 5
	RulemakingRequired            *bool          `json:"rulemakingRequired" db:"rulemaking_required" statusWeight:"1"`
	RulemakingRequiredDescription *string        `json:"rulemakingRequiredDescription" db:"rulemaking_required_description"`
	RulemakingRequiredNote        *string        `json:"rulemakingRequiredNote" db:"rulemaking_required_note"`
	AuthorityAllowances           pq.StringArray `json:"authorityAllowances" db:"authority_allowances"`
	AuthorityAllowancesOther      *string        `json:"authorityAllowancesOther" db:"authority_allowances_other"`
	AuthorityAllowancesNote       *string        `json:"authorityAllowancesNote" db:"authority_allowances_note"`
	WaiversRequired               *bool          `json:"waiversRequired" db:"waivers_required" statusWeight:"1"`
	WaiversRequiredTypes          pq.StringArray `json:"waiversRequiredTypes" db:"waivers_required_types"`
	WaiversRequiredNote           *string        `json:"waiversRequiredNote" db:"waivers_required_note"`
	// contains filtered or unexported fields
}

PlanGeneralCharacteristics represents the "general characteristics" section of a plan

func NewPlanGeneralCharacteristics

func NewPlanGeneralCharacteristics(tls baseTaskListSection) *PlanGeneralCharacteristics

NewPlanGeneralCharacteristics returns a new GeneralCharacteristics object

func (*PlanGeneralCharacteristics) CalcStatus

func (b *PlanGeneralCharacteristics) CalcStatus(oldStatus TaskStatus) error

CalcStatus updates the TaskStatus if it is in ready, but it has been modified.

func (PlanGeneralCharacteristics) GetModelPlanID

func (b PlanGeneralCharacteristics) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*PlanGeneralCharacteristics) GetStatus

func (b *PlanGeneralCharacteristics) GetStatus() TaskStatus

GetStatus returns the status of a basesTaskListSection

func (*PlanGeneralCharacteristics) ReadyForClearanceByUserAccount

func (b *PlanGeneralCharacteristics) ReadyForClearanceByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForClearanceByUserAccount returns the user account for user ID set for Ready for Clearance By

func (*PlanGeneralCharacteristics) ReadyForReviewByUserAccount

func (b *PlanGeneralCharacteristics) ReadyForReviewByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForReviewByUserAccount returns the user account for user ID set for Ready for Review By

type PlanOpsEvalAndLearning

type PlanOpsEvalAndLearning struct {

	//Page 1
	Stakeholders           pq.StringArray `json:"stakeholders" db:"stakeholders"`
	StakeholdersOther      *string        `json:"stakeholdersOther" db:"stakeholders_other"`
	StakeholdersNote       *string        `json:"stakeholdersNote" db:"stakeholders_note"`
	HelpdeskUse            *bool          `json:"helpdeskUse" db:"helpdesk_use"`
	HelpdeskUseNote        *string        `json:"helpdeskUseNote" db:"helpdesk_use_note"`
	ContractorSupport      pq.StringArray `json:"contractorSupport" db:"contractor_support"`
	ContractorSupportOther *string        `json:"contractorSupportOther" db:"contractor_support_other"`
	ContractorSupportHow   *string        `json:"contractorSupportHow" db:"contractor_support_how"`
	ContractorSupportNote  *string        `json:"contractorSupportNote" db:"contractor_support_note"`
	IddocSupport           *bool          `json:"iddocSupport" db:"iddoc_support" statusWeight:"1"`
	IddocSupportNote       *string        `json:"iddocSupportNote" db:"iddoc_support_note"`

	//Page 2 (optional based on IddocSupport = true)
	TechnicalContactsIdentified       *bool      `json:"technicalContactsIdentified" db:"technical_contacts_identified"`
	TechnicalContactsIdentifiedDetail *string    `json:"technicalContactsIdentifiedDetail" db:"technical_contacts_identified_detail"`
	TechnicalContactsIdentifiedNote   *string    `json:"technicalContactsIdentifiedNote" db:"technical_contacts_identified_note"`
	CaptureParticipantInfo            *bool      `json:"captureParticipantInfo" db:"capture_participant_info"`
	CaptureParticipantInfoNote        *string    `json:"captureParticipantInfoNote" db:"capture_participant_info_note"`
	IcdOwner                          *string    `json:"icdOwner" db:"icd_owner"`
	DraftIcdDueDate                   *time.Time `json:"draftIcdDueDate" db:"draft_icd_due_date"`
	IcdNote                           *string    `json:"icdNote" db:"icd_note"`

	//Page 3 (optional based on IddocSupport = true)
	UatNeeds                  *string        `json:"uatNeeds" db:"uat_needs"`
	StcNeeds                  *string        `json:"stcNeeds" db:"stc_needs"`
	TestingTimelines          *string        `json:"testingTimelines" db:"testing_timelines"`
	TestingNote               *string        `json:"testingNote" db:"testing_note"`
	DataMonitoringFileTypes   pq.StringArray `json:"dataMonitoringFileTypes" db:"data_monitoring_file_types"`
	DataMonitoringFileOther   *string        `json:"dataMonitoringFileOther" db:"data_monitoring_file_other"`
	DataResponseType          *string        `json:"dataResponseType" db:"data_response_type"`
	DataResponseFileFrequency *string        `json:"dataResponseFileFrequency" db:"data_response_file_frequency"`

	//Page 4 (optional based on IddocSupport = true)
	DataFullTimeOrIncremental      *DataFullTimeOrIncrementalType `json:"dataFullTimeOrIncremental" db:"data_full_time_or_incremental"`
	EftSetUp                       *bool                          `json:"eftSetUp" db:"eft_set_up"`
	UnsolicitedAdjustmentsIncluded *bool                          `json:"unsolicitedAdjustmentsIncluded" db:"unsolicited_adjustments_included"`
	DataFlowDiagramsNeeded         *bool                          `json:"dataFlowDiagramsNeeded" db:"data_flow_diagrams_needed"`
	ProduceBenefitEnhancementFiles *bool                          `json:"produceBenefitEnhancementFiles" db:"produce_benefit_enhancement_files"`
	FileNamingConventions          *string                        `json:"fileNamingConventions" db:"file_naming_conventions"`
	DataMonitoringNote             *string                        `json:"dataMonitoringNote" db:"data_monitoring_note"`

	//Page 5
	BenchmarkForPerformance      *BenchmarkForPerformanceType `json:"benchmarkForPerformance" db:"benchmark_for_performance" statusWeight:"1"`
	BenchmarkForPerformanceNote  *string                      `json:"benchmarkForPerformanceNote" db:"benchmark_for_performance_note"`
	ComputePerformanceScores     *bool                        `json:"computePerformanceScores" db:"compute_performance_scores" statusWeight:"1"`
	ComputePerformanceScoresNote *string                      `json:"computePerformanceScoresNote" db:"compute_performance_scores_note"`
	RiskAdjustPerformance        *bool                        `json:"riskAdjustPerformance" db:"risk_adjust_performance" statusWeight:"1"`
	RiskAdjustFeedback           *bool                        `json:"riskAdjustFeedback" db:"risk_adjust_feedback" statusWeight:"1"`
	RiskAdjustPayments           *bool                        `json:"riskAdjustPayments" db:"risk_adjust_payments" statusWeight:"1"`
	RiskAdjustOther              *bool                        `json:"riskAdjustOther" db:"risk_adjust_other"`
	RiskAdjustNote               *string                      `json:"riskAdjustNote" db:"risk_adjust_note"`
	AppealPerformance            *bool                        `json:"appealPerformance" db:"appeal_performance" statusWeight:"1"`
	AppealFeedback               *bool                        `json:"appealFeedback" db:"appeal_feedback" statusWeight:"1"`
	AppealPayments               *bool                        `json:"appealPayments" db:"appeal_payments" statusWeight:"1"`
	AppealOther                  *bool                        `json:"appealOther" db:"appeal_other"`
	AppealNote                   *string                      `json:"appealNote" db:"appeal_note"`

	//Page 6
	EvaluationApproaches          pq.StringArray `json:"evaluationApproaches" db:"evaluation_approaches"`
	EvaluationApproachOther       *string        `json:"evaluationApproachOther" db:"evaluation_approach_other"`
	EvaluationApproachNote        *string        `json:"evaluationApproachNote" db:"evaluation_approach_note"`
	CcmInvolvment                 pq.StringArray `json:"ccmInvolvment" db:"ccm_involvment"`
	CcmInvolvmentOther            *string        `json:"ccmInvolvmentOther" db:"ccm_involvment_other"`
	CcmInvolvmentNote             *string        `json:"ccmInvolvmentNote" db:"ccm_involvment_note"`
	DataNeededForMonitoring       pq.StringArray `json:"dataNeededForMonitoring" db:"data_needed_for_monitoring"`
	DataNeededForMonitoringOther  *string        `json:"dataNeededForMonitoringOther" db:"data_needed_for_monitoring_other"`
	DataNeededForMonitoringNote   *string        `json:"dataNeededForMonitoringNote" db:"data_needed_for_monitoring_note"`
	DataToSendParticicipants      pq.StringArray `json:"dataToSendParticicipants" db:"data_to_send_particicipants"`
	DataToSendParticicipantsOther *string        `json:"dataToSendParticicipantsOther" db:"data_to_send_particicipants_other"`
	DataToSendParticicipantsNote  *string        `json:"dataToSendParticicipantsNote" db:"data_to_send_particicipants_note"`
	ShareCclfData                 *bool          `json:"shareCclfData" db:"share_cclf_data" statusWeight:"1"`
	ShareCclfDataNote             *string        `json:"shareCclfDataNote" db:"share_cclf_data_note"`

	//Page 7
	SendFilesBetweenCcw                          *bool           `json:"sendFilesBetweenCcw" db:"send_files_between_ccw" statusWeight:"1"`
	SendFilesBetweenCcwNote                      *string         `json:"sendFilesBetweenCcwNote" db:"send_files_between_ccw_note"`
	AppToSendFilesToKnown                        *bool           `json:"appToSendFilesToKnown" db:"app_to_send_files_to_known" statusWeight:"1"`
	AppToSendFilesToWhich                        *string         `json:"appToSendFilesToWhich" db:"app_to_send_files_to_which"`
	AppToSendFilesToNote                         *string         `json:"appToSendFilesToNote" db:"app_to_send_files_to_note"`
	UseCcwForFileDistribiutionToParticipants     *bool           `json:"useCcwForFileDistribiutionToParticipants" db:"use_ccw_for_file_distribiution_to_participants" statusWeight:"1"`
	UseCcwForFileDistribiutionToParticipantsNote *string         `json:"useCcwForFileDistribiutionToParticipantsNote" db:"use_ccw_for_file_distribiution_to_participants_note"`
	DevelopNewQualityMeasures                    *bool           `json:"developNewQualityMeasures" db:"develop_new_quality_measures" statusWeight:"1"`
	DevelopNewQualityMeasuresNote                *string         `json:"developNewQualityMeasuresNote" db:"develop_new_quality_measures_note"`
	QualityPerformanceImpactsPayment             *YesNoOtherType `json:"qualityPerformanceImpactsPayment" db:"quality_performance_impacts_payment" statusWeight:"1"`
	QualityPerformanceImpactsPaymentOther        *string         `json:"qualityPerformanceImpactsPaymentOther" db:"quality_performance_impacts_payment_other"`
	QualityPerformanceImpactsPaymentNote         *string         `json:"qualityPerformanceImpactsPaymentNote" db:"quality_performance_impacts_payment_note"`

	//Page 8
	DataSharingStarts                    *DataStartsType `json:"dataSharingStarts" db:"data_sharing_starts" statusWeight:"1"`
	DataSharingStartsOther               *string         `json:"dataSharingStartsOther" db:"data_sharing_starts_other"`
	DataSharingFrequency                 pq.StringArray  `json:"dataSharingFrequency" db:"data_sharing_frequency"`
	DataSharingFrequencyContinually      *string         `json:"dataSharingFrequencyContinually" db:"data_sharing_frequency_continually"`
	DataSharingFrequencyOther            *string         `json:"dataSharingFrequencyOther" db:"data_sharing_frequency_other"`
	DataSharingStartsNote                *string         `json:"dataSharingStartsNote" db:"data_sharing_starts_note"`
	DataCollectionStarts                 *DataStartsType `json:"dataCollectionStarts" db:"data_collection_starts" statusWeight:"1"`
	DataCollectionStartsOther            *string         `json:"dataCollectionStartsOther" db:"data_collection_starts_other"`
	DataCollectionFrequency              pq.StringArray  `json:"dataCollectionFrequency" db:"data_collection_frequency"`
	DataCollectionFrequencyContinually   *string         `json:"dataCollectionFrequencyContinually" db:"data_collection_frequency_continually"`
	DataCollectionFrequencyOther         *string         `json:"dataCollectionFrequencyOther" db:"data_collection_frequency_other"`
	DataCollectionFrequencyNote          *string         `json:"dataCollectionFrequencyNote" db:"data_collection_frequency_note"`
	QualityReportingStarts               *DataStartsType `json:"qualityReportingStarts" db:"quality_reporting_starts" statusWeight:"1"`
	QualityReportingStartsOther          *string         `json:"qualityReportingStartsOther" db:"quality_reporting_starts_other"`
	QualityReportingStartsNote           *string         `json:"qualityReportingStartsNote" db:"quality_reporting_starts_note"`
	QualityReportingFrequency            pq.StringArray  `json:"qualityReportingFrequency" db:"quality_reporting_frequency"`
	QualityReportingFrequencyContinually *string         `json:"qualityReportingFrequencyContinually" db:"quality_reporting_frequency_continually"`
	QualityReportingFrequencyOther       *string         `json:"qualityReportingFrequencyOther" db:"quality_reporting_frequency_other"`

	//Page 9
	ModelLearningSystems      pq.StringArray `json:"modelLearningSystems" db:"model_learning_systems"`
	ModelLearningSystemsOther *string        `json:"modelLearningSystemsOther" db:"model_learning_systems_other"`
	ModelLearningSystemsNote  *string        `json:"modelLearningSystemsNote" db:"model_learning_systems_note"`
	AnticipatedChallenges     *string        `json:"anticipatedChallenges" db:"anticipated_challenges" statusWeight:"1"`
	// contains filtered or unexported fields
}

PlanOpsEvalAndLearning represents the tasks list section that handles information around operations, evaluation, and learning

func NewPlanOpsEvalAndLearning

func NewPlanOpsEvalAndLearning(tls baseTaskListSection) *PlanOpsEvalAndLearning

NewPlanOpsEvalAndLearning returns a new ops Eval and Learning object

func (*PlanOpsEvalAndLearning) CalcStatus

func (b *PlanOpsEvalAndLearning) CalcStatus(oldStatus TaskStatus) error

CalcStatus updates the TaskStatus if it is in ready, but it has been modified.

func (PlanOpsEvalAndLearning) GetModelPlanID

func (b PlanOpsEvalAndLearning) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*PlanOpsEvalAndLearning) GetStatus

func (b *PlanOpsEvalAndLearning) GetStatus() TaskStatus

GetStatus returns the status of a basesTaskListSection

func (*PlanOpsEvalAndLearning) ReadyForClearanceByUserAccount

func (b *PlanOpsEvalAndLearning) ReadyForClearanceByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForClearanceByUserAccount returns the user account for user ID set for Ready for Clearance By

func (*PlanOpsEvalAndLearning) ReadyForReviewByUserAccount

func (b *PlanOpsEvalAndLearning) ReadyForReviewByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForReviewByUserAccount returns the user account for user ID set for Ready for Review By

type PlanParticipantsAndProviders

type PlanParticipantsAndProviders struct {

	//page 1
	Participants                      pq.StringArray `json:"participants" db:"participants"`
	MedicareProviderType              *string        `json:"medicareProviderType" db:"medicare_provider_type"`
	IsNewTypeOfProvidersOrSuppliers   *bool          `json:"isNewTypeOfProvidersOrSuppliers" db:"is_new_type_of_providers_or_suppliers"`
	StatesEngagement                  *string        `json:"statesEngagement" db:"states_engagement"`
	ParticipantsOther                 *string        `json:"participantsOther" db:"participants_other"`
	ParticipantsNote                  *string        `json:"participantsNote" db:"participants_note"`
	ParticipantsCurrentlyInModels     *bool          `json:"participantsCurrentlyInModels" db:"participants_currently_in_models" statusWeight:"1"`
	ParticipantsCurrentlyInModelsNote *string        `json:"participantsCurrentlyInModelsNote" db:"participants_currently_in_models_note"`
	ModelApplicationLevel             *string        `json:"modelApplicationLevel" db:"model_application_level"`

	//page 2
	ExpectedNumberOfParticipants *int             `json:"expectedNumberOfParticipants" db:"expected_number_of_participants" statusWeight:"1"`
	EstimateConfidence           *ConfidenceType  `json:"estimateConfidence" db:"estimate_confidence" statusWeight:"1"`
	ConfidenceNote               *string          `json:"confidenceNote" db:"confidence_note"`
	RecruitmentMethod            *RecruitmentType `json:"recruitmentMethod" db:"recruitment_method" statusWeight:"1"`
	RecruitmentOther             *string          `json:"recruitmentOther" db:"recruitment_other"`
	RecruitmentNote              *string          `json:"recruitmentNote" db:"recruitment_note"`
	SelectionMethod              pq.StringArray   `json:"selectionMethod" db:"selection_method"`
	SelectionOther               *string          `json:"selectionOther" db:"selection_other"`
	SelectionNote                *string          `json:"selectionNote" db:"selection_note"`

	//page 3
	ParticipantAddedFrequency              pq.StringArray `json:"participantAddedFrequency" db:"participant_added_frequency" statusWeight:"1"`
	ParticipantAddedFrequencyContinually   *string        `json:"participantAddedFrequencyContinually" db:"participant_added_frequency_continually"`
	ParticipantAddedFrequencyOther         *string        `json:"participantAddedFrequencyOther" db:"participant_added_frequency_other"`
	ParticipantAddedFrequencyNote          *string        `json:"participantAddedFrequencyNote" db:"participant_added_frequency_note"`
	ParticipantRemovedFrequency            pq.StringArray `json:"participantRemovedFrequency" db:"participant_removed_frequency" statusWeight:"1"`
	ParticipantRemovedFrequencyContinually *string        `json:"participantRemovedFrequencyContinually" db:"participant_removed_frequency_continually"`
	ParticipantRemovedFrequencyOther       *string        `json:"participantRemovedFrequencyOther" db:"participant_removed_frequency_other"`
	ParticipantRemovedFrequencyNote        *string        `json:"participantRemovedFrequencyNote" db:"participant_removed_frequency_note"`
	CommunicationMethod                    pq.StringArray `json:"communicationMethod" db:"communication_method"`
	CommunicationMethodOther               *string        `json:"communicationMethodOther" db:"communication_method_other"`
	CommunicationNote                      *string        `json:"communicationNote" db:"communication_note"`
	RiskType                               pq.StringArray `json:"riskType" db:"risk_type"`
	RiskOther                              *string        `json:"riskOther" db:"risk_other"`
	RiskNote                               *string        `json:"riskNote" db:"risk_note"`
	WillRiskChange                         *bool          `json:"willRiskChange" db:"will_risk_change" statusWeight:"1"`
	WillRiskChangeNote                     *string        `json:"willRiskChangeNote" db:"will_risk_change_note"`

	//page 4
	ParticipantRequireFinancialGuarantee      *bool          `json:"participantRequireFinancialGuarantee" db:"participant_require_financial_guarantee"`
	ParticipantRequireFinancialGuaranteeType  pq.StringArray `json:"participantRequireFinancialGuaranteeType" db:"participant_require_financial_guarantee_type"`
	ParticipantRequireFinancialGuaranteeOther *string        `json:"participantRequireFinancialGuaranteeOther" db:"participant_require_financial_guarantee_other"`
	ParticipantRequireFinancialGuaranteeNote  *string        `json:"participantRequireFinancialGuaranteeNote" db:"participant_require_financial_guarantee_note"`
	CoordinateWork                            *bool          `json:"coordinateWork" db:"coordinate_work" statusWeight:"1"`
	CoordinateWorkNote                        *string        `json:"coordinateWorkNote" db:"coordinate_work_note"`
	GainsharePayments                         *bool          `json:"gainsharePayments" db:"gainshare_payments" statusWeight:"1"`
	GainsharePaymentsTrack                    *bool          `json:"gainsharePaymentsTrack" db:"gainshare_payments_track"`
	GainsharePaymentsNote                     *string        `json:"gainsharePaymentsNote" db:"gainshare_payments_note"`
	GainsharePaymentsEligibility              pq.StringArray `json:"gainsharePaymentsEligibility" db:"gainshare_payments_eligibility"`
	GainsharePaymentsEligibilityOther         *string        `json:"gainsharePaymentsEligibilityOther" db:"gainshare_payments_eligibility_other"`
	ParticipantsIds                           pq.StringArray `json:"participantsIds" db:"participants_ids"`
	ParticipantsIdsOther                      *string        `json:"participantsIdsOther" db:"participants_ids_other"`
	ParticipantsIDSNote                       *string        `json:"participantsIDSNote" db:"participants_ids_note"`

	//page 5
	ProviderAdditionFrequency            pq.StringArray `json:"providerAdditionFrequency" db:"provider_addition_frequency" statusWeight:"1"`
	ProviderAdditionFrequencyContinually *string        `json:"providerAdditionFrequencyContinually" db:"provider_addition_frequency_continually"`
	ProviderAdditionFrequencyOther       *string        `json:"providerAdditionFrequencyOther" db:"provider_addition_frequency_other"`
	ProviderAdditionFrequencyNote        *string        `json:"providerAdditionFrequencyNote" db:"provider_addition_frequency_note"`
	ProviderAddMethod                    pq.StringArray `json:"providerAddMethod" db:"provider_add_method"`
	ProviderAddMethodOther               *string        `json:"providerAddMethodOther" db:"provider_add_method_other"`
	ProviderAddMethodNote                *string        `json:"providerAddMethodNote" db:"provider_add_method_note"`
	ProviderLeaveMethod                  pq.StringArray `json:"providerLeaveMethod" db:"provider_leave_method"`
	ProviderLeaveMethodOther             *string        `json:"providerLeaveMethodOther" db:"provider_leave_method_other"`
	ProviderLeaveMethodNote              *string        `json:"providerLeaveMethodNote" db:"provider_leave_method_note"`
	ProviderRemovalFrequency             pq.StringArray `json:"providerRemovalFrequency" db:"provider_removal_frequency" statusWeight:"1"`
	ProviderRemovalFrequencyContinually  *string        `json:"providerRemovalFrequencyContinually" db:"provider_removal_frequency_continually"`
	ProviderRemovalFrequencyOther        *string        `json:"providerRemovalFrequencyOther" db:"provider_removal_frequency_other"`
	ProviderRemovalFrequencyNote         *string        `json:"providerRemovalFrequencyNote" db:"provider_removal_frequency_note"`
	ProviderOverlap                      *OverlapType   `json:"providerOverlap" db:"provider_overlap" statusWeight:"1"`
	ProviderOverlapHierarchy             *string        `json:"providerOverlapHierarchy" db:"provider_overlap_hierarchy"`
	ProviderOverlapNote                  *string        `json:"providerOverlapNote" db:"provider_overlap_note"`
	// contains filtered or unexported fields
}

PlanParticipantsAndProviders represents the tasks list section that handles information around participants and providers

func NewPlanParticipantsAndProviders

func NewPlanParticipantsAndProviders(tls baseTaskListSection) *PlanParticipantsAndProviders

NewPlanParticipantsAndProviders returns a new plan Beneficiaries

func (*PlanParticipantsAndProviders) CalcStatus

func (b *PlanParticipantsAndProviders) CalcStatus(oldStatus TaskStatus) error

CalcStatus updates the TaskStatus if it is in ready, but it has been modified.

func (PlanParticipantsAndProviders) GetModelPlanID

func (b PlanParticipantsAndProviders) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*PlanParticipantsAndProviders) GetStatus

func (b *PlanParticipantsAndProviders) GetStatus() TaskStatus

GetStatus returns the status of a basesTaskListSection

func (*PlanParticipantsAndProviders) ReadyForClearanceByUserAccount

func (b *PlanParticipantsAndProviders) ReadyForClearanceByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForClearanceByUserAccount returns the user account for user ID set for Ready for Clearance By

func (*PlanParticipantsAndProviders) ReadyForReviewByUserAccount

func (b *PlanParticipantsAndProviders) ReadyForReviewByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForReviewByUserAccount returns the user account for user ID set for Ready for Review By

type PlanPayments

type PlanPayments struct {

	// Page 1
	FundingSource                       pq.StringArray `json:"fundingSource" db:"funding_source" statusWeight:"1"`
	FundingSourcePatientProtectionInfo  *string        `json:"fundingSourcePatientProtectionInfo" db:"funding_source_patient_protection_info"`
	FundingSourceMedicareAInfo          *string        `json:"fundingSourceMedicareAInfo" db:"funding_source_medicare_a_info"`
	FundingSourceMedicareBInfo          *string        `json:"fundingSourceMedicareBInfo" db:"funding_source_medicare_b_info"`
	FundingSourceOther                  *string        `json:"fundingSourceOther" db:"funding_source_other"`
	FundingSourceNote                   *string        `json:"fundingSourceNote" db:"funding_source_note"`
	FundingSourceR                      pq.StringArray `json:"fundingSourceR" db:"funding_source_r" statusWeight:"1"`
	FundingSourceRPatientProtectionInfo *string        `json:"fundingSourceRPatientProtectionInfo" db:"funding_source_r_patient_protection_info"`
	FundingSourceRMedicareAInfo         *string        `json:"fundingSourceRMedicareAInfo" db:"funding_source_r_medicare_a_info"`
	FundingSourceRMedicareBInfo         *string        `json:"fundingSourceRMedicareBInfo" db:"funding_source_r_medicare_b_info"`
	FundingSourceROther                 *string        `json:"fundingSourceROther" db:"funding_source_r_other"`
	FundingSourceRNote                  *string        `json:"fundingSourceRNote" db:"funding_source_r_note"`
	PayRecipients                       pq.StringArray `json:"payRecipients" db:"pay_recipients" statusWeight:"1"`
	PayRecipientsOtherSpecification     *string        `json:"payRecipientsOtherSpecification" db:"pay_recipients_other_specification"`
	PayRecipientsNote                   *string        `json:"payRecipientsNote" db:"pay_recipients_note"`
	PayType                             pq.StringArray `json:"payType" db:"pay_type" statusWeight:"1"`
	PayTypeNote                         *string        `json:"payTypeNote" db:"pay_type_note"`

	// Page 2
	PayClaims                               pq.StringArray `json:"payClaims" db:"pay_claims" statusWeight:"1"`
	PayClaimsOther                          *string        `json:"payClaimsOther" db:"pay_claims_other"`
	PayClaimsNote                           *string        `json:"payClaimsNote" db:"pay_claims_note"`
	ShouldAnyProvidersExcludedFFSSystems    *bool          `json:"shouldAnyProvidersExcludedFFSSystems" db:"should_any_providers_excluded_ffs_systems" statusWeight:"1"`
	ShouldAnyProviderExcludedFFSSystemsNote *string        `json:"shouldAnyProviderExcludedFFSSystemsNote" db:"should_any_providers_excluded_ffs_systems_note"`
	ChangesMedicarePhysicianFeeSchedule     *bool          `json:"changesMedicarePhysicianFeeSchedule" db:"changes_medicare_physician_fee_schedule" statusWeight:"1"`
	ChangesMedicarePhysicianFeeScheduleNote *string        `json:"changesMedicarePhysicianFeeScheduleNote" db:"changes_medicare_physician_fee_schedule_note"`
	AffectsMedicareSecondaryPayerClaims     *bool          `json:"affectsMedicareSecondaryPayerClaims" db:"affects_medicare_secondary_payer_claims" statusWeight:"1"`
	AffectsMedicareSecondaryPayerClaimsHow  *string        `json:"affectsMedicareSecondaryPayerClaimsHow" db:"affects_medicare_secondary_payer_claims_how"`
	AffectsMedicareSecondaryPayerClaimsNote *string        `json:"affectsMedicareSecondaryPayerClaimsNote" db:"affects_medicare_secondary_payer_claims_note"`
	PayModelDifferentiation                 *string        `json:"payModelDifferentiation" db:"pay_model_differentiation" statusWeight:"1"`

	// Page 3
	WillBePaymentAdjustments                *bool   `json:"WillBePaymentAdjustments" db:"will_be_payment_adjustments"`
	WillBePaymentAdjustmentsNote            *string `json:"WillBePaymentAdjustmentsNote" db:"will_be_payment_adjustments_note"`
	CreatingDependenciesBetweenServices     *bool   `json:"creatingDependenciesBetweenServices" db:"creating_dependencies_between_services" statusWeight:"1"`
	CreatingDependenciesBetweenServicesNote *string `json:"creatingDependenciesBetweenServicesNote" db:"creating_dependencies_between_services_note"`
	NeedsClaimsDataCollection               *bool   `json:"needsClaimsDataCollection" db:"needs_claims_data_collection" statusWeight:"1"`
	NeedsClaimsDataCollectionNote           *string `json:"needsClaimsDataCollectionNote" db:"needs_claims_data_collection_note"`
	ProvidingThirdPartyFile                 *bool   `json:"providingThirdPartyFile" db:"providing_third_party_file" statusWeight:"1"`
	IsContractorAwareTestDataRequirements   *bool   `json:"isContractorAwareTestDataRequirements" db:"is_contractor_aware_test_data_requirements" statusWeight:"1"`

	// Page 4
	BeneficiaryCostSharingLevelAndHandling          *string `json:"beneficiaryCostSharingLevelAndHandling" db:"beneficiary_cost_sharing_level_and_handling" statusWeight:"1"`
	WaiveBeneficiaryCostSharingForAnyServices       *bool   `json:"waiveBeneficiaryCostSharingForAnyServices" db:"waive_beneficiary_cost_sharing_for_any_services" statusWeight:"1"`
	WaiveBeneficiaryCostSharingServiceSpecification *string `json:"waiveBeneficiaryCostSharingServiceSpecification" db:"waive_beneficiary_cost_sharing_service_specification"`
	WaiverOnlyAppliesPartOfPayment                  *bool   `json:"waiverOnlyAppliesPartOfPayment" db:"waiver_only_applies_part_of_payment"`
	WaiveBeneficiaryCostSharingNote                 *string `json:"waiveBeneficiaryCostSharingNote" db:"waive_beneficiary_cost_sharing_note"`

	// Page 5
	NonClaimsPayments                               pq.StringArray `json:"nonClaimsPayments" db:"non_claims_payments" statusWeight:"1"`
	NonClaimsPaymentsOther                          *string        `json:"nonClaimsPaymentOther" db:"non_claims_payments_other"`
	NonClaimsPaymentsNote                           *string        `json:"nonClaimsPaymentsNote" db:"non_claims_payments_note"`
	PaymentCalculationOwner                         *string        `json:"paymentCalculationOwner" db:"payment_calculation_owner" statusWeight:"1"`
	NumberPaymentsPerPayCycle                       *string        `json:"numberPaymentsPerPayCycle" db:"number_payments_per_pay_cycle" statusWeight:"1"`
	NumberPaymentsPerPayCycleNote                   *string        `json:"numberPaymentsPerPayCycleNote" db:"number_payments_per_pay_cycle_note"`
	SharedSystemsInvolvedAdditionalClaimPayment     *bool          `json:"sharedSystemsInvolvedAdditionalClaimPayment" db:"shared_systems_involved_additional_claim_payment" statusWeight:"1"`
	SharedSystemsInvolvedAdditionalClaimPaymentNote *string        `json:"sharedSystemsInvolvedAdditionalClaimPaymentNote" db:"shared_systems_involved_additional_claim_payment_note"`
	PlanningToUseInnovationPaymentContractor        *bool          `json:"planningToUseInnovationPaymentContractor" db:"planning_to_use_innovation_payment_contractor" statusWeight:"1"`
	PlanningToUseInnovationPaymentContractorNote    *string        `json:"planningToUseInnovationPaymentContractorNote" db:"planning_to_use_innovation_payment_contractor_note"`

	// Page 6
	ExpectedCalculationComplexityLevel                *ComplexityCalculationLevelType `json:"expectedCalculationComplexityLevel" db:"expected_calculation_complexity_level" statusWeight:"1"`
	ExpectedCalculationComplexityLevelNote            *string                         `json:"expectedCalculationComplexityLevelNote" db:"expected_calculation_complexity_level_note"`
	ClaimsProcessingPrecedence                        *bool                           `json:"claimsProcessingPrecedence" db:"claims_processing_precedence"`
	ClaimsProcessingPrecedenceOther                   *string                         `json:"claimsProcessingPrecedenceOther" db:"claims_processing_precedence_other"`
	ClaimsProcessingPrecedenceNote                    *string                         `json:"claimsProcessingPrecedenceNote" db:"claims_processing_precedence_note"`
	CanParticipantsSelectBetweenPaymentMechanisms     *bool                           `json:"canParticipantsSelectBetweenPaymentMechanisms" db:"can_participants_select_between_payment_mechanisms" statusWeight:"1"`
	CanParticipantsSelectBetweenPaymentMechanismsHow  *string                         `json:"canParticipantsSelectBetweenPaymentMechanismsHow" db:"can_participants_select_between_payment_mechanisms_how"`
	CanParticipantsSelectBetweenPaymentMechanismsNote *string                         `json:"canParticipantsSelectBetweenPaymentMechanismsNote" db:"can_participants_select_between_payment_mechanisms_note"`
	AnticipatedPaymentFrequency                       pq.StringArray                  `json:"anticipatedPaymentFrequency" db:"anticipated_payment_frequency" statusWeight:"1"`
	AnticipatedPaymentFrequencyContinually            *string                         `json:"anticipatedPaymentFrequencyContinually" db:"anticipated_payment_frequency_continually"`
	AnticipatedPaymentFrequencyOther                  *string                         `json:"anticipatedPaymentFrequencyOther" db:"anticipated_payment_frequency_other"`
	AnticipatedPaymentFrequencyNote                   *string                         `json:"anticipatedPaymentFrequencyNote" db:"anticipated_payment_frequency_note"`

	// Page 7
	WillRecoverPayments                              *bool          `json:"willRecoverPayments" db:"will_recover_payments" statusWeight:"1"`
	WillRecoverPaymentsNote                          *string        `json:"willRecoverPaymentsNote" db:"will_recover_payments_note"`
	AnticipateReconcilingPaymentsRetrospectively     *bool          `json:"anticipateReconcilingPaymentsRetrospectively" db:"anticipate_reconciling_payments_retrospectively" statusWeight:"1"`
	AnticipateReconcilingPaymentsRetrospectivelyNote *string        `json:"anticipateReconcilingPaymentsRetrospectivelyNote" db:"anticipate_reconciling_payments_retrospectively_note"`
	PaymentReconciliationFrequency                   pq.StringArray `json:"paymentReconciliationFrequency" db:"payment_reconciliation_frequency" statusWeight:"1"`
	PaymentReconciliationFrequencyContinually        *string        `json:"paymentReconciliationFrequencyContinually" db:"payment_reconciliation_frequency_continually"`
	PaymentReconciliationFrequencyOther              *string        `json:"paymentReconciliationFrequencyOther" db:"payment_reconciliation_frequency_other"`
	PaymentReconciliationFrequencyNote               *string        `json:"paymentReconciliationFrequencyNote" db:"payment_reconciliation_frequency_note"`
	PaymentDemandRecoupmentFrequency                 pq.StringArray `json:"paymentDemandRecoupmentFrequency" db:"payment_demand_recoupment_frequency" statusWeight:"1"`
	PaymentDemandRecoupmentFrequencyContinually      *string        `json:"paymentDemandRecoupmentFrequencyContinually" db:"payment_demand_recoupment_frequency_continually"`
	PaymentDemandRecoupmentFrequencyOther            *string        `json:"paymentDemandRecoupmentFrequencyOther" db:"payment_demand_recoupment_frequency_other"`
	PaymentDemandRecoupmentFrequencyNote             *string        `json:"paymentDemandRecoupmentFrequencyNote" db:"payment_demand_recoupment_frequency_note"`
	PaymentStartDate                                 *time.Time     `json:"paymentStartDate" db:"payment_start_date" statusWeight:"1"`
	PaymentStartDateNote                             *string        `json:"paymentStartDateNote" db:"payment_start_date_note"`
	// contains filtered or unexported fields
}

PlanPayments defines the data associated with a plan payments model

func NewPlanPayments

func NewPlanPayments(tls baseTaskListSection) *PlanPayments

NewPlanPayments returns a new PlanPayments object

func (*PlanPayments) CalcStatus

func (b *PlanPayments) CalcStatus(oldStatus TaskStatus) error

CalcStatus updates the TaskStatus if it is in ready, but it has been modified.

func (PlanPayments) GetModelPlanID

func (b PlanPayments) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*PlanPayments) GetStatus

func (b *PlanPayments) GetStatus() TaskStatus

GetStatus returns the status of a basesTaskListSection

func (*PlanPayments) ReadyForClearanceByUserAccount

func (b *PlanPayments) ReadyForClearanceByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForClearanceByUserAccount returns the user account for user ID set for Ready for Clearance By

func (*PlanPayments) ReadyForReviewByUserAccount

func (b *PlanPayments) ReadyForReviewByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForReviewByUserAccount returns the user account for user ID set for Ready for Review By

type PlanTDL

type PlanTDL struct {
	IDNumber      string     `json:"idNumber" db:"id_number"`
	DateInitiated *time.Time `json:"dateInitiated" db:"date_initiated"`
	Title         string     `json:"title" db:"title"`
	Note          *string    `json:"note" db:"note"`
	// contains filtered or unexported fields
}

PlanTDL represents TDLs (Technical Direction Letters) related to a model plan

func NewPlanTDL

func NewPlanTDL(createdBy uuid.UUID, modelPlanID uuid.UUID) *PlanTDL

NewPlanTDL returns a New PlanTDL

func (PlanTDL) GetCreatedBy

func (b PlanTDL) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PlanTDL) GetID

func (b PlanTDL) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PlanTDL) GetModelPlanID

func (m PlanTDL) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (PlanTDL) GetModifiedBy

func (b PlanTDL) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (PlanTDL) MostRecentModification

func (b PlanTDL) MostRecentModification() (time.Time, uuid.UUID)

func (*PlanTDL) SetModifiedBy

func (b *PlanTDL) SetModifiedBy(principal authentication.Principal) error

func (*PlanTDL) ToEchimpTDL

func (tdl *PlanTDL) ToEchimpTDL(associatedModelUids *uuid.UUID) *EChimpTDL

type PlanTimeline

type PlanTimeline struct {
	CompleteICIP            *time.Time `json:"completeICIP" db:"complete_icip" statusWeight:"1"`
	ClearanceStarts         *time.Time `json:"clearanceStarts" db:"clearance_starts" statusWeight:"1"`
	ClearanceEnds           *time.Time `json:"clearanceEnds" db:"clearance_ends" statusWeight:"1"`
	Announced               *time.Time `json:"announced" db:"announced" statusWeight:"1"`
	ApplicationsStart       *time.Time `json:"applicationsStart" db:"applications_starts" statusWeight:"1"`
	ApplicationsEnd         *time.Time `json:"applicationsEnd" db:"applications_ends" statusWeight:"1"`
	PerformancePeriodStarts *time.Time `json:"performancePeriodStarts" db:"performance_period_starts" statusWeight:"1"`
	PerformancePeriodEnds   *time.Time `json:"performancePeriodEnds" db:"performance_period_ends" statusWeight:"1"`
	WrapUpEnds              *time.Time `json:"wrapUpEnds" db:"wrap_up_ends" statusWeight:"1"`
	HighLevelNote           *string    `json:"highLevelNote" db:"high_level_note"`
	// contains filtered or unexported fields
}

Timeline represents the "timeline" section of a plan

func NewPlanTimeline

func NewPlanTimeline(tls baseTaskListSection) *PlanTimeline

NewPlanTimeline returns a new timeline object

func (*PlanTimeline) CalcStatus

func (b *PlanTimeline) CalcStatus(oldStatus TaskStatus) error

CalcStatus updates the TaskStatus if it is in ready, but it has been modified.

func (PlanTimeline) GetModelPlanID

func (b PlanTimeline) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*PlanTimeline) GetStatus

func (b *PlanTimeline) GetStatus() TaskStatus

GetStatus returns the status of a basesTaskListSection

func (*PlanTimeline) ReadyForClearanceByUserAccount

func (b *PlanTimeline) ReadyForClearanceByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForClearanceByUserAccount returns the user account for user ID set for Ready for Clearance By

func (*PlanTimeline) ReadyForReviewByUserAccount

func (b *PlanTimeline) ReadyForReviewByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ReadyForReviewByUserAccount returns the user account for user ID set for Ready for Review By

type Positioner

type Positioner interface {
	GetPosition() int
}

type PossibleOperationalNeed

type PossibleOperationalNeed struct {
	ID int `json:"id" db:"id"`

	Name    string             `json:"name" db:"need_name"`
	Key     OperationalNeedKey `json:"key" db:"need_key"`
	Section TaskListSection    `json:"section" db:"section"`
	// contains filtered or unexported fields
}

PossibleOperationalNeed represents the need of a model plan

func (*PossibleOperationalNeed) CreatedByUserAccount

func (cbr *PossibleOperationalNeed) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (*PossibleOperationalNeed) ModifiedByUserAccount

func (mbr *PossibleOperationalNeed) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

type PossibleOperationalSolution

type PossibleOperationalSolution struct {
	ID int `json:"id" db:"id"`

	FilterView   *ModelViewFilter       `json:"filterView" db:"filter_view"`
	Name         string                 `json:"name" db:"sol_name"`
	Key          OperationalSolutionKey `json:"key" db:"sol_key"`
	TreatAsOther bool                   `json:"treatAsOther" db:"treat_as_other"`
	// contains filtered or unexported fields
}

PossibleOperationalSolution represents a possible solution to an Operational Need

func (*PossibleOperationalSolution) CreatedByUserAccount

func (cbr *PossibleOperationalSolution) CreatedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

CreatedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

func (PossibleOperationalSolution) IsTaggedEntity

func (PossibleOperationalSolution) IsTaggedEntity()

IsTaggedEntity is a method to satisfy the IsTaggedEntity interface for PossibleOperationalSolution.

func (*PossibleOperationalSolution) ModifiedByUserAccount

func (mbr *PossibleOperationalSolution) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

type PossibleOperationalSolutionContact

type PossibleOperationalSolutionContact struct {
	PossibleOperationalSolutionID int `db:"possible_operational_solution_id" json:"possibleOperationalSolutionID"`

	Name      string  `db:"name" json:"name"`
	Email     string  `db:"email" json:"email"`
	IsTeam    bool    `db:"is_team" json:"isTeam"`
	Role      *string `db:"role" json:"role"`
	IsPrimary bool    `db:"is_primary" json:"isPrimary"`
	// contains filtered or unexported fields
}

PossibleOperationalSolutionContact represents a contact for a possible operational solution

func (PossibleOperationalSolutionContact) GetCreatedBy

func (b PossibleOperationalSolutionContact) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (PossibleOperationalSolutionContact) GetID

func (b PossibleOperationalSolutionContact) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (PossibleOperationalSolutionContact) GetModifiedBy

func (b PossibleOperationalSolutionContact) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (PossibleOperationalSolutionContact) MostRecentModification

func (b PossibleOperationalSolutionContact) MostRecentModification() (time.Time, uuid.UUID)

func (*PossibleOperationalSolutionContact) SetModifiedBy

func (b *PossibleOperationalSolutionContact) SetModifiedBy(principal authentication.Principal) error

type PreSignedURL

type PreSignedURL struct {
	URL      string `json:"URL"`
	Filename string `json:"filename"`
}

PreSignedURL is the model to return S3 pre-signed URLs

type PrepareForClearanceResponse

type PrepareForClearanceResponse struct {
	MostRecentClearanceDts      *time.Time `db:"most_recent_clearance_dts"`
	PlanTimelineClearanceStarts *time.Time `db:"clearance_starts"`
	AllReadyForClearance        bool       `db:"all_ready_for_clearance"`
}

PrepareForClearanceResponse represents a response from the ReadyForClearanceGetByModelPlanID store method It does _NOT_ represent anything in the GraphQL response, it only exists to calculate values for the GraphQL resolver.

type RawDateHistogramAggregationBucket

type RawDateHistogramAggregationBucket struct {
	Key            string `json:"key"`
	DocCount       int    `json:"doc_count"`
	MaxModifiedDts struct {
		Value         float64 `json:"value"`
		ValueAsString string  `json:"value_as_string"`
	} `json:"max_modified_dts"`
	MinModifiedDts struct {
		Value         float64 `json:"value"`
		ValueAsString string  `json:"value_as_string"`
	} `json:"min_modified_dts"`
}

RawDateHistogramAggregationBucket represents a raw bucket from an Elasticsearch date histogram aggregation

type RecentModification

type RecentModification struct {
	// contains filtered or unexported fields
}

RecentModification is a struct to enable a view of the recently modified activity

func NewRecentModification

func NewRecentModification(modifiedBy uuid.UUID, modifiedDTs time.Time) RecentModification

NewRecentModification creates a new Recent Modification type

func (*RecentModification) ModifiedByUserAccount

func (mbr *RecentModification) ModifiedByUserAccount(ctx context.Context) (*authentication.UserAccount, error)

ModifiedByUserAccount returns the user account of the user who created the struct from the DB using the UserAccount service

type RecruitmentType

type RecruitmentType string

RecruitmentType represents the possible RecruitmentType options

const (
	RecruitmentLOI           RecruitmentType = "LOI"
	RecruitmentAPPCOLLECTION RecruitmentType = "APPLICATION_COLLECTION_TOOL"
	RecruitmentNOFO          RecruitmentType = "NOFO"
	RecruitmentOTHER         RecruitmentType = "OTHER"
	RecruitmentNA            RecruitmentType = "NA"
)

These constants represent the choices for Recruitment Type

type SearchRequest

type SearchRequest struct {
	Query map[string]interface{} `json:"query"`
}

SearchRequest represents a request to Elasticsearch

func NewSearchRequest

func NewSearchRequest(query map[string]interface{}) *SearchRequest

NewSearchRequest creates a new SearchRequest object from the given request map

type SortDirection

type SortDirection string

SortDirection represents ASC or DESC for sort directions

const (
	SortAsc  SortDirection = "ASC"
	SortDesc SortDirection = "DESC"
)

these constants represent the values that the SortDirection enum can take

type StatesAndTerritories

type StatesAndTerritories string

StatesAndTerritories represents the possible values for the "States and Territories" field

const (
	StatesAndTerritoriesAL StatesAndTerritories = "AL"
	StatesAndTerritoriesAK StatesAndTerritories = "AK"
	StatesAndTerritoriesAZ StatesAndTerritories = "AZ"
	StatesAndTerritoriesAR StatesAndTerritories = "AR"
	StatesAndTerritoriesCA StatesAndTerritories = "CA"
	StatesAndTerritoriesCO StatesAndTerritories = "CO"
	StatesAndTerritoriesCT StatesAndTerritories = "CT"
	StatesAndTerritoriesDE StatesAndTerritories = "DE"
	StatesAndTerritoriesDC StatesAndTerritories = "DC"
	StatesAndTerritoriesFL StatesAndTerritories = "FL"
	StatesAndTerritoriesGA StatesAndTerritories = "GA"
	StatesAndTerritoriesHI StatesAndTerritories = "HI"
	StatesAndTerritoriesID StatesAndTerritories = "ID"
	StatesAndTerritoriesIL StatesAndTerritories = "IL"
	StatesAndTerritoriesIN StatesAndTerritories = "IN"
	StatesAndTerritoriesIA StatesAndTerritories = "IA"
	StatesAndTerritoriesKS StatesAndTerritories = "KS"
	StatesAndTerritoriesKY StatesAndTerritories = "KY"
	StatesAndTerritoriesLA StatesAndTerritories = "LA"
	StatesAndTerritoriesME StatesAndTerritories = "ME"
	StatesAndTerritoriesMD StatesAndTerritories = "MD"
	StatesAndTerritoriesMA StatesAndTerritories = "MA"
	StatesAndTerritoriesMI StatesAndTerritories = "MI"
	StatesAndTerritoriesMN StatesAndTerritories = "MN"
	StatesAndTerritoriesMS StatesAndTerritories = "MS"
	StatesAndTerritoriesMO StatesAndTerritories = "MO"
	StatesAndTerritoriesMT StatesAndTerritories = "MT"
	StatesAndTerritoriesNE StatesAndTerritories = "NE"
	StatesAndTerritoriesNV StatesAndTerritories = "NV"
	StatesAndTerritoriesNH StatesAndTerritories = "NH"
	StatesAndTerritoriesNJ StatesAndTerritories = "NJ"
	StatesAndTerritoriesNM StatesAndTerritories = "NM"
	StatesAndTerritoriesNY StatesAndTerritories = "NY"
	StatesAndTerritoriesNC StatesAndTerritories = "NC"
	StatesAndTerritoriesND StatesAndTerritories = "ND"
	StatesAndTerritoriesOH StatesAndTerritories = "OH"
	StatesAndTerritoriesOK StatesAndTerritories = "OK"
	StatesAndTerritoriesOR StatesAndTerritories = "OR"
	StatesAndTerritoriesPA StatesAndTerritories = "PA"
	StatesAndTerritoriesRI StatesAndTerritories = "RI"
	StatesAndTerritoriesSC StatesAndTerritories = "SC"
	StatesAndTerritoriesSD StatesAndTerritories = "SD"
	StatesAndTerritoriesTN StatesAndTerritories = "TN"
	StatesAndTerritoriesTX StatesAndTerritories = "TX"
	StatesAndTerritoriesUT StatesAndTerritories = "UT"
	StatesAndTerritoriesVT StatesAndTerritories = "VT"
	StatesAndTerritoriesVA StatesAndTerritories = "VA"
	StatesAndTerritoriesWA StatesAndTerritories = "WA"
	StatesAndTerritoriesWV StatesAndTerritories = "WV"
	StatesAndTerritoriesWI StatesAndTerritories = "WI"
	StatesAndTerritoriesWY StatesAndTerritories = "WY"
	StatesAndTerritoriesAS StatesAndTerritories = "AS"
	StatesAndTerritoriesGU StatesAndTerritories = "GU"
	StatesAndTerritoriesMP StatesAndTerritories = "MP"
	StatesAndTerritoriesPR StatesAndTerritories = "PR"
	StatesAndTerritoriesUM StatesAndTerritories = "UM"
	StatesAndTerritoriesVI StatesAndTerritories = "VI"
)

These constants represent the different values of StatesAndTerritories

type TableName

type TableName string

TableName represents the name of tables in the database

const (
	TNActivity                           TableName = "activity"
	TNAnalyzedAudit                      TableName = "analyzed_audit"
	TNDiscussionReply                    TableName = "discussion_reply"
	TNExistingModel                      TableName = "existing_model"
	TNExistingModelLink                  TableName = "existing_model_link"
	TNModelPlan                          TableName = "model_plan"
	TNNdaAgreement                       TableName = "nda_agreement"
	TNOperationalNeed                    TableName = "operational_need"
	TNOperationalSolution                TableName = "operational_solution"
	TNOperationalSolutionSubtask         TableName = "operational_solution_subtask"
	TNPlanBasics                         TableName = "plan_basics"
	TNPlanBeneficiaries                  TableName = "plan_beneficiaries"
	TNPlanCollaborator                   TableName = "plan_collaborator"
	TNPlanCr                             TableName = "plan_cr"
	TNPlanDiscussion                     TableName = "plan_discussion"
	TNPlanDocument                       TableName = "plan_document"
	TNPlanDocumentSolutionLink           TableName = "plan_document_solution_link"
	TNPlanFavorite                       TableName = "plan_favorite"
	TNPlanGeneralCharacteristics         TableName = "plan_general_characteristics"
	TNPlanOpsEvalAndLearning             TableName = "plan_ops_eval_and_learning"
	TNPlanParticipantsAndProviders       TableName = "plan_participants_and_providers"
	TNPlanPayments                       TableName = "plan_payments"
	TNPlanTdl                            TableName = "plan_tdl"
	TNPossibleNeedSolutionLink           TableName = "possible_need_solution_link"
	TNPossibleOperationalNeed            TableName = "possible_operational_need"
	TNPossibleOperationalSolution        TableName = "possible_operational_solution"
	TNPossibleOperationalSolutionContact TableName = "possible_operational_solution_contact"
	TNTag                                TableName = "tag"
	TNTranslatedAudit                    TableName = "translated_audit"
	TNTranslatedAuditField               TableName = "translated_audit_field"
	TNTranslatedAuditQueue               TableName = "translated_audit_queue"
	TNUserAccount                        TableName = "user_account"
	TNUserNotification                   TableName = "user_notification"
	TNUserNotificationPreferences        TableName = "user_notification_preferences"
	TNUserViewCustomization              TableName = "user_view_customization"
	TNPlanDataExchangeApproach           TableName = "plan_data_exchange_approach"
	TNMTOCategory                        TableName = "mto_category"
	TNMTOMilestone                       TableName = "mto_milestone"
	TNMTOSolution                        TableName = "mto_solution"
	TNMTOMilestoneSolutionLink           TableName = "mto_milestone_solution_link"
	TNMTOInfo                            TableName = "mto_info"
	TNMTOCommonMilestone                 TableName = "mto_common_milestone"
	TNMTOCommonSolutionContact           TableName = "mto_common_solution_contact"
	TNMTOCommonSolution                  TableName = "mto_common_solution"
	TNMTOCommonSolutionContractor        TableName = "mto_common_solution_contractor"
	TNMTOCommonSolutionSystemOwner       TableName = "mto_common_solution_system_owner"
	TNPlanTimeline                       TableName = "plan_timeline"
	TNMTOSuggestedMilestone              TableName = "mto_suggested_milestone"
	TNMTOTemplate                        TableName = "mto_template"
	TNMTOTemplateCategory                TableName = "mto_template_category"
	TNMTOTemplateMilestone               TableName = "mto_template_milestone"
	TNMTOTemplateMilestoneSolutionLink   TableName = "mto_template_milestone_solution_link"
	TNMTOTemplateSolution                TableName = "mto_template_solution"
	TNModelPlanMTOTemplateLink           TableName = "model_plan_mto_template_link"
	TNMTOMilestoneNote                   TableName = "mto_milestone_note"
	TNKeyContact                         TableName = "key_contact"
	TNKeyContactCategory                 TableName = "key_contact_category"
)

These are the options for TableNameEnum

type TableNames

type TableNames []TableName

func (TableNames) String

func (t TableNames) String() string

String implements the stringer interface for TableNames

It will sort the TableNames and return a comma separated string

type Tag

type Tag struct {
	EntityRaw          string
	TagType            TagType    `json:"tagType" db:"tag_type"`
	TaggedField        string     `json:"taggedField" db:"tagged_field"`
	TaggedContentTable string     `json:"taggedContentTable" db:"tagged_content_table"`
	TaggedContentID    uuid.UUID  `json:"taggedContentID" db:"tagged_content_id"`
	EntityUUID         *uuid.UUID `json:"entityUUID" db:"entity_uuid"`
	EntityIntID        *int       `json:"entityIntID" db:"entity_intid"`
	// contains filtered or unexported fields
}

Tag represents a reference to another data structure in the database

func TagArrayFromHTMLMentions

func TagArrayFromHTMLMentions(taggedField string, taggedTable string, taggedContentID uuid.UUID, mentions []*HTMLMention) []*Tag

TagArrayFromHTMLMentions converts an array of HTMLMention to an array of Tags

func (Tag) GetCreatedBy

func (b Tag) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (Tag) GetID

func (b Tag) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (Tag) GetModifiedBy

func (b Tag) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (Tag) MostRecentModification

func (b Tag) MostRecentModification() (time.Time, uuid.UUID)

func (*Tag) SetModifiedBy

func (b *Tag) SetModifiedBy(principal authentication.Principal) error

type TagType

type TagType string

TagType represents the posible types of tags you can have in an HTML Mention

const (
	TagTypeUserAccount       TagType = "USER_ACCOUNT"
	TagTypePossibleSolution  TagType = "POSSIBLE_SOLUTION"
	TagTypeMTOCommonSolution TagType = "MTO_COMMON_SOLUTION"
)

These constants represent the different values of TagType

func (TagType) Validate

func (tt TagType) Validate() error

Validate checks that a valid value of TagType is returned

type TaggedContent

type TaggedContent struct {
	RawContent html
	Mentions   []*HTMLMention // These are the parsed content of the HTML, and a representaton of how the data represented in an individual mention HTML tag
	Tags       []*Tag         // Tag is a representation of a tag record in the database.
}

TaggedContent represents rich text HTML with possible tagged HTML mention

func NewTaggedContentFromString

func NewTaggedContentFromString(htmlString string) (TaggedContent, error)

NewTaggedContentFromString converts a rawString into TaggedHTMl. It will store the input string as the raw content, and then sanitize and parse the input.

func (*TaggedContent) Scan

func (th *TaggedContent) Scan(src interface{}) error

Scan is used by sql.scan to read the values from the DB

func (TaggedContent) Value

func (th TaggedContent) Value() (driver.Value, error)

Value implements the driver.Valuer interface. This is called when TaggedContent is being written to the database

type TaggedEntity

type TaggedEntity interface {
	IsTaggedEntity()
}

TaggedEntity is an interface which represents if an object can be tagged or not

type TaggedHTML

type TaggedHTML TaggedContent

TaggedHTML Is the input type for HTML that could contain tags

func (TaggedHTML) MarshalGQLContext

func (th TaggedHTML) MarshalGQLContext(ctx context.Context, w io.Writer) error

MarshalGQLContext marshals the TaggedHTML type to JSON to return to graphQL

func (*TaggedHTML) Scan

func (th *TaggedHTML) Scan(src interface{}) error

Scan is used by sql.scan to read the values from the DB

func (TaggedHTML) ToTaggedContent

func (th TaggedHTML) ToTaggedContent() TaggedContent

ToTaggedContent casts the input to TaggedContent

func (TaggedHTML) UniqueMentions

func (th TaggedHTML) UniqueMentions() []*HTMLMention

UniqueMentions returns a slices that are unique

func (*TaggedHTML) UnmarshalGQLContext

func (th *TaggedHTML) UnmarshalGQLContext(_ context.Context, v interface{}) error

UnmarshalGQLContext unmarshals the data from graphql to the TaggedHTML type

func (TaggedHTML) Value

func (th TaggedHTML) Value() (driver.Value, error)

Value implements the driver.Valuer interface. This is called when a TaggedHTML is being written to the database

type TaggedInDiscussionReplyActivityMeta

type TaggedInDiscussionReplyActivityMeta struct {
	ActivityMetaBaseStruct

	ReplyID uuid.UUID `json:"replyID"`
	Content string    `json:"content"`
	// contains filtered or unexported fields
}

TaggedInDiscussionReplyActivityMeta represents the notification data that is relevant to being tagged in a new Plan Discussion

func (TaggedInDiscussionReplyActivityMeta) GetDiscussionID

func (d TaggedInDiscussionReplyActivityMeta) GetDiscussionID() uuid.UUID

GetDiscussionID returns DiscussionID

func (TaggedInDiscussionReplyActivityMeta) GetModelPlanID

func (m TaggedInDiscussionReplyActivityMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*TaggedInDiscussionReplyActivityMeta) Scan

func (d *TaggedInDiscussionReplyActivityMeta) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (TaggedInDiscussionReplyActivityMeta) Value

Value allows us to satisfy the valuer interface so we can write to the database We need to do a specific implementation instead of relying on the implementation of the embedded struct, as that will only serialize the common data

type TaggedInPlanDiscussionActivityMeta

type TaggedInPlanDiscussionActivityMeta struct {
	ActivityMetaBaseStruct

	Content string `json:"content"`
	// contains filtered or unexported fields
}

TaggedInPlanDiscussionActivityMeta represents the notification data that is relevant to being tagged in a new Plan Discussion

func (TaggedInPlanDiscussionActivityMeta) GetDiscussionID

func (d TaggedInPlanDiscussionActivityMeta) GetDiscussionID() uuid.UUID

GetDiscussionID returns DiscussionID

func (TaggedInPlanDiscussionActivityMeta) GetModelPlanID

func (m TaggedInPlanDiscussionActivityMeta) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (*TaggedInPlanDiscussionActivityMeta) Scan

func (d *TaggedInPlanDiscussionActivityMeta) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (TaggedInPlanDiscussionActivityMeta) Value

Value allows us to satisfy the valuer interface so we can write to the database We need to do a specific implementation instead of relying on the implementation of the embedded struct, as that will only serialize the common data

type TaskListSection

type TaskListSection string

TaskListSection represents the parts of the task list

const (
	TLSBasics                          TaskListSection = "BASICS"
	TLSGeneralCharacteristics          TaskListSection = "GENERAL_CHARACTERISTICS"
	TLSParticipantsAndProviders        TaskListSection = "PARTICIPANTS_AND_PROVIDERS"
	TLSBeneficiaries                   TaskListSection = "BENEFICIARIES"
	TLSOperationsEvaluationAndLearning TaskListSection = "OPERATIONS_EVALUATION_AND_LEARNING"
	TLSPayment                         TaskListSection = "PAYMENT"
	TLSItTools                         TaskListSection = "IT_TOOLS"
	TLSPrepareForClearance             TaskListSection = "PREPARE_FOR_CLEARANCE"
)

These are the options for TaskListSection

type TaskStatus

type TaskStatus string

TaskStatus is an enum that represents the status of a task

const (
	TaskReady             TaskStatus = "READY"
	TaskInProgress        TaskStatus = "IN_PROGRESS"
	TaskReadyForReview    TaskStatus = "READY_FOR_REVIEW"
	TaskReadyForClearance TaskStatus = "READY_FOR_CLEARANCE"
)

These constants represent the different values of TaskStatus

func GenericallyCalculateStatus

func GenericallyCalculateStatus(obj interface{}) (TaskStatus, error)

GenericallyCalculateStatus (Deprecated:) calculates the overall status of a struct based on the `statusWeight` tags. The function has the following restrictions, and will throw an error if any of the conditions are not met: - The only parameter to this function must be a struct. If it is not, an error will be returned. - If the struct has `statusWeight` tags, they MUST be placed on pointer types only - If the `statusWeight` tag is not a valid integer

type TeamRole

type TeamRole string

TeamRole represents the role of a team member

const (
	TeamRoleModelLead         TeamRole = "MODEL_LEAD"
	TeamRoleModelTeam         TeamRole = "MODEL_TEAM"
	TeamRoleLeadership        TeamRole = "LEADERSHIP"
	TeamRoleLearning          TeamRole = "LEARNING"
	TeamRoleEvaluation        TeamRole = "EVALUATION"
	TeamRoleITLead            TeamRole = "IT_LEAD"
	TeamRoleQuality           TeamRole = "QUALITY"
	TeamRoleOACT              TeamRole = "OACT"
	TeamRolePayment           TeamRole = "PAYMENT"
	TeamRoleCMFFSCounterpart  TeamRole = "CM_FFS_COUNTERPART"
	TeamRoleCOR               TeamRole = "COR"
	TeamRoleSolutionArchitect TeamRole = "SOLUTION_ARCHITECT"
)

These constants represent the different values of TeamRole

type TranslatedAudit

type TranslatedAudit struct {
	TableID int `json:"tableID" db:"table_id"`
	// TableName is the data fetched from the audit.table_config table. It is not stored when the data is stored to the database.
	TableName  TableName         `json:"tableName" db:"table_name"`
	PrimaryKey uuid.UUID         `json:"primaryKey" db:"primary_key"`
	Date       time.Time         `json:"date" db:"date"`
	Action     DatabaseOperation `json:"action" db:"action"`
	// Restricted denotes if this audit should only be visible to users with specific permissions. Currently, that means they are a collaborator or an assessment user
	Restricted bool `json:"restricted" db:"restricted"`

	ActorID uuid.UUID `json:"actorID" db:"actor_id"`
	// ActorName is fetched from the user_account table. It is not stored when the data is stored to the database.
	ActorName string `json:"actorName" db:"actor_name"`
	ChangeID  int    `json:"changeID" db:"change_id"`

	MetaDataRaw  interface{}                  `db:"meta_data"`
	MetaDataType *TranslatedAuditMetaDataType `db:"meta_data_type"`
	MetaData     TranslatedAuditMetaData      `json:"metaData"`
	// contains filtered or unexported fields
}

TranslatedAudit is a structure that shows grouped, humanReadable Audit data

func NewTranslatedAuditChange

func NewTranslatedAuditChange(
	createdBy uuid.UUID,
	actorID uuid.UUID,
	modelPlanID uuid.UUID,
	date time.Time,
	tableID int,
	changeID int,
	primaryKey uuid.UUID,
	action DatabaseOperation,
) TranslatedAudit

NewTranslatedAuditChange creates a new TranslatedAudit TODO: Should the naming on this change to something like `NewTranslatedAudit`?

func (TranslatedAudit) GetCreatedBy

func (b TranslatedAudit) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (TranslatedAudit) GetID

func (b TranslatedAudit) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (TranslatedAudit) GetModelPlanID

func (m TranslatedAudit) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (TranslatedAudit) GetModifiedBy

func (b TranslatedAudit) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (TranslatedAudit) MostRecentModification

func (b TranslatedAudit) MostRecentModification() (time.Time, uuid.UUID)

func (*TranslatedAudit) ParseMetaData

func (tac *TranslatedAudit) ParseMetaData() error

ParseMetaData parses raw MetaData into Typed meta data per the provided struct

func (*TranslatedAudit) SetModifiedBy

func (b *TranslatedAudit) SetModifiedBy(principal authentication.Principal) error

type TranslatedAuditField

type TranslatedAuditField struct {
	TranslatedAuditID uuid.UUID `json:"translatedAuditID" db:"translated_audit_id"`

	ChangeType AuditFieldChangeType `json:"changeType" db:"change_type"`

	FieldName              string                   `json:"fieldName" db:"field_name"`
	FieldNameTranslated    string                   `json:"fieldNameTranslated" db:"field_name_translated"`
	FieldOrder             float64                  `json:"fieldOrder" db:"field_order"`
	ReferenceLabel         *string                  `json:"referenceLabel" db:"reference_label"`
	QuestionType           *TranslationQuestionType `json:"questionType" db:"question_type"`
	NotApplicableQuestions *pq.StringArray          `json:"notApplicableQuestions" db:"not_applicable_questions"`

	DataType TranslationDataType `json:"dataType" db:"data_type"`
	FormType TranslationFormType `json:"formType" db:"form_type"`

	Old           interface{} `json:"old" db:"old"`
	OldTranslated interface{} `json:"oldTranslated" db:"old_translated"`
	New           interface{} `json:"new" db:"new"`
	NewTranslated interface{} `json:"newTranslated" db:"new_translated"`
	// contains filtered or unexported fields
}

TranslatedAuditField is a structure that shows fields that have been changed by a database action in a human readable format

func NewTranslatedAuditField

func NewTranslatedAuditField(
	createdBy uuid.UUID,
	fieldName string,
	fieldNameTranslated string,
	fieldOrder float64,
	old interface{},
	oldTranslated interface{},
	new interface{},
	newTranslated interface{},
	dataType TranslationDataType,
	formType TranslationFormType,
) TranslatedAuditField

NewTranslatedAuditField creates a new TranslatedAuditField

func (TranslatedAuditField) GetCreatedBy

func (b TranslatedAuditField) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (TranslatedAuditField) GetID

func (b TranslatedAuditField) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (TranslatedAuditField) GetModifiedBy

func (b TranslatedAuditField) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (TranslatedAuditField) MostRecentModification

func (b TranslatedAuditField) MostRecentModification() (time.Time, uuid.UUID)

func (*TranslatedAuditField) SetModifiedBy

func (b *TranslatedAuditField) SetModifiedBy(principal authentication.Principal) error

type TranslatedAuditFieldMetaData

type TranslatedAuditFieldMetaData interface {
	Value() (driver.Value, error)
	Scan(src interface{}) error
	// contains filtered or unexported methods
}

TranslatedAuditFieldMetaData is an interface that all Humanized meta data structs must implement

type TranslatedAuditMetaBaseStruct

type TranslatedAuditMetaBaseStruct struct {
	TableName TableName `json:"tableName"`
	Version   int       `json:"version"`
}

TranslatedAuditMetaBaseStruct represents the shared data in common between all HumanizedAuditChanges

func NewTranslatedAuditMetaBaseStruct

func NewTranslatedAuditMetaBaseStruct(tableName TableName, version int) TranslatedAuditMetaBaseStruct

NewTranslatedAuditMetaBaseStruct creates a New TranslatedAuditMetaBaseStruct

func (*TranslatedAuditMetaBaseStruct) Scan

func (hmb *TranslatedAuditMetaBaseStruct) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (TranslatedAuditMetaBaseStruct) Value

Value allows us to satisfy the valuer interface so we can write to the database

type TranslatedAuditMetaData

type TranslatedAuditMetaData interface {
	Value() (driver.Value, error)
	Scan(src interface{}) error
	// contains filtered or unexported methods
}

TranslatedAuditMetaData is an interface that all Humanized meta data structs must implement

type TranslatedAuditMetaDataType

type TranslatedAuditMetaDataType string

TranslatedAuditMetaDataType represents the possible types of TranslatedAuditMetaData. This data is used to deserialize the meta data in the JSONb field in the database

const (
	TAMetaGeneric                    TranslatedAuditMetaDataType = "GENERIC"
	TAMetaBase                       TranslatedAuditMetaDataType = "BASE"
	TAMetaDiscussionReply            TranslatedAuditMetaDataType = "DISCUSSION_REPLY"
	TAMetaOperationalNeed            TranslatedAuditMetaDataType = "OPERATIONAL_NEED"
	TAMetaOperationalSolution        TranslatedAuditMetaDataType = "OPERATIONAL_SOLUTION"
	TAMetaOperationalSolutionSubtask TranslatedAuditMetaDataType = "OPERATIONAL_SOLUTION_SUBTASK"
	TAMetaDocumentSolutionLink       TranslatedAuditMetaDataType = "DOCUMENT_SOLUTION_LINK"
	TAMetaMTOCategory                TranslatedAuditMetaDataType = "MTO_CATEGORY"
)

these are all the possible values of a TranslatedAuditMetaDataType

type TranslatedAuditMetaDiscussionReply

type TranslatedAuditMetaDiscussionReply struct {
	TranslatedAuditMetaBaseStruct

	DiscussionContent string `json:"discussionContent"`
	NumberOfReplies   int    `json:"numberOfReplies"`
	// contains filtered or unexported fields
}

TranslatedAuditMetaDiscussionReply represents the content needed to make a discussion reply meta data readable.

func NewTranslatedAuditMetaDiscussionReply

func NewTranslatedAuditMetaDiscussionReply(version int, discussionID uuid.UUID, discussionContent string, numberOfReplies int) TranslatedAuditMetaDiscussionReply

NewTranslatedAuditMetaDiscussionReply creates a New TranslatedAuditMetaDiscussionReply

func (TranslatedAuditMetaDiscussionReply) GetDiscussionID

func (d TranslatedAuditMetaDiscussionReply) GetDiscussionID() uuid.UUID

GetDiscussionID returns DiscussionID

func (*TranslatedAuditMetaDiscussionReply) Scan

func (hmb *TranslatedAuditMetaDiscussionReply) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (TranslatedAuditMetaDiscussionReply) Value

Value allows us to satisfy the valuer interface so we can write to the database

type TranslatedAuditMetaDocumentSolutionLink struct {
	TranslatedAuditMetaBaseStruct
	NeedName            string  `json:"needName"`
	NeedIsOther         bool    `json:"needIsOther"`
	SolutionName        string  `json:"solutionName"`
	SolutionOtherHeader *string `json:"solutionOtherHeader"`
	SolutionIsOther     bool    `json:"solutionIsOther"`

	DocumentID         uuid.UUID `json:"documentID"`
	DocumentName       *string   `json:"documentName"`
	DocumentType       *string   `json:"documentType"`
	DocumentOtherType  *string   `json:"documentOtherType"`
	DocumentNote       *string   `json:"documentNote"`
	DocumentURL        *string   `json:"documentURL"`
	DocumentVisibility *string   `json:"documentVisibility"`
	DocumentRestricted *bool     `json:"documentRestricted"`
}

TranslatedAuditMetaDocumentSolutionLink represents the data about an operational need to render an operational need human readable.

func NewTranslatedAuditMetaDocumentSolutionLink(
	version int,
	solutionName string,
	solutionOtherHeader *string,
	solIsOther bool,

	needName string,
	needIsOther bool,

	documentID uuid.UUID,
) TranslatedAuditMetaDocumentSolutionLink

NewTranslatedAuditMetaDocumentSolutionLink creates a New TranslatedAuditMetaDocumentSolutionLink

func (*TranslatedAuditMetaDocumentSolutionLink) Scan

func (tam *TranslatedAuditMetaDocumentSolutionLink) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (*TranslatedAuditMetaDocumentSolutionLink) SetOptionalDocumentFields

func (tam *TranslatedAuditMetaDocumentSolutionLink) SetOptionalDocumentFields(documentName string, documentType string, documentOtherType zero.String, documentNote zero.String, documentURL zero.String, documentVisibility string, documentRestricted bool)

func (TranslatedAuditMetaDocumentSolutionLink) Value

Value allows us to satisfy the valuer interface so we can write to the database

type TranslatedAuditMetaGeneric

type TranslatedAuditMetaGeneric struct {
	TranslatedAuditMetaBaseStruct
	Relation        string  `json:"relation"`
	RelationContent *string `json:"relationContent"`
}

TranslatedAuditMetaGeneric represents the shared data in common between all HumanizedAuditChanges

func NewTranslatedAuditMetaGeneric

func NewTranslatedAuditMetaGeneric(tableName TableName, version int, relation string, relationContent *string) TranslatedAuditMetaGeneric

NewTranslatedAuditMetaGeneric creates a New TranslatedAuditMetaGeneric

func (*TranslatedAuditMetaGeneric) Scan

func (hmb *TranslatedAuditMetaGeneric) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (TranslatedAuditMetaGeneric) Value

Value allows us to satisfy the valuer interface so we can write to the database

type TranslatedAuditMetaMTOCategory

type TranslatedAuditMetaMTOCategory struct {
	TranslatedAuditMetaBaseStruct
	CategoryName       *string    `json:"categoryName"`
	ParentCategoryID   *uuid.UUID `json:"parentCategoryID"`
	ParentCategoryName *string    `json:"parentCategoryName"`
}

TranslatedAuditMetaMTOCategory represents the data about an operational need to render an operational need human readable.

func NewTranslatedAuditMetaMTOCategory

func NewTranslatedAuditMetaMTOCategory(version int, categoryName *string, parentCategoryName *string, parentCategoryID *uuid.UUID) TranslatedAuditMetaMTOCategory

NewTranslatedAuditMetaMTOCategory creates a New TranslatedAuditMetaMTOCategory

func (TranslatedAuditMetaMTOCategory) IsSubCategory

func (hmb TranslatedAuditMetaMTOCategory) IsSubCategory() bool

IsSubCategory preovides information if this category is s subcategory base on the presence of a parent category ID

func (*TranslatedAuditMetaMTOCategory) Scan

func (hmb *TranslatedAuditMetaMTOCategory) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (TranslatedAuditMetaMTOCategory) Value

Value allows us to satisfy the valuer interface so we can write to the database

type TranslatedAuditMetaOperationalNeed

type TranslatedAuditMetaOperationalNeed struct {
	TranslatedAuditMetaBaseStruct
	NeedName string `json:"needName"`
	IsOther  bool   `json:"isOther"`
}

TranslatedAuditMetaOperationalNeed represents the data about an operational need to render an operational need human readable.

func NewTranslatedAuditMetaOperationalNeed

func NewTranslatedAuditMetaOperationalNeed(version int, needName string, isOther bool) TranslatedAuditMetaOperationalNeed

NewTranslatedAuditMetaOperationalNeed creates a New TranslatedAuditMetaOperationalNeed

func (*TranslatedAuditMetaOperationalNeed) Scan

func (hmb *TranslatedAuditMetaOperationalNeed) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (TranslatedAuditMetaOperationalNeed) Value

Value allows us to satisfy the valuer interface so we can write to the database

type TranslatedAuditMetaOperationalSolution

type TranslatedAuditMetaOperationalSolution struct {
	TranslatedAuditMetaBaseStruct
	NeedName            string     `json:"needName"`
	NeedIsOther         bool       `json:"needIsOther"`
	SolutionName        string     `json:"solutionName"`
	SolutionOtherHeader *string    `json:"solutionOtherHeader"`
	NumberOfSubtasks    int        `json:"numberOfSubtasks"`
	SolutionIsOther     bool       `json:"solutionIsOther"`
	SolutionStatus      string     `json:"solutionStatus"`
	SolutionMustStart   *time.Time `json:"solutionMustStart"`
	SolutionMustFinish  *time.Time `json:"solutionMustFinish"`
}

TranslatedAuditMetaOperationalSolution represents the data about an operational need to render an operational need human readable.

func NewTranslatedAuditMetaOperationalSolution

func NewTranslatedAuditMetaOperationalSolution(version int, solutionName string, solutionOtherHeader *string, solIsOther bool, numSubtasks int, needName string, needIsOther bool, solStatusTranslated string,
	solMustStart *time.Time,
	solMustFinish *time.Time,
) TranslatedAuditMetaOperationalSolution

NewTranslatedAuditMetaOperationalSolution creates a New TranslatedAuditMetaOperationalSolution

func (*TranslatedAuditMetaOperationalSolution) Scan

func (hmb *TranslatedAuditMetaOperationalSolution) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (TranslatedAuditMetaOperationalSolution) Value

Value allows us to satisfy the valuer interface so we can write to the database

type TranslatedAuditMetaOperationalSolutionSubtask

type TranslatedAuditMetaOperationalSolutionSubtask struct {
	TranslatedAuditMetaBaseStruct
	NeedName            string  `json:"needName"`
	NeedIsOther         bool    `json:"needIsOther"`
	SolutionName        string  `json:"solutionName"`
	SolutionOtherHeader *string `json:"solutionOtherHeader"`
	NumberOfSubtasks    int     `json:"numberOfSubtasks"`
	SolutionIsOther     bool    `json:"solutionIsOther"`
	SubtaskName         *string `json:"subtaskName"`
}

TranslatedAuditMetaOperationalSolutionSubtask represents the data about an operational need to render an operational need human readable.

func NewTranslatedAuditMetaOperationalSolutionSubtask

func NewTranslatedAuditMetaOperationalSolutionSubtask(version int, solutionName string, solutionOtherHeader *string, solIsOther bool, numSubtasks int, needName string, needIsOther bool, subtaskName *string) TranslatedAuditMetaOperationalSolutionSubtask

NewTranslatedAuditMetaOperationalSolutionSubtask creates a New TranslatedAuditMetaOperationalSolutionSubtask

func (*TranslatedAuditMetaOperationalSolutionSubtask) Scan

func (hmb *TranslatedAuditMetaOperationalSolutionSubtask) Scan(src interface{}) error

Scan implements the scanner interface so we can translate the JSONb from the db to an object in GO

func (TranslatedAuditMetaOperationalSolutionSubtask) Value

Value allows us to satisfy the valuer interface so we can write to the database

type TranslatedAuditQueue

type TranslatedAuditQueue struct {
	ChangeID int                            `json:"changeID" db:"change_id"`
	Status   TranslatedAuditQueueStatusType `json:"status" db:"status"`
	Attempts int                            `json:"attempts" db:"attempts"`
	Note     *string                        `json:"note" db:"note"`
	// contains filtered or unexported fields
}

TranslatedAuditQueue is a structure that shows if an audit has, or will be processed

func (TranslatedAuditQueue) GetCreatedBy

func (b TranslatedAuditQueue) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (TranslatedAuditQueue) GetID

func (b TranslatedAuditQueue) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (TranslatedAuditQueue) GetModifiedBy

func (b TranslatedAuditQueue) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (TranslatedAuditQueue) MostRecentModification

func (b TranslatedAuditQueue) MostRecentModification() (time.Time, uuid.UUID)

func (*TranslatedAuditQueue) SetModifiedBy

func (b *TranslatedAuditQueue) SetModifiedBy(principal authentication.Principal) error

type TranslatedAuditQueueStatusType

type TranslatedAuditQueueStatusType string
const (
	TPSNew          TranslatedAuditQueueStatusType = "NEW"
	TPSQueued       TranslatedAuditQueueStatusType = "QUEUED"
	TPSNotProcessed TranslatedAuditQueueStatusType = "NOT_PROCESSED"
	TPSProcessed    TranslatedAuditQueueStatusType = "PROCESSED"
	TPSProcessing   TranslatedAuditQueueStatusType = "PROCESSING"
	TPSRetry        TranslatedAuditQueueStatusType = "RETRY"
	TPSFailed       TranslatedAuditQueueStatusType = "FAILED"
)

All the possible status of the

type TranslatedAuditWithFilteredView

type TranslatedAuditWithFilteredView struct {
	TranslatedAudit
	TableNames     string `json:"table_names" db:"table_names"`
	IsAdmin        bool   `json:"is_admin" db:"is_admin"`
	ExcludedFields string `json:"excluded_fields" db:"excluded_fields"`
}

func (TranslatedAuditWithFilteredView) GetCreatedBy

func (b TranslatedAuditWithFilteredView) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (TranslatedAuditWithFilteredView) GetID

func (b TranslatedAuditWithFilteredView) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (TranslatedAuditWithFilteredView) GetModelPlanID

func (m TranslatedAuditWithFilteredView) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (TranslatedAuditWithFilteredView) GetModifiedBy

func (b TranslatedAuditWithFilteredView) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (TranslatedAuditWithFilteredView) MostRecentModification

func (b TranslatedAuditWithFilteredView) MostRecentModification() (time.Time, uuid.UUID)

func (*TranslatedAuditWithFilteredView) SetModifiedBy

func (b *TranslatedAuditWithFilteredView) SetModifiedBy(principal authentication.Principal) error

func (*TranslatedAuditWithFilteredView) ToTranslatedAudit

func (taf *TranslatedAuditWithFilteredView) ToTranslatedAudit() *TranslatedAudit

ToTranslatedAudit returns the base translated object object for this parent type

type TranslatedAuditWithTranslatedFields

type TranslatedAuditWithTranslatedFields struct {
	TranslatedAudit
	TranslatedFields []*TranslatedAuditField
}

TranslatedAuditWithTranslatedFields is a struct that is used to group a translated audit change with the representative fields. It is meant to be used as a convenience grouping

func (TranslatedAuditWithTranslatedFields) GetCreatedBy

func (b TranslatedAuditWithTranslatedFields) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (TranslatedAuditWithTranslatedFields) GetID

func (b TranslatedAuditWithTranslatedFields) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (TranslatedAuditWithTranslatedFields) GetModelPlanID

func (m TranslatedAuditWithTranslatedFields) GetModelPlanID() uuid.UUID

GetModelPlanID returns the modelPlanID of the task list section

func (TranslatedAuditWithTranslatedFields) GetModifiedBy

func (b TranslatedAuditWithTranslatedFields) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (TranslatedAuditWithTranslatedFields) MostRecentModification

func (b TranslatedAuditWithTranslatedFields) MostRecentModification() (time.Time, uuid.UUID)

func (*TranslatedAuditWithTranslatedFields) SetModifiedBy

func (b *TranslatedAuditWithTranslatedFields) SetModifiedBy(principal authentication.Principal) error

type TranslationDataType

type TranslationDataType string

TranslationDataType represents the data type of the translation field

const (
	TDTString  TranslationDataType = "STRING"
	TDTNumber  TranslationDataType = "NUMBER"
	TDTBoolean TranslationDataType = "BOOLEAN"
	TDTDate    TranslationDataType = "DATE"
	TDTEnum    TranslationDataType = "ENUM"
	TDTObject  TranslationDataType = "OBJECT"
	TDTUuid    TranslationDataType = "UUID"
)

These constants represent the different values of TranslationDataType

type TranslationField

type TranslationField struct {
	TranslationFieldBase
	// contains filtered or unexported fields
}

TranslationField represents a the translation of data to human readable format

func (TranslationField) GetChildren

func (tcr TranslationField) GetChildren() (map[string][]TranslationField, bool)

func (TranslationField) GetOptions

func (tor TranslationField) GetOptions() (map[string]interface{}, bool)

GetOptions returns options for a translation

func (TranslationField) GetParent

func (tpr TranslationField) GetParent() (ITranslationParent, bool)

func (TranslationField) HasChildren

func (tcr TranslationField) HasChildren() bool

func (TranslationField) HasOptions

func (tor TranslationField) HasOptions() bool

HasOptions specifies if a translation field has options or not

func (TranslationField) HasParent

func (tpr TranslationField) HasParent() bool

type TranslationFieldBase

type TranslationFieldBase struct {
	GqlField         string              `json:"gqlField"`
	GoField          string              `json:"goField"`
	DBField          string              `json:"dbField"`
	Label            string              `json:"label"`
	ReadOnlyLabel    *string             `json:"readonlyLabel"`
	SubLabel         *string             `json:"sublabel"`
	MultiSelectLabel *string             `json:"multiSelectLabel"`
	IsArray          bool                `json:"isArray"`
	DataType         TranslationDataType `json:"dataType"`
	FormType         TranslationFormType `json:"formType"`
	IsNote           bool                `json:"isNote"`
	Order            float64             `json:"Order"`
	IsOtherType      bool                `json:"isOtherType"`
	// DB field name for the parent field, used to be able to grab the parent translation
	OtherParentField *string `json:"otherParentField"`
	// Label for fields that reference more than one parent - Ex: Notes - 'Note for Model Basics'
	ParentReferencesLabel *string `json:"parentReferencesLabel"`
	// Labels specifically for export/change history.  Takes priority over all other labels
	ExportLabel    *string    `json:"exportLabel"`
	TableReference *TableName `json:"tableReference"`
}

func (TranslationFieldBase) GetDataType

func (tfb TranslationFieldBase) GetDataType() TranslationDataType

GetDataType returns the data type of a translation

func (TranslationFieldBase) GetFieldOrder

func (tfb TranslationFieldBase) GetFieldOrder() float64

GetFieldOrder returns the order field of a translation

func (TranslationFieldBase) GetFormType

func (tfb TranslationFieldBase) GetFormType() TranslationFormType

GetFormType returns the form type of a translation

func (TranslationFieldBase) GetLabel

func (tfb TranslationFieldBase) GetLabel() string

GetLabel has logic to prioritize the translated label to be returned for a specific field. It prioritizes the Export only Label, then the parent label, then label

func (TranslationFieldBase) GetQuestionType

func (tfb TranslationFieldBase) GetQuestionType() *TranslationQuestionType

GetQuestionType returns the question type of a translation Currently, it will return not if a note, or other if an other (priority given to note) If neither of the above, it will return nil

func (TranslationFieldBase) GetReferencesLabel

func (tfb TranslationFieldBase) GetReferencesLabel(translationDictionary map[string]ITranslationField) *string

GetReferencesLabel returns either the discrete ParentReferencesLabel if present, OR the label of the parent field. If neither are found, return nil

func (TranslationFieldBase) GetTableReference

func (tfb TranslationFieldBase) GetTableReference() (TableName, bool)

type TranslationFieldWithOptions

type TranslationFieldWithOptions struct {
	TranslationFieldBase
	// contains filtered or unexported fields
}

TranslationFieldWithOptions Represents a TranslationField that has options

func (TranslationFieldWithOptions) GetChildren

func (tcr TranslationFieldWithOptions) GetChildren() (map[string][]TranslationField, bool)

func (TranslationFieldWithOptions) GetOptions

func (tor TranslationFieldWithOptions) GetOptions() (map[string]interface{}, bool)

GetOptions returns options for a translation

func (TranslationFieldWithOptions) GetParent

func (tpr TranslationFieldWithOptions) GetParent() (ITranslationParent, bool)

func (TranslationFieldWithOptions) HasChildren

func (tcr TranslationFieldWithOptions) HasChildren() bool

func (TranslationFieldWithOptions) HasOptions

func (tor TranslationFieldWithOptions) HasOptions() bool

HasOptions specifies if a translation field has options or not

func (TranslationFieldWithOptions) HasParent

func (tpr TranslationFieldWithOptions) HasParent() bool

type TranslationFieldWithOptionsAndChildren

type TranslationFieldWithOptionsAndChildren struct {
	TranslationFieldBase
	// contains filtered or unexported fields
}

TranslationFieldWithOptionsAndChildren Represents a TranslationField that has options and Children

func (TranslationFieldWithOptionsAndChildren) GetChildren

func (tcr TranslationFieldWithOptionsAndChildren) GetChildren() (map[string][]TranslationField, bool)

func (TranslationFieldWithOptionsAndChildren) GetOptions

func (tor TranslationFieldWithOptionsAndChildren) GetOptions() (map[string]interface{}, bool)

GetOptions returns options for a translation

func (TranslationFieldWithOptionsAndChildren) GetParent

func (tpr TranslationFieldWithOptionsAndChildren) GetParent() (ITranslationParent, bool)

func (TranslationFieldWithOptionsAndChildren) HasChildren

func (tcr TranslationFieldWithOptionsAndChildren) HasChildren() bool

func (TranslationFieldWithOptionsAndChildren) HasOptions

func (tor TranslationFieldWithOptionsAndChildren) HasOptions() bool

HasOptions specifies if a translation field has options or not

func (TranslationFieldWithOptionsAndChildren) HasParent

func (tpr TranslationFieldWithOptionsAndChildren) HasParent() bool

type TranslationFieldWithOptionsAndParent

type TranslationFieldWithOptionsAndParent struct {
	TranslationFieldBase
	// contains filtered or unexported fields
}

TranslationFieldWithOptionsAndParent is a translation field that has Options and a Parent

func (TranslationFieldWithOptionsAndParent) GetChildren

func (tcr TranslationFieldWithOptionsAndParent) GetChildren() (map[string][]TranslationField, bool)

func (TranslationFieldWithOptionsAndParent) GetOptions

func (tor TranslationFieldWithOptionsAndParent) GetOptions() (map[string]interface{}, bool)

GetOptions returns options for a translation

func (TranslationFieldWithOptionsAndParent) GetParent

GetParent returns the parent of a translation

func (TranslationFieldWithOptionsAndParent) HasChildren

func (tcr TranslationFieldWithOptionsAndParent) HasChildren() bool

func (TranslationFieldWithOptionsAndParent) HasOptions

func (tor TranslationFieldWithOptionsAndParent) HasOptions() bool

HasOptions specifies if a translation field has options or not

func (TranslationFieldWithOptionsAndParent) HasParent

HasParent returns if the translation has a parent, and satisfies the ITranslation interface

type TranslationFieldWithParent

type TranslationFieldWithParent struct {
	TranslationFieldBase
	// contains filtered or unexported fields
}

TranslationFieldWithParent Represents a TranslationField that has a parent

func (TranslationFieldWithParent) GetChildren

func (tcr TranslationFieldWithParent) GetChildren() (map[string][]TranslationField, bool)

func (TranslationFieldWithParent) GetOptions

func (tor TranslationFieldWithParent) GetOptions() (map[string]interface{}, bool)

GetOptions returns options for a translation

func (TranslationFieldWithParent) GetParent

func (tpr TranslationFieldWithParent) GetParent() (ITranslationParent, bool)

GetParent returns the parent of a translation

func (TranslationFieldWithParent) HasChildren

func (tcr TranslationFieldWithParent) HasChildren() bool

func (TranslationFieldWithParent) HasOptions

func (tor TranslationFieldWithParent) HasOptions() bool

HasOptions specifies if a translation field has options or not

func (TranslationFieldWithParent) HasParent

func (tpr TranslationFieldWithParent) HasParent() bool

HasParent returns if the translation has a parent, and satisfies the ITranslation interface

type TranslationFieldWithParentAndChildren

type TranslationFieldWithParentAndChildren struct {
	TranslationFieldBase
	// contains filtered or unexported fields
}

TranslationFieldWithParentAndChildren is a translation field that has a Parent and Children

func (TranslationFieldWithParentAndChildren) GetChildren

func (tcr TranslationFieldWithParentAndChildren) GetChildren() (map[string][]TranslationField, bool)

func (TranslationFieldWithParentAndChildren) GetOptions

func (tor TranslationFieldWithParentAndChildren) GetOptions() (map[string]interface{}, bool)

GetOptions returns options for a translation

func (TranslationFieldWithParentAndChildren) GetParent

GetParent returns the parent of a translation

func (TranslationFieldWithParentAndChildren) HasChildren

func (tcr TranslationFieldWithParentAndChildren) HasChildren() bool

func (TranslationFieldWithParentAndChildren) HasOptions

func (tor TranslationFieldWithParentAndChildren) HasOptions() bool

HasOptions specifies if a translation field has options or not

func (TranslationFieldWithParentAndChildren) HasParent

HasParent returns if the translation has a parent, and satisfies the ITranslation interface

type TranslationFormType

type TranslationFormType string

TranslationFormType represents the FORM type of the translation field

const (
	TFTText        TranslationFormType = "TEXT"
	TFTTextarea    TranslationFormType = "TEXTAREA"
	TFTNumber      TranslationFormType = "NUMBER"
	TFTBoolean     TranslationFormType = "BOOLEAN"
	TFTRadio       TranslationFormType = "RADIO"
	TFTCheckbox    TranslationFormType = "CHECKBOX"
	TFTSelect      TranslationFormType = "SELECT"
	TFTMultiselect TranslationFormType = "MULTISELECT"
	TFTDatePicker  TranslationFormType = "DATEPICKER"
	TFTRangeInput  TranslationFormType = "RANGEINPUT"
)

These constants represent the different values of TranslationFormType

type TranslationQuestionType

type TranslationQuestionType string
const (
	TFTOther TranslationQuestionType = "OTHER"
	TFTNote  TranslationQuestionType = "NOTE"
)

type TriStateAnswer

type TriStateAnswer string

TriStateAnswer is an enum that represents a yes/no/tbd answer

const (
	TriYes TriStateAnswer = "YES"
	TriNo  TriStateAnswer = "NO"
	TriTBD TriStateAnswer = "TBD"
)

These constants represent the different values of TriStateAnswer

type UserAccountAndNotificationPreferences

type UserAccountAndNotificationPreferences struct {
	authentication.UserAccount
	PreferenceFlags UserNotificationPreferenceFlags `json:"preferenceFlags" db:"preference_flags"`
}

type UserInfo

type UserInfo struct {
	FirstName   string
	LastName    string
	DisplayName string
	Email       string
	Username    string
}

UserInfo is the model for the details of a user from the Okta API

type UserNotification

type UserNotification struct {

	// The if of the entity this notification is about
	ActivityID uuid.UUID `json:"activityID" db:"activity_id"`
	IsRead     bool      `json:"isRead" db:"is_read"`
	InAppSent  bool      `json:"inAppSent" db:"in_app_sent"`
	EmailSent  bool      `json:"emailSent" db:"email_sent"`
	// contains filtered or unexported fields
}

UserNotification represents a discrete event that has happened in the application that might be notifiable.

func NewUserNotification

func NewUserNotification(
	userID uuid.UUID,
	activityID uuid.UUID,

	inAppNotification bool,

	emailNotification bool,
) *UserNotification

NewUserNotification returns a New UserNotification

func (UserNotification) GetCreatedBy

func (b UserNotification) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (UserNotification) GetID

func (b UserNotification) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (UserNotification) GetModifiedBy

func (b UserNotification) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (UserNotification) MostRecentModification

func (b UserNotification) MostRecentModification() (time.Time, uuid.UUID)

func (*UserNotification) SetModifiedBy

func (b *UserNotification) SetModifiedBy(principal authentication.Principal) error

func (*UserNotification) UserAccount

func (b *UserNotification) UserAccount(ctx context.Context) (*authentication.UserAccount, error)

type UserNotificationPreferenceFlag

type UserNotificationPreferenceFlag string

UserNotificationPreferenceFlag is an enum that represents the role of a user in a Discussion

const (
	UserNotificationPreferenceInApp UserNotificationPreferenceFlag = "IN_APP"
	UserNotificationPreferenceEmail UserNotificationPreferenceFlag = "EMAIL"
)

These constants represent the possible values of a DiscussionUserRole

func DefaultUserNotificationPreferencesFlags

func DefaultUserNotificationPreferencesFlags() []UserNotificationPreferenceFlag

DefaultUserNotificationPreferencesFlags returns the default Preferences flag for any user, defaulting to all turned on.

func EmptyUserNotificationPreferencesFlags

func EmptyUserNotificationPreferencesFlags() []UserNotificationPreferenceFlag

EmptyUserNotificationPreferencesFlags returns empty Preferences flags for any user, defaulting to all turned off.

type UserNotificationPreferenceFlags

type UserNotificationPreferenceFlags []UserNotificationPreferenceFlag

UserNotificationPreferenceFlags represents an array or User Notification Preference flags Note, this typically would just be represented as a pq.StringArray, however, it is important to write receiver methods on the type As such, we implement the sqlx Valuer and Scanner interfaces so we can serialize and deserialize directly to and from the database.

func (UserNotificationPreferenceFlags) InApp

InApp translates notification preferences to a bool. True means the user desires an in app notification for this notification type

func (*UserNotificationPreferenceFlags) Scan

func (unp *UserNotificationPreferenceFlags) Scan(src interface{}) error

Scan is used by sql.scan to read the values from the DB

func (UserNotificationPreferenceFlags) SendEmail

func (unp UserNotificationPreferenceFlags) SendEmail() bool

SendEmail translates notification preferences to a bool. True means the user desires an email for this notification type

func (UserNotificationPreferenceFlags) Value

Value implements the driver.Valuer interface.

type UserNotificationPreferences

type UserNotificationPreferences struct {

	// The id of the user this preferences object is for
	UserID uuid.UUID `json:"userID" db:"user_id"`

	DailyDigestComplete                                UserNotificationPreferenceFlags                     `json:"dailyDigestComplete" db:"daily_digest_complete"`
	AddedAsCollaborator                                UserNotificationPreferenceFlags                     `json:"addedAsCollaborator" db:"added_as_collaborator"`
	TaggedInDiscussion                                 UserNotificationPreferenceFlags                     `json:"taggedInDiscussion" db:"tagged_in_discussion"`
	TaggedInDiscussionReply                            UserNotificationPreferenceFlags                     `json:"taggedInDiscussionReply" db:"tagged_in_discussion_reply"`
	NewDiscussionReply                                 UserNotificationPreferenceFlags                     `json:"newDiscussionReply" db:"new_discussion_reply"`
	ModelPlanShared                                    UserNotificationPreferenceFlags                     `json:"modelPlanShared" db:"model_plan_shared"`
	NewModelPlan                                       UserNotificationPreferenceFlags                     `json:"newModelPlan" db:"new_model_plan"`
	NewDiscussionAdded                                 UserNotificationPreferenceFlags                     `json:"newDiscussionAdded" db:"new_discussion_added"`
	NewDiscussionAddedNotificationType                 *NewDiscussionAddedNotificationType                 `json:"newDiscussionAddedNotificationType" db:"new_discussion_added_notification_type"`
	DatesChanged                                       UserNotificationPreferenceFlags                     `json:"datesChanged" db:"dates_changed"`
	DatesChangedNotificationType                       *DatesChangedNotificationType                       `json:"datesChangedNotificationType" db:"dates_changed_notification_type"`
	DataExchangeApproachMarkedComplete                 UserNotificationPreferenceFlags                     `json:"dataExchangeApproachMarkedComplete" db:"data_exchange_approach_marked_complete"`
	DataExchangeApproachMarkedCompleteNotificationType *DataExchangeApproachMarkedCompleteNotificationType `json:"dataExchangeApproachMarkedCompleteNotificationType" db:"data_exchange_approach_marked_complete_notification_type"`
	IncorrectModelStatus                               UserNotificationPreferenceFlags                     `json:"incorrectModelStatus" db:"incorrect_model_status"`
	IncorrectModelStatusNotificationType               UserNotificationPreferenceFlags                     `json:"incorrectModelStatusNotificationType" db:"incorrect_model_status_notification_type"`
	// contains filtered or unexported fields
}

UserNotificationPreferences represents a discrete event that has happened in the application that might be notifiable.

func NewUserNotificationPreferences

func NewUserNotificationPreferences(userID uuid.UUID) *UserNotificationPreferences

NewUserNotificationPreferences returns a New UserNotificationPreferences

func (UserNotificationPreferences) GetCreatedBy

func (b UserNotificationPreferences) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (UserNotificationPreferences) GetID

func (b UserNotificationPreferences) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (UserNotificationPreferences) GetModifiedBy

func (b UserNotificationPreferences) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (UserNotificationPreferences) MostRecentModification

func (b UserNotificationPreferences) MostRecentModification() (time.Time, uuid.UUID)

func (*UserNotificationPreferences) SetModifiedBy

func (b *UserNotificationPreferences) SetModifiedBy(principal authentication.Principal) error

type UserNotifications

type UserNotifications struct {
	Notifications []*UserNotification
}

UserNotifications is a collection of User Notification Objects.

func (*UserNotifications) NumUnreadNotifications

func (un *UserNotifications) NumUnreadNotifications() int

NumUnreadNotifications returns the number of UnreadNotifications

func (*UserNotifications) UnreadNotifications

func (un *UserNotifications) UnreadNotifications() []*UserNotification

UnreadNotifications returns the subset of Notifications with a status of IsRead = false

type UserViewCustomization

type UserViewCustomization struct {
	ViewCustomization pq.StringArray `json:"viewCustomization" db:"view_customization"`
	Solutions         pq.StringArray `json:"solutions" db:"solutions"`
	ComponentGroups   pq.StringArray `json:"componentGroups" db:"component_groups"`
	// contains filtered or unexported fields
}

UserViewCustomization represents a user's choices to customize their homepage

func (UserViewCustomization) GetCreatedBy

func (b UserViewCustomization) GetCreatedBy() string

GetCreatedBy implements the CreatedBy property

func (UserViewCustomization) GetID

func (b UserViewCustomization) GetID() uuid.UUID

GetID returns the ID property for a PlanBasics struct

func (UserViewCustomization) GetModifiedBy

func (b UserViewCustomization) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (UserViewCustomization) MostRecentModification

func (b UserViewCustomization) MostRecentModification() (time.Time, uuid.UUID)

func (*UserViewCustomization) SetModifiedBy

func (b *UserViewCustomization) SetModifiedBy(principal authentication.Principal) error

func (*UserViewCustomization) UserAccount

func (b *UserViewCustomization) UserAccount(ctx context.Context) (*authentication.UserAccount, error)

type ViewCustomizationType

type ViewCustomizationType string
const (
	ViewCustomizationTypeMyModelPlans               ViewCustomizationType = "MY_MODEL_PLANS"
	ViewCustomizationTypeAllModelPlans              ViewCustomizationType = "ALL_MODEL_PLANS"
	ViewCustomizationTypeFollowedModels             ViewCustomizationType = "FOLLOWED_MODELS"
	ViewCustomizationTypeModelsWithCrTdl            ViewCustomizationType = "MODELS_WITH_CR_TDL"
	ViewCustomizationTypeModelsBySolution           ViewCustomizationType = "MODELS_BY_SOLUTION"
	ViewCustomizationTypeModelsApproachingClearance ViewCustomizationType = "MODELS_APPROACHING_CLEARANCE"
	ViewCustomizationTypeModelsByGroup              ViewCustomizationType = "MODELS_BY_GROUP"
	ViewCustomizationTypeNewlyCreatedModelPlans     ViewCustomizationType = "NEWLY_CREATED_MODEL_PLANS"
)

type YesNoOtherType

type YesNoOtherType string

YesNoOtherType represents the possible YESNOOTHERTYPE options

const (
	YesNoOtherTypeYes   YesNoOtherType = "YES"
	YesNoOtherTypeNo    YesNoOtherType = "NO"
	YesNoOtherTypeOther YesNoOtherType = "OTHER"
)

These constants represent the choices for YESNOOTHERTYPE

type YesNoType

type YesNoType string

YesNoType represents the yes no filter type

const (
	YesNoTypeYes YesNoType = "YES"
	YesNoTypeNo  YesNoType = "NO"
)

These constants represent the yes no type types

Source Files

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL