models

package
v0.0.0-...-5acab9f Latest Latest
Warning

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

Go to latest
Published: May 3, 2024 License: Apache-2.0 Imports: 25 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"

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

	// AnalyzedDocumentsHumanizedCount is human readable
	// sentence template of a singular AnalyzedDocument.Count
	AnalyzedDocumentsHumanizedCount = "%d new document has been uploaded"
)
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"
)
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 (
	// AnalyzedPlanDiscussionsHumanizedActivity is human readable
	// sentence template of AnalyzedPlanDiscussions.Activity
	AnalyzedPlanDiscussionsHumanizedActivity = "New activity in Discussions"
)

Variables

AllOperationalSolutionSubtaskStatus is a collection of all possible values for OperationalSolutionSubtaskStatus

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 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 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 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 NewUserIDRelation

func NewUserIDRelation(userID uuid.UUID) userIDRelation

NewUserIDRelation returns a user ID relation object

func StringPointer

func StringPointer(st string) *string

StringPointer returns a pointer to a string input

func StructArrayToJSONArray

func StructArrayToJSONArray[StructType ~struct{}](structArray []StructType) (string, error)

StructArrayToJSONArray converts an array of structs to a JSON array

func StructArrayToMapArray

func StructArrayToMapArray[StructType ~struct{}](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 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 NewModelPlanSharedActivityMeta

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

NewModelPlanSharedActivityMeta creates a New Model Plan Shared type of Activity

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 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) 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"
)

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 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) 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"`
}

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 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           []string `json:"updated,omitempty"`
	ReadyForReview    []string `json:"readyForReview,omitempty"`
	ReadyForClearance []string `json:"readyForClearance,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 AuditChange

type AuditChange struct {
	ID          int         `json:"id" db:"id"`
	TableName   string      `json:"tableName" db:"table_name"`
	PrimaryKey  uuid.UUID   `json:"primaryKey" db:"primary_key"`
	ForeignKey  uuid.UUID   `json:"foreignKey" db:"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

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

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 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
	PAYMENTS_FOR_POST_DISCHARGE_HOME_VISITS 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 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 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 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 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) 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"
	DiscussionRoleItArchitect                      DiscussionUserRole = "IT_ARCHITECT"
	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"
	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 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

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

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) 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 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
}

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
}

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 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 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 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"`
	// 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) SetModifiedBy

func (b *ModelPlan) 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 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 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 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 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 creatd 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) 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) 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) GetModifiedBy

func (b OperationalSolution) GetModifiedBy() *string

GetModifiedBy returns the ModifiedBy property for an IBaseStruct

func (OperationalSolution) GetOperationalNeedID

func (d OperationalSolution) GetOperationalNeedID() uuid.UUID

GetOperationalNeedID returns OperationalID

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"
	OpSKCmsQualtrics              OperationalSolutionKey = "CMS_QUALTRICS"
	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"
	OpSKMdm                       OperationalSolutionKey = "MDM"
	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"
)

These are the options for OperationalSolutionKey

type OperationalSolutionSubtask

type OperationalSolutionSubtask struct {
	Name   string                           `json:"name"`
	Status OperationalSolutionSubtaskStatus `json:"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) 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 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 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"`

	// PLAN MILESTONES
	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"`
	PhasedIn                *bool      `json:"phasedIn" db:"phased_in" statusWeight:"1"` //default to false
	PhasedInNote            *string    `json:"phasedInNote" db:"phased_in_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

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

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

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

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) SetModifiedBy

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

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) SetModifiedBy

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

func (*PlanCollaborator) UserAccount

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

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) SetModifiedBy

func (b *PlanDiscussion) 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) 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) 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) SetModifiedBy

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

func (*PlanFavorite) UserAccount

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

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
	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

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

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"`
	EvalutaionApproachNote        *string        `json:"evalutaionApproachNote" db:"evalutaion_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

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

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"`
	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

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

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"`
	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"`
	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
	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

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

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) SetModifiedBy

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

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

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

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

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

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:"isTeam" json:"is_team"`
	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) 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"`
	BasicsClearanceStarts  *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 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 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) 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"
)

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"
)

These constants represent the different values of TeamRole

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 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) SetModifiedBy

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

func (*UserNotification) UserAccount

func (b *UserNotification) UserAccount(ctx context.Context) *authentication.UserAccount

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.

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"`
	// 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) 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 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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL