@memberjunction/server 2.73.0 → 2.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,7 +19,7 @@ import { mj_core_schema } from '../config.js';
19
19
 
20
20
 
21
21
 
22
- import { ScheduledActionEntity, ScheduledActionParamEntity, ExplorerNavigationItemEntity, GeneratedCodeCategoryEntity, AIAgentModelEntity, AIAgentNoteTypeEntity, AIAgentRunEntity, AIVendorEntity, AIConfigurationEntity, AIAgentEntity, AIModelCostEntity, AIPromptModelEntity, AIAgentTypeEntity, AIAgentNoteEntity, AIAgentActionEntity, AIModelPriceTypeEntity, AIPromptEntity, AIResultCacheEntity, AIPromptCategoryEntity, AIPromptTypeEntity, CompanyEntity, EmployeeEntity, UserFavoriteEntity, EmployeeCompanyIntegrationEntity, EmployeeRoleEntity, EmployeeSkillEntity, RoleEntity, SkillEntity, IntegrationURLFormatEntity, IntegrationEntity, CompanyIntegrationEntity, EntityFieldEntity, EntityEntity, UserEntity, EntityRelationshipEntity, UserRecordLogEntity, UserViewEntity, CompanyIntegrationRunEntity, CompanyIntegrationRunDetailEntity, ErrorLogEntity, ApplicationEntity, ApplicationEntityEntity, EntityPermissionEntity, UserApplicationEntityEntity, UserApplicationEntity, CompanyIntegrationRunAPILogEntity, ListEntity, ListDetailEntity, UserViewRunEntity, UserViewRunDetailEntity, WorkflowRunEntity, WorkflowEntity, WorkflowEngineEntity, RecordChangeEntity, UserRoleEntity, RowLevelSecurityFilterEntity, AuditLogEntity, AuthorizationEntity, AuthorizationRoleEntity, AuditLogTypeEntity, EntityFieldValueEntity, AIModelEntity, AIActionEntity, AIModelActionEntity, EntityAIActionEntity, AIModelTypeEntity, QueueTypeEntity, QueueEntity, QueueTaskEntity, DashboardEntity, OutputTriggerTypeEntity, OutputFormatTypeEntity, OutputDeliveryTypeEntity, ReportEntity, ReportSnapshotEntity, ResourceTypeEntity, TagEntity, TaggedItemEntity, WorkspaceEntity, WorkspaceItemEntity, DatasetEntity, DatasetItemEntity, ConversationDetailEntity, ConversationEntity, UserNotificationEntity, SchemaInfoEntity, CompanyIntegrationRecordMapEntity, RecordMergeLogEntity, RecordMergeDeletionLogEntity, QueryFieldEntity, QueryCategoryEntity, QueryEntity, QueryPermissionEntity, VectorIndexEntity, EntityDocumentTypeEntity, EntityDocumentRunEntity, VectorDatabaseEntity, EntityRecordDocumentEntity, EntityDocumentEntity, DataContextItemEntity, DataContextEntity, UserViewCategoryEntity, DashboardCategoryEntity, ReportCategoryEntity, FileStorageProviderEntity, FileEntity, FileCategoryEntity, FileEntityRecordLinkEntity, VersionInstallationEntity, DuplicateRunDetailMatchEntity, EntityDocumentSettingEntity, EntitySettingEntity, DuplicateRunEntity, DuplicateRunDetailEntity, ApplicationSettingEntity, ActionCategoryEntity, EntityActionEntity, EntityActionInvocationEntity, ActionAuthorizationEntity, EntityActionInvocationTypeEntity, ActionEntity, EntityActionFilterEntity, ActionFilterEntity, ActionContextTypeEntity, ActionResultCodeEntity, ActionContextEntity, ActionExecutionLogEntity, ActionParamEntity, ActionLibraryEntity, LibraryEntity, ListCategoryEntity, CommunicationProviderEntity, CommunicationRunEntity, CommunicationProviderMessageTypeEntity, CommunicationLogEntity, CommunicationBaseMessageTypeEntity, TemplateEntity, TemplateCategoryEntity, TemplateContentEntity, TemplateParamEntity, TemplateContentTypeEntity, RecommendationEntity, RecommendationProviderEntity, RecommendationRunEntity, RecommendationItemEntity, EntityCommunicationMessageTypeEntity, EntityCommunicationFieldEntity, RecordChangeReplayRunEntity, LibraryItemEntity, EntityRelationshipDisplayComponentEntity, EntityActionParamEntity, ResourcePermissionEntity, ResourceLinkEntity, ConversationArtifactVersionEntity, AIAgentRequestEntity, AIModelVendorEntity, AIVendorTypeDefinitionEntity, ReportUserStateEntity, QueryEntityEntity, DashboardUserStateEntity, ArtifactTypeEntity, AIVendorTypeEntity, ConversationArtifactEntity, AIAgentPromptEntity, DashboardUserPreferenceEntity, ContentProcessRunEntity, ContentSourceEntity, ContentSourceParamEntity, ContentSourceTypeEntity, ContentSourceTypeParamEntity, ContentTypeEntity, ContentTypeAttributeEntity, ContentFileTypeEntity, ContentItemEntity, ContentItemAttributeEntity, ContentItemTagEntity, GeneratedCodeEntity, AIPromptRunEntity, AIAgentRunStepEntity, ConversationArtifactPermissionEntity, AIModelPriceUnitTypeEntity, AIAgentLearningCycleEntity, ReportVersionEntity, AIConfigurationParamEntity } from '@memberjunction/core-entities';
22
+ import { ScheduledActionEntity, ScheduledActionParamEntity, ExplorerNavigationItemEntity, GeneratedCodeCategoryEntity, AIAgentModelEntity, AIAgentNoteTypeEntity, AIAgentRunEntity, AIVendorEntity, AIConfigurationEntity, AIAgentEntity, AIModelCostEntity, AIPromptModelEntity, AIAgentTypeEntity, AIAgentNoteEntity, AIAgentActionEntity, AIModelPriceTypeEntity, AIPromptEntity, AIResultCacheEntity, AIPromptCategoryEntity, AIPromptTypeEntity, CompanyEntity, EmployeeEntity, UserFavoriteEntity, EmployeeCompanyIntegrationEntity, EmployeeRoleEntity, EmployeeSkillEntity, RoleEntity, SkillEntity, IntegrationURLFormatEntity, IntegrationEntity, CompanyIntegrationEntity, EntityFieldEntity, EntityEntity, UserEntity, EntityRelationshipEntity, UserRecordLogEntity, UserViewEntity, CompanyIntegrationRunEntity, CompanyIntegrationRunDetailEntity, ErrorLogEntity, ApplicationEntity, ApplicationEntityEntity, EntityPermissionEntity, UserApplicationEntityEntity, UserApplicationEntity, CompanyIntegrationRunAPILogEntity, ListEntity, ListDetailEntity, UserViewRunEntity, UserViewRunDetailEntity, WorkflowRunEntity, WorkflowEntity, WorkflowEngineEntity, RecordChangeEntity, UserRoleEntity, RowLevelSecurityFilterEntity, AuditLogEntity, AuthorizationEntity, AuthorizationRoleEntity, AuditLogTypeEntity, EntityFieldValueEntity, AIModelEntity, AIActionEntity, AIModelActionEntity, EntityAIActionEntity, AIModelTypeEntity, QueueTypeEntity, QueueEntity, QueueTaskEntity, DashboardEntity, OutputTriggerTypeEntity, OutputFormatTypeEntity, OutputDeliveryTypeEntity, ReportEntity, ReportSnapshotEntity, ResourceTypeEntity, TagEntity, TaggedItemEntity, WorkspaceEntity, WorkspaceItemEntity, DatasetEntity, DatasetItemEntity, ConversationDetailEntity, ConversationEntity, UserNotificationEntity, SchemaInfoEntity, CompanyIntegrationRecordMapEntity, RecordMergeLogEntity, RecordMergeDeletionLogEntity, QueryFieldEntity, QueryCategoryEntity, QueryEntity, QueryPermissionEntity, VectorIndexEntity, EntityDocumentTypeEntity, EntityDocumentRunEntity, VectorDatabaseEntity, EntityRecordDocumentEntity, EntityDocumentEntity, DataContextItemEntity, DataContextEntity, UserViewCategoryEntity, DashboardCategoryEntity, ReportCategoryEntity, FileStorageProviderEntity, FileEntity, FileCategoryEntity, FileEntityRecordLinkEntity, VersionInstallationEntity, DuplicateRunDetailMatchEntity, EntityDocumentSettingEntity, EntitySettingEntity, DuplicateRunEntity, DuplicateRunDetailEntity, ApplicationSettingEntity, ActionCategoryEntity, EntityActionEntity, EntityActionInvocationEntity, ActionAuthorizationEntity, EntityActionInvocationTypeEntity, ActionEntity, EntityActionFilterEntity, ActionFilterEntity, ActionContextTypeEntity, ActionResultCodeEntity, ActionContextEntity, ActionExecutionLogEntity, ActionParamEntity, ActionLibraryEntity, LibraryEntity, ListCategoryEntity, CommunicationProviderEntity, CommunicationRunEntity, CommunicationProviderMessageTypeEntity, CommunicationLogEntity, CommunicationBaseMessageTypeEntity, TemplateEntity, TemplateCategoryEntity, TemplateContentEntity, TemplateParamEntity, TemplateContentTypeEntity, RecommendationEntity, RecommendationProviderEntity, RecommendationRunEntity, RecommendationItemEntity, EntityCommunicationMessageTypeEntity, EntityCommunicationFieldEntity, RecordChangeReplayRunEntity, LibraryItemEntity, EntityRelationshipDisplayComponentEntity, EntityActionParamEntity, ResourcePermissionEntity, ResourceLinkEntity, ConversationArtifactVersionEntity, AIAgentRequestEntity, AIModelVendorEntity, AIVendorTypeDefinitionEntity, ReportUserStateEntity, QueryEntityEntity, DashboardUserStateEntity, ArtifactTypeEntity, AIVendorTypeEntity, ConversationArtifactEntity, AIAgentPromptEntity, DashboardUserPreferenceEntity, QueryParameterEntity, ContentProcessRunEntity, ContentSourceEntity, ContentSourceParamEntity, ContentSourceTypeEntity, ContentSourceTypeParamEntity, ContentTypeEntity, ContentTypeAttributeEntity, ContentFileTypeEntity, ContentItemEntity, ContentItemAttributeEntity, ContentItemTagEntity, GeneratedCodeEntity, AIPromptRunEntity, AIAgentRunStepEntity, ConversationArtifactPermissionEntity, AIModelPriceUnitTypeEntity, AIAgentLearningCycleEntity, ReportVersionEntity, AIConfigurationParamEntity } from '@memberjunction/core-entities';
23
23
 
24
24
 
25
25
  //****************************************************************************
@@ -76,7 +76,7 @@ export class ScheduledAction_ {
76
76
  @MaxLength(40)
77
77
  Month?: string;
78
78
 
79
- @Field({nullable: true})
79
+ @Field({nullable: true, description: `Field CustomCronExpression for entity Scheduled Actions.`})
80
80
  @MaxLength(510)
81
81
  CustomCronExpression?: string;
82
82
 
@@ -300,7 +300,7 @@ export class ScheduledActionResolver extends ResolverBase {
300
300
  //****************************************************************************
301
301
  // ENTITY CLASS for Scheduled Action Params
302
302
  //****************************************************************************
303
- @ObjectType()
303
+ @ObjectType({ description: `Stores parameter values for scheduled action executions, configuring inputs for automated action runs.` })
304
304
  export class ScheduledActionParam_ {
305
305
  @Field()
306
306
  @MaxLength(16)
@@ -314,11 +314,11 @@ export class ScheduledActionParam_ {
314
314
  @MaxLength(16)
315
315
  ActionParamID: string;
316
316
 
317
- @Field()
317
+ @Field({description: `Field ValueType for entity Scheduled Action Params.`})
318
318
  @MaxLength(40)
319
319
  ValueType: string;
320
320
 
321
- @Field({nullable: true})
321
+ @Field({nullable: true, description: `Field Value for entity Scheduled Action Params.`})
322
322
  Value?: string;
323
323
 
324
324
  @Field({nullable: true})
@@ -894,7 +894,7 @@ export class AIAgentModel_ {
894
894
  @MaxLength(16)
895
895
  ModelID?: string;
896
896
 
897
- @Field(() => Boolean, {nullable: true})
897
+ @Field(() => Boolean, {nullable: true, description: `Indicates whether this specific agent-model combination is currently enabled for use in AI operations.`})
898
898
  Active?: boolean;
899
899
 
900
900
  @Field(() => Int, {nullable: true, description: `The priority level of the AI model for the agent, where higher values indicate higher priority.`})
@@ -1053,7 +1053,7 @@ export class AIAgentModelResolver extends ResolverBase {
1053
1053
  //****************************************************************************
1054
1054
  // ENTITY CLASS for AI Agent Note Types
1055
1055
  //****************************************************************************
1056
- @ObjectType()
1056
+ @ObjectType({ description: `Defines categories and types for AI agent notes, enabling classification and organization of agent-generated observations, recommendations, and learnings.` })
1057
1057
  export class AIAgentNoteType_ {
1058
1058
  @Field()
1059
1059
  @MaxLength(16)
@@ -2258,12 +2258,10 @@ if this limit is exceeded.`})
2258
2258
  @Field(() => Int, {nullable: true, description: `When acting as a sub-agent, maximum number of times this agent can be executed per parent agent run`})
2259
2259
  MaxExecutionsPerRun?: number;
2260
2260
 
2261
- @Field({nullable: true, description: `Optional JSON schema validation to apply to the input payload before agent execution begins. Uses the same JSONValidator
2262
- format as FinalPayloadValidation.`})
2261
+ @Field({nullable: true, description: `Optional JSON schema validation to apply to the input payload before agent execution begins. Uses the same JSONValidator format as FinalPayloadValidation.`})
2263
2262
  StartingPayloadValidation?: string;
2264
2263
 
2265
- @Field({description: `Determines how to handle StartingPayloadValidation failures. Fail = reject invalid input, Warn = log warning but
2266
- proceed.`})
2264
+ @Field({description: `Determines how to handle StartingPayloadValidation failures. Fail = reject invalid input, Warn = log warning but proceed.`})
2267
2265
  @MaxLength(50)
2268
2266
  StartingPayloadValidationMode: string;
2269
2267
 
@@ -3425,7 +3423,7 @@ export class AIAgentTypeResolver extends ResolverBase {
3425
3423
  //****************************************************************************
3426
3424
  // ENTITY CLASS for AI Agent Notes
3427
3425
  //****************************************************************************
3428
- @ObjectType()
3426
+ @ObjectType({ description: `Stores notes, observations, and learnings generated by AI agents during their operations, linked to specific agent runs and categorized by note type. Can be user-specific or general.` })
3429
3427
  export class AIAgentNote_ {
3430
3428
  @Field()
3431
3429
  @MaxLength(16)
@@ -3439,7 +3437,7 @@ export class AIAgentNote_ {
3439
3437
  @MaxLength(16)
3440
3438
  AgentNoteTypeID?: string;
3441
3439
 
3442
- @Field({nullable: true})
3440
+ @Field({nullable: true, description: `The content of the note, observation, or learning captured by the AI agent during its execution.`})
3443
3441
  Note?: string;
3444
3442
 
3445
3443
  @Field()
@@ -5287,15 +5285,15 @@ export class Company_ {
5287
5285
  @MaxLength(400)
5288
5286
  Description: string;
5289
5287
 
5290
- @Field({nullable: true})
5288
+ @Field({nullable: true, description: `The primary website URL for this company or division.`})
5291
5289
  @MaxLength(200)
5292
5290
  Website?: string;
5293
5291
 
5294
- @Field({nullable: true})
5292
+ @Field({nullable: true, description: `URL pointing to the company's logo image, used for branding in the UI.`})
5295
5293
  @MaxLength(1000)
5296
5294
  LogoURL?: string;
5297
5295
 
5298
- @Field({nullable: true})
5296
+ @Field({nullable: true, description: `The primary email domain associated with this company, used for employee email validation and SSO configuration.`})
5299
5297
  @MaxLength(510)
5300
5298
  Domain?: string;
5301
5299
 
@@ -5505,15 +5503,15 @@ export class Employee_ {
5505
5503
  @MaxLength(16)
5506
5504
  ID: string;
5507
5505
 
5508
- @Field()
5506
+ @Field({description: `Business Central Management ID - unique identifier for cross-system employee tracking.`})
5509
5507
  @MaxLength(16)
5510
5508
  BCMID: string;
5511
5509
 
5512
- @Field()
5510
+ @Field({description: `Employee's first name or given name.`})
5513
5511
  @MaxLength(60)
5514
5512
  FirstName: string;
5515
5513
 
5516
- @Field()
5514
+ @Field({description: `Employee's last name or surname.`})
5517
5515
  @MaxLength(100)
5518
5516
  LastName: string;
5519
5517
 
@@ -5525,19 +5523,19 @@ export class Employee_ {
5525
5523
  @MaxLength(16)
5526
5524
  SupervisorID?: string;
5527
5525
 
5528
- @Field({nullable: true})
5526
+ @Field({nullable: true, description: `Employee's job title or position within the organization.`})
5529
5527
  @MaxLength(100)
5530
5528
  Title?: string;
5531
5529
 
5532
- @Field()
5530
+ @Field({description: `Employee's primary email address, must be unique across the system.`})
5533
5531
  @MaxLength(200)
5534
5532
  Email: string;
5535
5533
 
5536
- @Field({nullable: true})
5534
+ @Field({nullable: true, description: `Employee's primary phone number for business contact.`})
5537
5535
  @MaxLength(40)
5538
5536
  Phone?: string;
5539
5537
 
5540
- @Field(() => Boolean)
5538
+ @Field(() => Boolean, {description: `Indicates whether the employee is currently active in the organization.`})
5541
5539
  Active: boolean;
5542
5540
 
5543
5541
  @Field()
@@ -5818,7 +5816,7 @@ export class UserFavorite_ {
5818
5816
  @MaxLength(16)
5819
5817
  EntityID: string;
5820
5818
 
5821
- @Field()
5819
+ @Field({description: `The ID of the favorited record.`})
5822
5820
  @MaxLength(900)
5823
5821
  RecordID: string;
5824
5822
 
@@ -5973,7 +5971,7 @@ export class UserFavoriteResolverBase extends ResolverBase {
5973
5971
  //****************************************************************************
5974
5972
  // ENTITY CLASS for Employee Company Integrations
5975
5973
  //****************************************************************************
5976
- @ObjectType()
5974
+ @ObjectType({ description: `Maps employees to their external identifiers in integrated systems, maintaining synchronization across platforms.` })
5977
5975
  export class EmployeeCompanyIntegration_ {
5978
5976
  @Field()
5979
5977
  @MaxLength(16)
@@ -5987,11 +5985,11 @@ export class EmployeeCompanyIntegration_ {
5987
5985
  @MaxLength(16)
5988
5986
  CompanyIntegrationID: string;
5989
5987
 
5990
- @Field()
5988
+ @Field({description: `The employee's unique identifier in the external integrated system.`})
5991
5989
  @MaxLength(1500)
5992
5990
  ExternalSystemRecordID: string;
5993
5991
 
5994
- @Field(() => Boolean)
5992
+ @Field(() => Boolean, {description: `Indicates if this employee integration mapping is currently active.`})
5995
5993
  IsActive: boolean;
5996
5994
 
5997
5995
  @Field()
@@ -6143,7 +6141,7 @@ export class EmployeeCompanyIntegrationResolver extends ResolverBase {
6143
6141
  //****************************************************************************
6144
6142
  // ENTITY CLASS for Employee Roles
6145
6143
  //****************************************************************************
6146
- @ObjectType()
6144
+ @ObjectType({ description: `Links employees to their assigned roles within the organization, managing role-based permissions and responsibilities.` })
6147
6145
  export class EmployeeRole_ {
6148
6146
  @Field()
6149
6147
  @MaxLength(16)
@@ -6294,7 +6292,7 @@ export class EmployeeRoleResolver extends ResolverBase {
6294
6292
  //****************************************************************************
6295
6293
  // ENTITY CLASS for Employee Skills
6296
6294
  //****************************************************************************
6297
- @ObjectType()
6295
+ @ObjectType({ description: `Tracks skills, competencies, and certifications associated with employees for resource planning and team composition.` })
6298
6296
  export class EmployeeSkill_ {
6299
6297
  @Field()
6300
6298
  @MaxLength(16)
@@ -7084,22 +7082,22 @@ export class Integration_ {
7084
7082
  @MaxLength(510)
7085
7083
  Description?: string;
7086
7084
 
7087
- @Field({nullable: true})
7085
+ @Field({nullable: true, description: `Base URL for navigating to records in the external system from MemberJunction.`})
7088
7086
  @MaxLength(1000)
7089
7087
  NavigationBaseURL?: string;
7090
7088
 
7091
- @Field({nullable: true})
7089
+ @Field({nullable: true, description: `The TypeScript/JavaScript class name implementing this integration.`})
7092
7090
  @MaxLength(200)
7093
7091
  ClassName?: string;
7094
7092
 
7095
- @Field({nullable: true})
7093
+ @Field({nullable: true, description: `Module import path for the integration class in the codebase.`})
7096
7094
  @MaxLength(200)
7097
7095
  ImportPath?: string;
7098
7096
 
7099
- @Field(() => Int)
7097
+ @Field(() => Int, {description: `Maximum number of API requests to batch together, -1 for no limit.`})
7100
7098
  BatchMaxRequestCount: number;
7101
7099
 
7102
- @Field(() => Int)
7100
+ @Field(() => Int, {description: `Milliseconds to wait before sending a batch of requests, -1 to disable batching.`})
7103
7101
  BatchRequestWaitTime: number;
7104
7102
 
7105
7103
  @Field()
@@ -7332,41 +7330,41 @@ export class CompanyIntegration_ {
7332
7330
  @MaxLength(16)
7333
7331
  IntegrationID: string;
7334
7332
 
7335
- @Field(() => Boolean, {nullable: true})
7333
+ @Field(() => Boolean, {nullable: true, description: `Controls whether this integration is currently active for the company.`})
7336
7334
  IsActive?: boolean;
7337
7335
 
7338
- @Field({nullable: true})
7336
+ @Field({nullable: true, description: `OAuth access token for authenticating with the external system.`})
7339
7337
  @MaxLength(510)
7340
7338
  AccessToken?: string;
7341
7339
 
7342
- @Field({nullable: true})
7340
+ @Field({nullable: true, description: `OAuth refresh token used to obtain new access tokens when they expire.`})
7343
7341
  @MaxLength(510)
7344
7342
  RefreshToken?: string;
7345
7343
 
7346
- @Field({nullable: true})
7344
+ @Field({nullable: true, description: `Timestamp when the current access token expires and needs to be refreshed.`})
7347
7345
  @MaxLength(8)
7348
7346
  TokenExpirationDate?: Date;
7349
7347
 
7350
- @Field({nullable: true})
7348
+ @Field({nullable: true, description: `API key for systems using key-based authentication instead of OAuth.`})
7351
7349
  @MaxLength(510)
7352
7350
  APIKey?: string;
7353
7351
 
7354
- @Field({nullable: true})
7352
+ @Field({nullable: true, description: `The company's identifier in the external system, used for API calls.`})
7355
7353
  @MaxLength(200)
7356
7354
  ExternalSystemID?: string;
7357
7355
 
7358
- @Field(() => Boolean)
7356
+ @Field(() => Boolean, {description: `Indicates if data can only be read from the external system, not written back.`})
7359
7357
  IsExternalSystemReadOnly: boolean;
7360
7358
 
7361
- @Field({nullable: true})
7359
+ @Field({nullable: true, description: `OAuth client ID for this integration instance.`})
7362
7360
  @MaxLength(510)
7363
7361
  ClientID?: string;
7364
7362
 
7365
- @Field({nullable: true})
7363
+ @Field({nullable: true, description: `OAuth client secret for authentication, should be encrypted at rest.`})
7366
7364
  @MaxLength(510)
7367
7365
  ClientSecret?: string;
7368
7366
 
7369
- @Field({nullable: true})
7367
+ @Field({nullable: true, description: `Flexible field for storing integration-specific configuration or metadata.`})
7370
7368
  @MaxLength(510)
7371
7369
  CustomAttribute1?: string;
7372
7370
 
@@ -7774,7 +7772,7 @@ export class EntityField_ {
7774
7772
  @Field(() => Boolean, {description: `If set to 1, the "Name" field of the Related Entity will be included in this entity as a virtual field`})
7775
7773
  IncludeRelatedEntityNameFieldInBaseView: boolean;
7776
7774
 
7777
- @Field({nullable: true})
7775
+ @Field({nullable: true, description: `For foreign key fields, maps which field in the related entity contains the display name. This is used by CodeGen to automatically add in virtual fields for the "Name Field" of the related entity.`})
7778
7776
  @MaxLength(510)
7779
7777
  RelatedEntityNameFieldMap?: string;
7780
7778
 
@@ -8186,7 +8184,7 @@ export class Entity_ {
8186
8184
  @MaxLength(510)
8187
8185
  Name: string;
8188
8186
 
8189
- @Field({nullable: true})
8187
+ @Field({nullable: true, description: `Optional suffix appended to entity names for display purposes.`})
8190
8188
  @MaxLength(510)
8191
8189
  NameSuffix?: string;
8192
8190
 
@@ -8196,22 +8194,22 @@ export class Entity_ {
8196
8194
  @Field(() => Boolean, {description: `When set to 1 (default), whenever a description is modified in the underlying view (first choice) or table (second choice), the Description column in the entity definition will be automatically updated. If you never set metadata in the database directly, you can leave this alone. However, if you have metadata set in the database level for description, and you want to provide a DIFFERENT description in this entity definition, turn this bit off and then set the Description field and future CodeGen runs will NOT override the Description field here.`})
8197
8195
  AutoUpdateDescription: boolean;
8198
8196
 
8199
- @Field()
8197
+ @Field({description: `The underlying database table name for this entity.`})
8200
8198
  @MaxLength(510)
8201
8199
  BaseTable: string;
8202
8200
 
8203
- @Field()
8201
+ @Field({description: `The "wrapper" database view used for querying this entity with joins and computed fields.`})
8204
8202
  @MaxLength(510)
8205
8203
  BaseView: string;
8206
8204
 
8207
8205
  @Field(() => Boolean, {description: `When set to 0, CodeGen no longer generates a base view for the entity.`})
8208
8206
  BaseViewGenerated: boolean;
8209
8207
 
8210
- @Field()
8208
+ @Field({description: `Database schema containing this entity's table and view.`})
8211
8209
  @MaxLength(510)
8212
8210
  SchemaName: string;
8213
8211
 
8214
- @Field(() => Boolean)
8212
+ @Field(() => Boolean, {description: `Indicates if this is a virtual entity without a physical database table.`})
8215
8213
  VirtualEntity: boolean;
8216
8214
 
8217
8215
  @Field(() => Boolean, {description: `When set to 1, changes made via the MemberJunction architecture will result in tracking records being created in the RecordChange table. In addition, when turned on CodeGen will ensure that your table has two fields: __mj_CreatedAt and __mj_UpdatedAt which are special fields used in conjunction with the RecordChange table to track changes to rows in your entity.`})
@@ -8244,52 +8242,52 @@ export class Entity_ {
8244
8242
  @Field(() => Boolean, {description: `Enabling this bit will result in search being possible at the API and UI layers`})
8245
8243
  AllowUserSearchAPI: boolean;
8246
8244
 
8247
- @Field(() => Boolean)
8245
+ @Field(() => Boolean, {description: `Whether full-text search indexing is enabled for this entity.`})
8248
8246
  FullTextSearchEnabled: boolean;
8249
8247
 
8250
- @Field({nullable: true})
8248
+ @Field({nullable: true, description: `Name of the SQL Server full-text catalog if search is enabled.`})
8251
8249
  @MaxLength(510)
8252
8250
  FullTextCatalog?: string;
8253
8251
 
8254
- @Field(() => Boolean)
8252
+ @Field(() => Boolean, {description: `Indicates if the full-text catalog was auto-generated by CodeGen.`})
8255
8253
  FullTextCatalogGenerated: boolean;
8256
8254
 
8257
- @Field({nullable: true})
8255
+ @Field({nullable: true, description: `Name of the full-text index on this entity's table.`})
8258
8256
  @MaxLength(510)
8259
8257
  FullTextIndex?: string;
8260
8258
 
8261
- @Field(() => Boolean)
8259
+ @Field(() => Boolean, {description: `Indicates if the full-text index was auto-generated by CodeGen.`})
8262
8260
  FullTextIndexGenerated: boolean;
8263
8261
 
8264
- @Field({nullable: true})
8262
+ @Field({nullable: true, description: `Name of the function used for full-text searching this entity.`})
8265
8263
  @MaxLength(510)
8266
8264
  FullTextSearchFunction?: string;
8267
8265
 
8268
- @Field(() => Boolean)
8266
+ @Field(() => Boolean, {description: `Indicates if the search function was auto-generated by CodeGen.`})
8269
8267
  FullTextSearchFunctionGenerated: boolean;
8270
8268
 
8271
- @Field(() => Int, {nullable: true})
8269
+ @Field(() => Int, {nullable: true, description: `Maximum number of rows to return in user-created views for this entity.`})
8272
8270
  UserViewMaxRows?: number;
8273
8271
 
8274
- @Field({nullable: true})
8272
+ @Field({nullable: true, description: `Name of the stored procedure for creating records in this entity.`})
8275
8273
  @MaxLength(510)
8276
8274
  spCreate?: string;
8277
8275
 
8278
- @Field({nullable: true})
8276
+ @Field({nullable: true, description: `Name of the stored procedure for updating records in this entity.`})
8279
8277
  @MaxLength(510)
8280
8278
  spUpdate?: string;
8281
8279
 
8282
- @Field({nullable: true})
8280
+ @Field({nullable: true, description: `Name of the stored procedure for deleting records in this entity.`})
8283
8281
  @MaxLength(510)
8284
8282
  spDelete?: string;
8285
8283
 
8286
- @Field(() => Boolean)
8284
+ @Field(() => Boolean, {description: `Indicates if the create procedure was auto-generated by CodeGen.`})
8287
8285
  spCreateGenerated: boolean;
8288
8286
 
8289
- @Field(() => Boolean)
8287
+ @Field(() => Boolean, {description: `Indicates if the update procedure was auto-generated by CodeGen.`})
8290
8288
  spUpdateGenerated: boolean;
8291
8289
 
8292
- @Field(() => Boolean)
8290
+ @Field(() => Boolean, {description: `Indicates if the delete procedure was auto-generated by CodeGen.`})
8293
8291
  spDeleteGenerated: boolean;
8294
8292
 
8295
8293
  @Field(() => Boolean, {description: `When set to 1, the deleted spDelete will pre-process deletion to related entities that have 1:M cardinality with this entity. This does not have effect if spDeleteGenerated = 0`})
@@ -8310,14 +8308,14 @@ export class Entity_ {
8310
8308
  @MaxLength(40)
8311
8309
  RelationshipDefaultDisplayType: string;
8312
8310
 
8313
- @Field(() => Boolean)
8311
+ @Field(() => Boolean, {description: `Indicates if the default user form was auto-generated for this entity.`})
8314
8312
  UserFormGenerated: boolean;
8315
8313
 
8316
- @Field({nullable: true})
8314
+ @Field({nullable: true, description: `TypeScript class name for the entity subclass in the codebase.`})
8317
8315
  @MaxLength(510)
8318
8316
  EntityObjectSubclassName?: string;
8319
8317
 
8320
- @Field({nullable: true})
8318
+ @Field({nullable: true, description: `Import path for the entity subclass in the TypeScript codebase.`})
8321
8319
  @MaxLength(510)
8322
8320
  EntityObjectSubclassImport?: string;
8323
8321
 
@@ -9310,15 +9308,15 @@ export class User_ {
9310
9308
  @MaxLength(200)
9311
9309
  Name: string;
9312
9310
 
9313
- @Field({nullable: true})
9311
+ @Field({nullable: true, description: `User's first name or given name.`})
9314
9312
  @MaxLength(100)
9315
9313
  FirstName?: string;
9316
9314
 
9317
- @Field({nullable: true})
9315
+ @Field({nullable: true, description: `User's last name or surname.`})
9318
9316
  @MaxLength(100)
9319
9317
  LastName?: string;
9320
9318
 
9321
- @Field({nullable: true})
9319
+ @Field({nullable: true, description: `User's professional title or salutation.`})
9322
9320
  @MaxLength(100)
9323
9321
  Title?: string;
9324
9322
 
@@ -9326,14 +9324,14 @@ export class User_ {
9326
9324
  @MaxLength(200)
9327
9325
  Email: string;
9328
9326
 
9329
- @Field()
9327
+ @Field({description: `User account type (User, Guest, System, API).`})
9330
9328
  @MaxLength(30)
9331
9329
  Type: string;
9332
9330
 
9333
- @Field(() => Boolean)
9331
+ @Field(() => Boolean, {description: `Whether this user account is currently active and can log in.`})
9334
9332
  IsActive: boolean;
9335
9333
 
9336
- @Field()
9334
+ @Field({description: `Type of record this user is linked to (None, Employee, Contact, etc.).`})
9337
9335
  @MaxLength(20)
9338
9336
  LinkedRecordType: string;
9339
9337
 
@@ -9341,7 +9339,7 @@ export class User_ {
9341
9339
  @MaxLength(16)
9342
9340
  LinkedEntityID?: string;
9343
9341
 
9344
- @Field({nullable: true})
9342
+ @Field({nullable: true, description: `ID of the specific record this user is linked to.`})
9345
9343
  @MaxLength(900)
9346
9344
  LinkedEntityRecordID?: string;
9347
9345
 
@@ -10133,40 +10131,40 @@ export class EntityRelationship_ {
10133
10131
  @MaxLength(16)
10134
10132
  RelatedEntityID: string;
10135
10133
 
10136
- @Field(() => Boolean)
10134
+ @Field(() => Boolean, {description: `Whether to include related records when fetching the parent entity via API.`})
10137
10135
  BundleInAPI: boolean;
10138
10136
 
10139
- @Field(() => Boolean)
10137
+ @Field(() => Boolean, {description: `Whether to include this relationship when querying all fields of the parent entity.`})
10140
10138
  IncludeInParentAllQuery: boolean;
10141
10139
 
10142
- @Field()
10140
+ @Field({description: `The cardinality of the relationship (One To Many, Many To Many, One To One).`})
10143
10141
  @MaxLength(40)
10144
10142
  Type: string;
10145
10143
 
10146
- @Field({nullable: true})
10144
+ @Field({nullable: true, description: `The primary key field of the parent entity in this relationship.`})
10147
10145
  @MaxLength(510)
10148
10146
  EntityKeyField?: string;
10149
10147
 
10150
- @Field()
10148
+ @Field({description: `The foreign key field in the related entity that references the parent.`})
10151
10149
  @MaxLength(510)
10152
10150
  RelatedEntityJoinField: string;
10153
10151
 
10154
- @Field({nullable: true})
10152
+ @Field({nullable: true, description: `For many-to-many relationships, the view containing the junction data.`})
10155
10153
  @MaxLength(510)
10156
10154
  JoinView?: string;
10157
10155
 
10158
- @Field({nullable: true})
10156
+ @Field({nullable: true, description: `For many-to-many, the field in the junction table linking to the parent entity.`})
10159
10157
  @MaxLength(510)
10160
10158
  JoinEntityJoinField?: string;
10161
10159
 
10162
- @Field({nullable: true})
10160
+ @Field({nullable: true, description: `For many-to-many, the field in the junction table linking to the related entity.`})
10163
10161
  @MaxLength(510)
10164
10162
  JoinEntityInverseJoinField?: string;
10165
10163
 
10166
10164
  @Field(() => Boolean, {description: `When unchecked the relationship will NOT be displayed on the generated form`})
10167
10165
  DisplayInForm: boolean;
10168
10166
 
10169
- @Field()
10167
+ @Field({description: `Where to display this relationship in the UI relative to other entity elements.`})
10170
10168
  @MaxLength(100)
10171
10169
  DisplayLocation: string;
10172
10170
 
@@ -10478,7 +10476,7 @@ export class EntityRelationshipResolver extends ResolverBase {
10478
10476
  //****************************************************************************
10479
10477
  // ENTITY CLASS for User Record Logs
10480
10478
  //****************************************************************************
10481
- @ObjectType()
10479
+ @ObjectType({ description: `Tracks user interactions with specific records, maintaining an audit trail of views or other operations. Changes are managed separately in the Record Changes entity.` })
10482
10480
  export class UserRecordLog_ {
10483
10481
  @Field()
10484
10482
  @MaxLength(16)
@@ -10492,19 +10490,19 @@ export class UserRecordLog_ {
10492
10490
  @MaxLength(16)
10493
10491
  EntityID: string;
10494
10492
 
10495
- @Field()
10493
+ @Field({description: `The ID of the accessed record.`})
10496
10494
  @MaxLength(900)
10497
10495
  RecordID: string;
10498
10496
 
10499
- @Field()
10497
+ @Field({description: `Field EarliestAt for entity User Record Logs.`})
10500
10498
  @MaxLength(8)
10501
10499
  EarliestAt: Date;
10502
10500
 
10503
- @Field()
10501
+ @Field({description: `Field LatestAt for entity User Record Logs.`})
10504
10502
  @MaxLength(8)
10505
10503
  LatestAt: Date;
10506
10504
 
10507
- @Field(() => Int)
10505
+ @Field(() => Int, {description: `Field TotalCount for entity User Record Logs.`})
10508
10506
  TotalCount: number;
10509
10507
 
10510
10508
  @Field()
@@ -10713,40 +10711,40 @@ export class UserView_ {
10713
10711
  @MaxLength(16)
10714
10712
  CategoryID?: string;
10715
10713
 
10716
- @Field(() => Boolean)
10714
+ @Field(() => Boolean, {description: `Whether this view is shared with other users.`})
10717
10715
  IsShared: boolean;
10718
10716
 
10719
- @Field(() => Boolean)
10717
+ @Field(() => Boolean, {description: `Whether this is the user's default view for the entity.`})
10720
10718
  IsDefault: boolean;
10721
10719
 
10722
- @Field({nullable: true})
10720
+ @Field({nullable: true, description: `JSON storing complete grid configuration including columns, widths, and formatting.`})
10723
10721
  GridState?: string;
10724
10722
 
10725
- @Field({nullable: true})
10723
+ @Field({nullable: true, description: `JSON storing the view's filter configuration.`})
10726
10724
  FilterState?: string;
10727
10725
 
10728
- @Field(() => Boolean)
10726
+ @Field(() => Boolean, {description: `Indicates if custom filters beyond standard options are applied.`})
10729
10727
  CustomFilterState: boolean;
10730
10728
 
10731
- @Field(() => Boolean)
10729
+ @Field(() => Boolean, {description: `Whether AI-powered smart filtering is enabled for this view.`})
10732
10730
  SmartFilterEnabled: boolean;
10733
10731
 
10734
- @Field({nullable: true})
10732
+ @Field({nullable: true, description: `Natural language prompt for AI-powered filtering.`})
10735
10733
  SmartFilterPrompt?: string;
10736
10734
 
10737
- @Field({nullable: true})
10735
+ @Field({nullable: true, description: `Generated WHERE clause from smart filter processing.`})
10738
10736
  SmartFilterWhereClause?: string;
10739
10737
 
10740
- @Field({nullable: true})
10738
+ @Field({nullable: true, description: `AI-generated explanation of what the smart filter does.`})
10741
10739
  SmartFilterExplanation?: string;
10742
10740
 
10743
- @Field({nullable: true})
10741
+ @Field({nullable: true, description: `Direct SQL WHERE clause for the view filter.`})
10744
10742
  WhereClause?: string;
10745
10743
 
10746
- @Field(() => Boolean)
10744
+ @Field(() => Boolean, {description: `Indicates if a custom WHERE clause is used instead of standard filters.`})
10747
10745
  CustomWhereClause: boolean;
10748
10746
 
10749
- @Field({nullable: true})
10747
+ @Field({nullable: true, description: `JSON storing the view's sort configuration.`})
10750
10748
  SortState?: string;
10751
10749
 
10752
10750
  @Field()
@@ -11054,7 +11052,7 @@ export class UserViewResolverBase extends ResolverBase {
11054
11052
  //****************************************************************************
11055
11053
  // ENTITY CLASS for Company Integration Runs
11056
11054
  //****************************************************************************
11057
- @ObjectType()
11055
+ @ObjectType({ description: `Records execution history of company integrations, including start/end times, overall status, and aggregate statistics for monitoring and troubleshooting.` })
11058
11056
  export class CompanyIntegrationRun_ {
11059
11057
  @Field()
11060
11058
  @MaxLength(16)
@@ -11076,7 +11074,7 @@ export class CompanyIntegrationRun_ {
11076
11074
  @MaxLength(8)
11077
11075
  EndedAt?: Date;
11078
11076
 
11079
- @Field(() => Int)
11077
+ @Field(() => Int, {description: `The total number of records processed during this integration run.`})
11080
11078
  TotalRecords: number;
11081
11079
 
11082
11080
  @Field({nullable: true})
@@ -11318,7 +11316,7 @@ export class CompanyIntegrationRunResolver extends ResolverBase {
11318
11316
  //****************************************************************************
11319
11317
  // ENTITY CLASS for Company Integration Run Details
11320
11318
  //****************************************************************************
11321
- @ObjectType()
11319
+ @ObjectType({ description: `Tracks individual record-level operations within an integration run, including success/failure status and error details for each processed item.` })
11322
11320
  export class CompanyIntegrationRunDetail_ {
11323
11321
  @Field()
11324
11322
  @MaxLength(16)
@@ -11332,19 +11330,19 @@ export class CompanyIntegrationRunDetail_ {
11332
11330
  @MaxLength(16)
11333
11331
  EntityID: string;
11334
11332
 
11335
- @Field()
11333
+ @Field({description: `The ID of the specific record being processed in this integration operation.`})
11336
11334
  @MaxLength(900)
11337
11335
  RecordID: string;
11338
11336
 
11339
- @Field()
11337
+ @Field({description: `The type of operation performed (INSERT, UPDATE, DELETE, SYNC).`})
11340
11338
  @MaxLength(40)
11341
11339
  Action: string;
11342
11340
 
11343
- @Field()
11341
+ @Field({description: `Timestamp when this specific record operation was executed.`})
11344
11342
  @MaxLength(8)
11345
11343
  ExecutedAt: Date;
11346
11344
 
11347
- @Field(() => Boolean)
11345
+ @Field(() => Boolean, {description: `Indicates whether this individual record operation succeeded or failed.`})
11348
11346
  IsSuccess: boolean;
11349
11347
 
11350
11348
  @Field()
@@ -11529,7 +11527,7 @@ export class CompanyIntegrationRunDetailResolver extends ResolverBase {
11529
11527
  //****************************************************************************
11530
11528
  // ENTITY CLASS for Error Logs
11531
11529
  //****************************************************************************
11532
- @ObjectType()
11530
+ @ObjectType({ description: `Captures system errors, exceptions, and failures with stack traces, context, and debugging info.` })
11533
11531
  export class ErrorLog_ {
11534
11532
  @Field()
11535
11533
  @MaxLength(16)
@@ -11543,14 +11541,14 @@ export class ErrorLog_ {
11543
11541
  @MaxLength(16)
11544
11542
  CompanyIntegrationRunDetailID?: string;
11545
11543
 
11546
- @Field({nullable: true})
11544
+ @Field({nullable: true, description: `Error code for categorizing and handling specific error types.`})
11547
11545
  @MaxLength(40)
11548
11546
  Code?: string;
11549
11547
 
11550
- @Field({nullable: true})
11548
+ @Field({nullable: true, description: `The primary error message describing what went wrong.`})
11551
11549
  Message?: string;
11552
11550
 
11553
- @Field({nullable: true})
11551
+ @Field({nullable: true, description: `User or system process that encountered this error.`})
11554
11552
  @MaxLength(100)
11555
11553
  CreatedBy?: string;
11556
11554
 
@@ -11558,11 +11556,11 @@ export class ErrorLog_ {
11558
11556
  @MaxLength(20)
11559
11557
  Status?: string;
11560
11558
 
11561
- @Field({nullable: true})
11559
+ @Field({nullable: true, description: `High-level category for grouping related errors (Database, API, Validation, etc.).`})
11562
11560
  @MaxLength(40)
11563
11561
  Category?: string;
11564
11562
 
11565
- @Field({nullable: true})
11563
+ @Field({nullable: true, description: `Full error details including stack trace, inner exceptions, and context data.`})
11566
11564
  Details?: string;
11567
11565
 
11568
11566
  @Field()
@@ -11997,7 +11995,7 @@ export class ApplicationEntity_ {
11997
11995
  @MaxLength(16)
11998
11996
  EntityID: string;
11999
11997
 
12000
- @Field(() => Int)
11998
+ @Field(() => Int, {description: `Display order of this entity within the application, lower numbers appear first in navigation and menus.`})
12001
11999
  Sequence: number;
12002
12000
 
12003
12001
  @Field(() => Boolean, {description: `When set to 1, the entity will be included by default for a new user when they first access the application in question`})
@@ -12183,16 +12181,16 @@ export class EntityPermission_ {
12183
12181
  @MaxLength(16)
12184
12182
  RoleID: string;
12185
12183
 
12186
- @Field(() => Boolean)
12184
+ @Field(() => Boolean, {description: `Whether the role/user can create new records in this entity.`})
12187
12185
  CanCreate: boolean;
12188
12186
 
12189
- @Field(() => Boolean)
12187
+ @Field(() => Boolean, {description: `Whether the role/user can read/view records in this entity.`})
12190
12188
  CanRead: boolean;
12191
12189
 
12192
- @Field(() => Boolean)
12190
+ @Field(() => Boolean, {description: `Whether the role/user can update existing records in this entity.`})
12193
12191
  CanUpdate: boolean;
12194
12192
 
12195
- @Field(() => Boolean)
12193
+ @Field(() => Boolean, {description: `Whether the role/user can delete records from this entity.`})
12196
12194
  CanDelete: boolean;
12197
12195
 
12198
12196
  @Field({nullable: true})
@@ -12430,7 +12428,7 @@ export class EntityPermissionResolver extends ResolverBase {
12430
12428
  //****************************************************************************
12431
12429
  // ENTITY CLASS for User Application Entities
12432
12430
  //****************************************************************************
12433
- @ObjectType()
12431
+ @ObjectType({ description: `Links users to specific entities within applications, managing entity-level personalization.` })
12434
12432
  export class UserApplicationEntity_ {
12435
12433
  @Field()
12436
12434
  @MaxLength(16)
@@ -12444,7 +12442,7 @@ export class UserApplicationEntity_ {
12444
12442
  @MaxLength(16)
12445
12443
  EntityID: string;
12446
12444
 
12447
- @Field(() => Int)
12445
+ @Field(() => Int, {description: `Display order of this entity for the user within the application.`})
12448
12446
  Sequence: number;
12449
12447
 
12450
12448
  @Field()
@@ -12598,7 +12596,7 @@ export class UserApplicationEntityResolver extends ResolverBase {
12598
12596
  //****************************************************************************
12599
12597
  // ENTITY CLASS for User Applications
12600
12598
  //****************************************************************************
12601
- @ObjectType()
12599
+ @ObjectType({ description: `Tracks which applications users have configured to display.` })
12602
12600
  export class UserApplication_ {
12603
12601
  @Field()
12604
12602
  @MaxLength(16)
@@ -12612,10 +12610,10 @@ export class UserApplication_ {
12612
12610
  @MaxLength(16)
12613
12611
  ApplicationID: string;
12614
12612
 
12615
- @Field(() => Int)
12613
+ @Field(() => Int, {description: `Display order of this application in the user's navigation.`})
12616
12614
  Sequence: number;
12617
12615
 
12618
- @Field(() => Boolean)
12616
+ @Field(() => Boolean, {description: `Whether this application is currently visible to the user.`})
12619
12617
  IsActive: boolean;
12620
12618
 
12621
12619
  @Field()
@@ -12784,7 +12782,7 @@ export class UserApplicationResolver extends ResolverBase {
12784
12782
  //****************************************************************************
12785
12783
  // ENTITY CLASS for Company Integration Run API Logs
12786
12784
  //****************************************************************************
12787
- @ObjectType()
12785
+ @ObjectType({ description: `Logs detailed API calls and responses during integration runs, including request/response payloads, status codes, and timing information.` })
12788
12786
  export class CompanyIntegrationRunAPILog_ {
12789
12787
  @Field()
12790
12788
  @MaxLength(16)
@@ -12794,21 +12792,21 @@ export class CompanyIntegrationRunAPILog_ {
12794
12792
  @MaxLength(16)
12795
12793
  CompanyIntegrationRunID: string;
12796
12794
 
12797
- @Field()
12795
+ @Field({description: `Timestamp when this API call was executed during the integration run.`})
12798
12796
  @MaxLength(8)
12799
12797
  ExecutedAt: Date;
12800
12798
 
12801
- @Field(() => Boolean)
12799
+ @Field(() => Boolean, {description: `Indicates whether the API call completed successfully or encountered an error.`})
12802
12800
  IsSuccess: boolean;
12803
12801
 
12804
- @Field({nullable: true})
12802
+ @Field({nullable: true, description: `HTTP method used for the API call (GET, POST, PUT, DELETE, PATCH).`})
12805
12803
  @MaxLength(24)
12806
12804
  RequestMethod?: string;
12807
12805
 
12808
- @Field({nullable: true})
12806
+ @Field({nullable: true, description: `The complete URL that was called, including query parameters.`})
12809
12807
  URL?: string;
12810
12808
 
12811
- @Field({nullable: true})
12809
+ @Field({nullable: true, description: `JSON-formatted request body or parameters sent with the API call.`})
12812
12810
  Parameters?: string;
12813
12811
 
12814
12812
  @Field()
@@ -12993,7 +12991,7 @@ export class List_ {
12993
12991
  @MaxLength(16)
12994
12992
  CategoryID?: string;
12995
12993
 
12996
- @Field({nullable: true})
12994
+ @Field({nullable: true, description: `Identifier for this list in an external system, used for synchronization.`})
12997
12995
  @MaxLength(200)
12998
12996
  ExternalSystemRecordID?: string;
12999
12997
 
@@ -13216,11 +13214,11 @@ export class ListDetail_ {
13216
13214
  @MaxLength(16)
13217
13215
  ListID: string;
13218
13216
 
13219
- @Field()
13217
+ @Field({description: `The ID of the record included in this list.`})
13220
13218
  @MaxLength(890)
13221
13219
  RecordID: string;
13222
13220
 
13223
- @Field(() => Int)
13221
+ @Field(() => Int, {description: `Order of this record within the list, for maintaining user-defined sorting.`})
13224
13222
  Sequence: number;
13225
13223
 
13226
13224
  @Field()
@@ -13395,7 +13393,7 @@ export class UserViewRun_ {
13395
13393
  @MaxLength(16)
13396
13394
  UserViewID: string;
13397
13395
 
13398
- @Field()
13396
+ @Field({description: `Timestamp when the view was executed.`})
13399
13397
  @MaxLength(8)
13400
13398
  RunAt: Date;
13401
13399
 
@@ -13573,7 +13571,7 @@ export class UserViewRunDetail_ {
13573
13571
  @MaxLength(16)
13574
13572
  UserViewRunID: string;
13575
13573
 
13576
- @Field()
13574
+ @Field({description: `Field RecordID for entity User View Run Details.`})
13577
13575
  @MaxLength(900)
13578
13576
  RecordID: string;
13579
13577
 
@@ -13718,7 +13716,7 @@ export class UserViewRunDetailResolver extends ResolverBase {
13718
13716
  //****************************************************************************
13719
13717
  // ENTITY CLASS for Workflow Runs
13720
13718
  //****************************************************************************
13721
- @ObjectType()
13719
+ @ObjectType({ description: `Tracks execution instances of workflows including status, timing, context data, and detailed step-by-step results.` })
13722
13720
  export class WorkflowRun_ {
13723
13721
  @Field()
13724
13722
  @MaxLength(16)
@@ -13728,7 +13726,7 @@ export class WorkflowRun_ {
13728
13726
  @MaxLength(16)
13729
13727
  WorkflowID: string;
13730
13728
 
13731
- @Field()
13729
+ @Field({description: `Field ExternalSystemRecordID for entity Workflow Runs.`})
13732
13730
  @MaxLength(1000)
13733
13731
  ExternalSystemRecordID: string;
13734
13732
 
@@ -13744,7 +13742,7 @@ export class WorkflowRun_ {
13744
13742
  @MaxLength(20)
13745
13743
  Status: string;
13746
13744
 
13747
- @Field({nullable: true})
13745
+ @Field({nullable: true, description: `JSON-formatted detailed results from the workflow execution, including outputs from each step and any error information.`})
13748
13746
  Results?: string;
13749
13747
 
13750
13748
  @Field()
@@ -13912,7 +13910,7 @@ export class WorkflowRunResolver extends ResolverBase {
13912
13910
  //****************************************************************************
13913
13911
  // ENTITY CLASS for Workflows
13914
13912
  //****************************************************************************
13915
- @ObjectType()
13913
+ @ObjectType({ description: `Defines automated workflows with steps, conditions, and actions for orchestrating complex business processes.` })
13916
13914
  export class Workflow_ {
13917
13915
  @Field()
13918
13916
  @MaxLength(16)
@@ -13929,7 +13927,7 @@ export class Workflow_ {
13929
13927
  @MaxLength(16)
13930
13928
  WorkflowEngineID: string;
13931
13929
 
13932
- @Field()
13930
+ @Field({description: `The unique identifier of this workflow in an external system, used for synchronization with external workflow engines.`})
13933
13931
  @MaxLength(200)
13934
13932
  ExternalSystemRecordID: string;
13935
13933
 
@@ -14145,7 +14143,7 @@ export class WorkflowResolver extends ResolverBase {
14145
14143
  //****************************************************************************
14146
14144
  // ENTITY CLASS for Workflow Engines
14147
14145
  //****************************************************************************
14148
- @ObjectType()
14146
+ @ObjectType({ description: `Registers available workflow execution engines with their capabilities, configuration, and supported workflow types.` })
14149
14147
  export class WorkflowEngine_ {
14150
14148
  @Field()
14151
14149
  @MaxLength(16)
@@ -14158,11 +14156,11 @@ export class WorkflowEngine_ {
14158
14156
  @Field({nullable: true})
14159
14157
  Description?: string;
14160
14158
 
14161
- @Field()
14159
+ @Field({description: `Import path for the workflow engine driver.`})
14162
14160
  @MaxLength(1000)
14163
14161
  DriverPath: string;
14164
14162
 
14165
- @Field()
14163
+ @Field({description: `Class name implementing the workflow engine interface.`})
14166
14164
  @MaxLength(200)
14167
14165
  DriverClass: string;
14168
14166
 
@@ -14334,7 +14332,7 @@ export class RecordChange_ {
14334
14332
  @MaxLength(16)
14335
14333
  EntityID: string;
14336
14334
 
14337
- @Field()
14335
+ @Field({description: `Field RecordID for entity Record Changes.`})
14338
14336
  @MaxLength(1500)
14339
14337
  RecordID: string;
14340
14338
 
@@ -14367,7 +14365,7 @@ export class RecordChange_ {
14367
14365
  @MaxLength(100)
14368
14366
  Status: string;
14369
14367
 
14370
- @Field({nullable: true})
14368
+ @Field({nullable: true, description: `Field ErrorLog for entity Record Changes.`})
14371
14369
  ErrorLog?: string;
14372
14370
 
14373
14371
  @Field({nullable: true})
@@ -14381,11 +14379,11 @@ export class RecordChange_ {
14381
14379
  @Field({nullable: true})
14382
14380
  Comments?: string;
14383
14381
 
14384
- @Field()
14382
+ @Field({description: `Field CreatedAt for entity Record Changes.`})
14385
14383
  @MaxLength(10)
14386
14384
  CreatedAt: Date;
14387
14385
 
14388
- @Field()
14386
+ @Field({description: `Field UpdatedAt for entity Record Changes.`})
14389
14387
  @MaxLength(10)
14390
14388
  UpdatedAt: Date;
14391
14389
 
@@ -14598,7 +14596,7 @@ export class RecordChangeResolver extends ResolverBase {
14598
14596
  //****************************************************************************
14599
14597
  // ENTITY CLASS for User Roles
14600
14598
  //****************************************************************************
14601
- @ObjectType()
14599
+ @ObjectType({ description: `Associates users with roles in the system, managing role-based access control and permission inheritance.` })
14602
14600
  export class UserRole_ {
14603
14601
  @Field()
14604
14602
  @MaxLength(16)
@@ -14763,7 +14761,7 @@ export class UserRoleResolver extends ResolverBase {
14763
14761
  //****************************************************************************
14764
14762
  // ENTITY CLASS for Row Level Security Filters
14765
14763
  //****************************************************************************
14766
- @ObjectType()
14764
+ @ObjectType({ description: `Defines data access rules that filter records based on user context, implementing fine-grained security at the row level.` })
14767
14765
  export class RowLevelSecurityFilter_ {
14768
14766
  @Field()
14769
14767
  @MaxLength(16)
@@ -14776,7 +14774,7 @@ export class RowLevelSecurityFilter_ {
14776
14774
  @Field({nullable: true})
14777
14775
  Description?: string;
14778
14776
 
14779
- @Field({nullable: true})
14777
+ @Field({nullable: true, description: `SQL WHERE clause template that filters records based on user context variables.`})
14780
14778
  FilterText?: string;
14781
14779
 
14782
14780
  @Field()
@@ -14941,7 +14939,7 @@ export class RowLevelSecurityFilterResolver extends ResolverBase {
14941
14939
  //****************************************************************************
14942
14940
  // ENTITY CLASS for Audit Logs
14943
14941
  //****************************************************************************
14944
- @ObjectType()
14942
+ @ObjectType({ description: `Tracks system events and user actions for security, compliance, and debugging purposes, providing a complete audit trail. Any application can write entries to this entity.` })
14945
14943
  export class AuditLog_ {
14946
14944
  @Field()
14947
14945
  @MaxLength(16)
@@ -14966,14 +14964,14 @@ export class AuditLog_ {
14966
14964
  @Field({nullable: true})
14967
14965
  Description?: string;
14968
14966
 
14969
- @Field({nullable: true})
14967
+ @Field({nullable: true, description: `JSON-formatted additional context about the audited event, including before/after values, parameters, or other relevant data.`})
14970
14968
  Details?: string;
14971
14969
 
14972
14970
  @Field({nullable: true})
14973
14971
  @MaxLength(16)
14974
14972
  EntityID?: string;
14975
14973
 
14976
- @Field({nullable: true})
14974
+ @Field({nullable: true, description: `The primary key value of the record that was affected by this audited action, enabling direct lookup of the modified data.`})
14977
14975
  @MaxLength(900)
14978
14976
  RecordID?: string;
14979
14977
 
@@ -15162,7 +15160,7 @@ export class AuditLogResolver extends ResolverBase {
15162
15160
  //****************************************************************************
15163
15161
  // ENTITY CLASS for Authorizations
15164
15162
  //****************************************************************************
15165
- @ObjectType()
15163
+ @ObjectType({ description: `Stores the fundamental permissions and access rights that can be granted to users and roles throughout the system.` })
15166
15164
  export class Authorization_ {
15167
15165
  @Field()
15168
15166
  @MaxLength(16)
@@ -15176,7 +15174,7 @@ export class Authorization_ {
15176
15174
  @MaxLength(200)
15177
15175
  Name: string;
15178
15176
 
15179
- @Field(() => Boolean)
15177
+ @Field(() => Boolean, {description: `Indicates whether this authorization is currently active and can be granted to users or roles.`})
15180
15178
  IsActive: boolean;
15181
15179
 
15182
15180
  @Field(() => Boolean, {description: `When set to 1, Audit Log records are created whenever this authorization is invoked for a user`})
@@ -15415,7 +15413,7 @@ export class AuthorizationResolver extends ResolverBase {
15415
15413
  //****************************************************************************
15416
15414
  // ENTITY CLASS for Authorization Roles
15417
15415
  //****************************************************************************
15418
- @ObjectType()
15416
+ @ObjectType({ description: `Links authorizations to roles, defining which permissions are granted to users assigned to specific roles in the system.` })
15419
15417
  export class AuthorizationRole_ {
15420
15418
  @Field()
15421
15419
  @MaxLength(16)
@@ -15429,7 +15427,7 @@ export class AuthorizationRole_ {
15429
15427
  @MaxLength(16)
15430
15428
  RoleID: string;
15431
15429
 
15432
- @Field()
15430
+ @Field({description: `Specifies whether this authorization is granted to ('grant') or explicitly denied ('deny') for the role.`})
15433
15431
  @MaxLength(20)
15434
15432
  Type: string;
15435
15433
 
@@ -15590,7 +15588,7 @@ export class AuthorizationRoleResolver extends ResolverBase {
15590
15588
  //****************************************************************************
15591
15589
  // ENTITY CLASS for Audit Log Types
15592
15590
  //****************************************************************************
15593
- @ObjectType()
15591
+ @ObjectType({ description: `Defines the types of events that can be recorded in the audit log, enabling categorization and filtering of system activities.` })
15594
15592
  export class AuditLogType_ {
15595
15593
  @Field()
15596
15594
  @MaxLength(16)
@@ -15800,7 +15798,7 @@ export class AuditLogTypeResolver extends ResolverBase {
15800
15798
  //****************************************************************************
15801
15799
  // ENTITY CLASS for Entity Field Values
15802
15800
  //****************************************************************************
15803
- @ObjectType()
15801
+ @ObjectType({ description: `Defines allowed values for entity fields with value lists, supporting dropdowns, validations, and data integrity constraints. MJ CodeGen automatically maintains this for columns that have CHECK constraints with IN lists such as "Status IN (A, B, C)"` })
15804
15802
  export class EntityFieldValue_ {
15805
15803
  @Field()
15806
15804
  @MaxLength(16)
@@ -15810,14 +15808,14 @@ export class EntityFieldValue_ {
15810
15808
  @MaxLength(16)
15811
15809
  EntityFieldID: string;
15812
15810
 
15813
- @Field(() => Int)
15811
+ @Field(() => Int, {description: `Display order for this value in dropdown lists and UI elements.`})
15814
15812
  Sequence: number;
15815
15813
 
15816
- @Field()
15814
+ @Field({description: `The actual value stored in the database for this option.`})
15817
15815
  @MaxLength(510)
15818
15816
  Value: string;
15819
15817
 
15820
- @Field({nullable: true})
15818
+ @Field({nullable: true, description: `Optional code identifier for this value, useful for programmatic access. If not specified, same as Value`})
15821
15819
  @MaxLength(100)
15822
15820
  Code?: string;
15823
15821
 
@@ -16017,7 +16015,7 @@ export class AIModel_ {
16017
16015
  @Field(() => Int, {nullable: true, description: `Optional column that ranks the power of the AI model. Default is 0 and should be non-negative.`})
16018
16016
  PowerRank?: number;
16019
16017
 
16020
- @Field(() => Boolean)
16018
+ @Field(() => Boolean, {description: `Controls whether this AI model is available for use in the system.`})
16021
16019
  IsActive: boolean;
16022
16020
 
16023
16021
  @Field()
@@ -16420,14 +16418,14 @@ export class AIAction_ {
16420
16418
  @Field({nullable: true})
16421
16419
  Description?: string;
16422
16420
 
16423
- @Field({nullable: true})
16421
+ @Field({nullable: true, description: `The standard prompt template used when invoking this AI action, can include placeholders for dynamic values.`})
16424
16422
  DefaultPrompt?: string;
16425
16423
 
16426
16424
  @Field({nullable: true})
16427
16425
  @MaxLength(16)
16428
16426
  DefaultModelID?: string;
16429
16427
 
16430
- @Field(() => Boolean)
16428
+ @Field(() => Boolean, {description: `Controls whether this AI action is currently available for use across the system.`})
16431
16429
  IsActive: boolean;
16432
16430
 
16433
16431
  @Field()
@@ -16635,7 +16633,7 @@ export class AIModelAction_ {
16635
16633
  @MaxLength(16)
16636
16634
  AIActionID: string;
16637
16635
 
16638
- @Field(() => Boolean)
16636
+ @Field(() => Boolean, {description: `Determines if this specific action is currently enabled for the associated AI model.`})
16639
16637
  IsActive: boolean;
16640
16638
 
16641
16639
  @Field()
@@ -16817,25 +16815,25 @@ export class EntityAIAction_ {
16817
16815
  @MaxLength(510)
16818
16816
  Name: string;
16819
16817
 
16820
- @Field({nullable: true})
16818
+ @Field({nullable: true, description: `The AI prompt template used when this action is triggered by entity changes.`})
16821
16819
  Prompt?: string;
16822
16820
 
16823
- @Field()
16821
+ @Field({description: `The entity event that triggers this AI action (After Save, Before Delete, etc.).`})
16824
16822
  @MaxLength(30)
16825
16823
  TriggerEvent: string;
16826
16824
 
16827
- @Field()
16825
+ @Field({description: `Message shown to users when this AI action is executed.`})
16828
16826
  UserMessage: string;
16829
16827
 
16830
- @Field()
16828
+ @Field({description: `Where the AI output should be stored (Field, Message, File).`})
16831
16829
  @MaxLength(20)
16832
16830
  OutputType: string;
16833
16831
 
16834
- @Field({nullable: true})
16832
+ @Field({nullable: true, description: `The field name where AI output should be stored if OutputType is Field.`})
16835
16833
  @MaxLength(100)
16836
16834
  OutputField?: string;
16837
16835
 
16838
- @Field(() => Boolean)
16836
+ @Field(() => Boolean, {description: `Whether to skip AI processing if the output field already contains data.`})
16839
16837
  SkipIfOutputFieldNotEmpty: boolean;
16840
16838
 
16841
16839
  @Field({nullable: true})
@@ -17246,7 +17244,7 @@ export class AIModelTypeResolver extends ResolverBase {
17246
17244
  //****************************************************************************
17247
17245
  // ENTITY CLASS for Queue Types
17248
17246
  //****************************************************************************
17249
- @ObjectType()
17247
+ @ObjectType({ description: `Defines different types of processing queues with specific behaviors, priorities, and processing rules for task management.` })
17250
17248
  export class QueueType_ {
17251
17249
  @Field()
17252
17250
  @MaxLength(16)
@@ -17259,15 +17257,15 @@ export class QueueType_ {
17259
17257
  @Field({nullable: true})
17260
17258
  Description?: string;
17261
17259
 
17262
- @Field()
17260
+ @Field({description: `Field DriverClass for entity Queue Types.`})
17263
17261
  @MaxLength(200)
17264
17262
  DriverClass: string;
17265
17263
 
17266
- @Field({nullable: true})
17264
+ @Field({nullable: true, description: `Field DriverImportPath for entity Queue Types.`})
17267
17265
  @MaxLength(400)
17268
17266
  DriverImportPath?: string;
17269
17267
 
17270
- @Field(() => Boolean)
17268
+ @Field(() => Boolean, {description: `Field IsActive for entity Queue Types.`})
17271
17269
  IsActive: boolean;
17272
17270
 
17273
17271
  @Field()
@@ -17451,53 +17449,53 @@ export class Queue_ {
17451
17449
  @MaxLength(16)
17452
17450
  QueueTypeID: string;
17453
17451
 
17454
- @Field(() => Boolean)
17452
+ @Field(() => Boolean, {description: `Field IsActive for entity Queues.`})
17455
17453
  IsActive: boolean;
17456
17454
 
17457
- @Field(() => Int, {nullable: true})
17455
+ @Field(() => Int, {nullable: true, description: `Field ProcessPID for entity Queues.`})
17458
17456
  ProcessPID?: number;
17459
17457
 
17460
- @Field({nullable: true})
17458
+ @Field({nullable: true, description: `Field ProcessPlatform for entity Queues.`})
17461
17459
  @MaxLength(60)
17462
17460
  ProcessPlatform?: string;
17463
17461
 
17464
- @Field({nullable: true})
17462
+ @Field({nullable: true, description: `Field ProcessVersion for entity Queues.`})
17465
17463
  @MaxLength(30)
17466
17464
  ProcessVersion?: string;
17467
17465
 
17468
- @Field({nullable: true})
17466
+ @Field({nullable: true, description: `Field ProcessCwd for entity Queues.`})
17469
17467
  @MaxLength(200)
17470
17468
  ProcessCwd?: string;
17471
17469
 
17472
- @Field({nullable: true})
17470
+ @Field({nullable: true, description: `Field ProcessIPAddress for entity Queues.`})
17473
17471
  @MaxLength(100)
17474
17472
  ProcessIPAddress?: string;
17475
17473
 
17476
- @Field({nullable: true})
17474
+ @Field({nullable: true, description: `Field ProcessMacAddress for entity Queues.`})
17477
17475
  @MaxLength(100)
17478
17476
  ProcessMacAddress?: string;
17479
17477
 
17480
- @Field({nullable: true})
17478
+ @Field({nullable: true, description: `Field ProcessOSName for entity Queues.`})
17481
17479
  @MaxLength(50)
17482
17480
  ProcessOSName?: string;
17483
17481
 
17484
- @Field({nullable: true})
17482
+ @Field({nullable: true, description: `Field ProcessOSVersion for entity Queues.`})
17485
17483
  @MaxLength(20)
17486
17484
  ProcessOSVersion?: string;
17487
17485
 
17488
- @Field({nullable: true})
17486
+ @Field({nullable: true, description: `Field ProcessHostName for entity Queues.`})
17489
17487
  @MaxLength(100)
17490
17488
  ProcessHostName?: string;
17491
17489
 
17492
- @Field({nullable: true})
17490
+ @Field({nullable: true, description: `Field ProcessUserID for entity Queues.`})
17493
17491
  @MaxLength(50)
17494
17492
  ProcessUserID?: string;
17495
17493
 
17496
- @Field({nullable: true})
17494
+ @Field({nullable: true, description: `Field ProcessUserName for entity Queues.`})
17497
17495
  @MaxLength(100)
17498
17496
  ProcessUserName?: string;
17499
17497
 
17500
- @Field()
17498
+ @Field({description: `Field LastHeartbeat for entity Queues.`})
17501
17499
  @MaxLength(8)
17502
17500
  LastHeartbeat: Date;
17503
17501
 
@@ -17735,7 +17733,7 @@ export class QueueResolver extends ResolverBase {
17735
17733
  //****************************************************************************
17736
17734
  // ENTITY CLASS for Queue Tasks
17737
17735
  //****************************************************************************
17738
- @ObjectType()
17736
+ @ObjectType({ description: `Manages asynchronous tasks in processing queues, tracking status, priority, and execution details for background operations.` })
17739
17737
  export class QueueTask_ {
17740
17738
  @Field()
17741
17739
  @MaxLength(16)
@@ -17757,16 +17755,16 @@ export class QueueTask_ {
17757
17755
  @MaxLength(8)
17758
17756
  EndedAt?: Date;
17759
17757
 
17760
- @Field({nullable: true})
17758
+ @Field({nullable: true, description: `JSON payload containing the data needed to process this task.`})
17761
17759
  Data?: string;
17762
17760
 
17763
- @Field({nullable: true})
17761
+ @Field({nullable: true, description: `JSON configuration options for how this task should be processed.`})
17764
17762
  Options?: string;
17765
17763
 
17766
- @Field({nullable: true})
17764
+ @Field({nullable: true, description: `Result data from task execution, typically in JSON format.`})
17767
17765
  Output?: string;
17768
17766
 
17769
- @Field({nullable: true})
17767
+ @Field({nullable: true, description: `Error details if the task failed during processing.`})
17770
17768
  ErrorMessage?: string;
17771
17769
 
17772
17770
  @Field({nullable: true})
@@ -17972,7 +17970,7 @@ export class Dashboard_ {
17972
17970
  @MaxLength(16)
17973
17971
  CategoryID?: string;
17974
17972
 
17975
- @Field()
17973
+ @Field({description: `JSON configuration defining the dashboard layout, widgets, data sources, and display options.`})
17976
17974
  UIConfigDetails: string;
17977
17975
 
17978
17976
  @Field()
@@ -18223,7 +18221,7 @@ export class DashboardResolver extends ResolverBase {
18223
18221
  //****************************************************************************
18224
18222
  // ENTITY CLASS for Output Trigger Types
18225
18223
  //****************************************************************************
18226
- @ObjectType()
18224
+ @ObjectType({ description: `Defines events that can trigger output generation such as schedules, data changes, or manual requests.` })
18227
18225
  export class OutputTriggerType_ {
18228
18226
  @Field()
18229
18227
  @MaxLength(16)
@@ -18382,7 +18380,7 @@ export class OutputTriggerTypeResolver extends ResolverBase {
18382
18380
  //****************************************************************************
18383
18381
  // ENTITY CLASS for Output Format Types
18384
18382
  //****************************************************************************
18385
- @ObjectType()
18383
+ @ObjectType({ description: `Specifies available output formats for generated content including PDF, Excel, CSV, JSON, and custom formats.` })
18386
18384
  export class OutputFormatType_ {
18387
18385
  @Field()
18388
18386
  @MaxLength(16)
@@ -18395,7 +18393,7 @@ export class OutputFormatType_ {
18395
18393
  @Field({nullable: true})
18396
18394
  Description?: string;
18397
18395
 
18398
- @Field({nullable: true})
18396
+ @Field({nullable: true, description: `Configuration or template for how data should be formatted in this output type.`})
18399
18397
  DisplayFormat?: string;
18400
18398
 
18401
18399
  @Field()
@@ -18550,7 +18548,7 @@ export class OutputFormatTypeResolver extends ResolverBase {
18550
18548
  //****************************************************************************
18551
18549
  // ENTITY CLASS for Output Delivery Types
18552
18550
  //****************************************************************************
18553
- @ObjectType()
18551
+ @ObjectType({ description: `Defines methods for delivering generated outputs such as email, file storage, API endpoints, or messaging platforms.` })
18554
18552
  export class OutputDeliveryType_ {
18555
18553
  @Field()
18556
18554
  @MaxLength(16)
@@ -18709,7 +18707,7 @@ export class OutputDeliveryTypeResolver extends ResolverBase {
18709
18707
  //****************************************************************************
18710
18708
  // ENTITY CLASS for Reports
18711
18709
  //****************************************************************************
18712
- @ObjectType()
18710
+ @ObjectType({ description: `Defines report configurations including data sources, layouts, filters, and scheduling for automated report generation.` })
18713
18711
  export class Report_ {
18714
18712
  @Field()
18715
18713
  @MaxLength(16)
@@ -18730,7 +18728,7 @@ export class Report_ {
18730
18728
  @MaxLength(16)
18731
18729
  UserID: string;
18732
18730
 
18733
- @Field()
18731
+ @Field({description: `Field SharingScope for entity Reports.`})
18734
18732
  @MaxLength(40)
18735
18733
  SharingScope: string;
18736
18734
 
@@ -18746,7 +18744,7 @@ export class Report_ {
18746
18744
  @MaxLength(16)
18747
18745
  DataContextID?: string;
18748
18746
 
18749
- @Field({nullable: true})
18747
+ @Field({nullable: true, description: `Field Configuration for entity Reports.`})
18750
18748
  Configuration?: string;
18751
18749
 
18752
18750
  @Field({nullable: true})
@@ -18761,11 +18759,11 @@ export class Report_ {
18761
18759
  @MaxLength(16)
18762
18760
  OutputDeliveryTypeID?: string;
18763
18761
 
18764
- @Field({nullable: true})
18762
+ @Field({nullable: true, description: `For scheduled reports, the frequency of generation (Daily, Weekly, Monthly, etc.).`})
18765
18763
  @MaxLength(100)
18766
18764
  OutputFrequency?: string;
18767
18765
 
18768
- @Field({nullable: true})
18766
+ @Field({nullable: true, description: `Email address(es) to send the report to when using email delivery.`})
18769
18767
  @MaxLength(510)
18770
18768
  OutputTargetEmail?: string;
18771
18769
 
@@ -19064,7 +19062,7 @@ export class ReportResolver extends ResolverBase {
19064
19062
  //****************************************************************************
19065
19063
  // ENTITY CLASS for Report Snapshots
19066
19064
  //****************************************************************************
19067
- @ObjectType()
19065
+ @ObjectType({ description: `Stores point-in-time captures of report outputs, preserving historical data and enabling comparison over time.` })
19068
19066
  export class ReportSnapshot_ {
19069
19067
  @Field()
19070
19068
  @MaxLength(16)
@@ -19074,7 +19072,7 @@ export class ReportSnapshot_ {
19074
19072
  @MaxLength(16)
19075
19073
  ReportID: string;
19076
19074
 
19077
- @Field()
19075
+ @Field({description: `Field ResultSet for entity Report Snapshots.`})
19078
19076
  ResultSet: string;
19079
19077
 
19080
19078
  @Field()
@@ -19228,7 +19226,7 @@ export class ReportSnapshotResolver extends ResolverBase {
19228
19226
  //****************************************************************************
19229
19227
  // ENTITY CLASS for Resource Types
19230
19228
  //****************************************************************************
19231
- @ObjectType()
19229
+ @ObjectType({ description: `Tracks types of system resources such as records, dashboards, and reports.` })
19232
19230
  export class ResourceType_ {
19233
19231
  @Field()
19234
19232
  @MaxLength(16)
@@ -19238,14 +19236,14 @@ export class ResourceType_ {
19238
19236
  @MaxLength(510)
19239
19237
  Name: string;
19240
19238
 
19241
- @Field()
19239
+ @Field({description: `Field DisplayName for entity Resource Types.`})
19242
19240
  @MaxLength(510)
19243
19241
  DisplayName: string;
19244
19242
 
19245
19243
  @Field({nullable: true})
19246
19244
  Description?: string;
19247
19245
 
19248
- @Field({nullable: true})
19246
+ @Field({nullable: true, description: `Icon identifier for displaying this resource type in the UI.`})
19249
19247
  @MaxLength(200)
19250
19248
  Icon?: string;
19251
19249
 
@@ -19488,7 +19486,7 @@ export class Tag_ {
19488
19486
  @MaxLength(16)
19489
19487
  ParentID?: string;
19490
19488
 
19491
- @Field()
19489
+ @Field({description: `Field DisplayName for entity Tags.`})
19492
19490
  @MaxLength(510)
19493
19491
  DisplayName: string;
19494
19492
 
@@ -19684,7 +19682,7 @@ export class TaggedItem_ {
19684
19682
  @MaxLength(16)
19685
19683
  EntityID: string;
19686
19684
 
19687
- @Field()
19685
+ @Field({description: `Field RecordID for entity Tagged Items.`})
19688
19686
  @MaxLength(900)
19689
19687
  RecordID: string;
19690
19688
 
@@ -20029,14 +20027,14 @@ export class WorkspaceItem_ {
20029
20027
  @MaxLength(16)
20030
20028
  ResourceTypeID: string;
20031
20029
 
20032
- @Field({nullable: true})
20030
+ @Field({nullable: true, description: `The ID of the resource (such as a view, dashboard, or other entity record) that is included in this workspace.`})
20033
20031
  @MaxLength(4000)
20034
20032
  ResourceRecordID?: string;
20035
20033
 
20036
- @Field(() => Int)
20034
+ @Field(() => Int, {description: `The display order of this item within the workspace, used for arranging resources in the user interface.`})
20037
20035
  Sequence: number;
20038
20036
 
20039
- @Field({nullable: true})
20037
+ @Field({nullable: true, description: `JSON configuration data specific to this workspace item, storing custom settings and state information.`})
20040
20038
  Configuration?: string;
20041
20039
 
20042
20040
  @Field()
@@ -20375,7 +20373,7 @@ export class DatasetItem_ {
20375
20373
  @MaxLength(16)
20376
20374
  ID: string;
20377
20375
 
20378
- @Field()
20376
+ @Field({description: `Unique code identifier for this dataset item within its parent dataset.`})
20379
20377
  @MaxLength(100)
20380
20378
  Code: string;
20381
20379
 
@@ -20383,17 +20381,17 @@ export class DatasetItem_ {
20383
20381
  @MaxLength(16)
20384
20382
  DatasetID: string;
20385
20383
 
20386
- @Field(() => Int)
20384
+ @Field(() => Int, {description: `Order in which this item should be processed or displayed within the dataset.`})
20387
20385
  Sequence: number;
20388
20386
 
20389
20387
  @Field()
20390
20388
  @MaxLength(16)
20391
20389
  EntityID: string;
20392
20390
 
20393
- @Field({nullable: true})
20391
+ @Field({nullable: true, description: `SQL WHERE clause to filter data when this dataset item is sourced from a query.`})
20394
20392
  WhereClause?: string;
20395
20393
 
20396
- @Field()
20394
+ @Field({description: `The date field name used for incremental updates and change detection.`})
20397
20395
  @MaxLength(200)
20398
20396
  DateFieldToCheck: string;
20399
20397
 
@@ -20580,7 +20578,7 @@ export class DatasetItemResolver extends ResolverBase {
20580
20578
  //****************************************************************************
20581
20579
  // ENTITY CLASS for Conversation Details
20582
20580
  //****************************************************************************
20583
- @ObjectType()
20581
+ @ObjectType({ description: `Stores individual messages, responses, and interactions within a conversation, maintaining the complete dialogue history with timestamps.` })
20584
20582
  export class ConversationDetail_ {
20585
20583
  @Field()
20586
20584
  @MaxLength(16)
@@ -20590,21 +20588,21 @@ export class ConversationDetail_ {
20590
20588
  @MaxLength(16)
20591
20589
  ConversationID: string;
20592
20590
 
20593
- @Field({nullable: true})
20591
+ @Field({nullable: true, description: `External system identifier for this message, used for integration scenarios.`})
20594
20592
  @MaxLength(200)
20595
20593
  ExternalID?: string;
20596
20594
 
20597
- @Field()
20595
+ @Field({description: `The role of the message sender (user, assistant, system, function).`})
20598
20596
  @MaxLength(40)
20599
20597
  Role: string;
20600
20598
 
20601
- @Field()
20599
+ @Field({description: `The actual content of the message in the conversation.`})
20602
20600
  Message: string;
20603
20601
 
20604
- @Field({nullable: true})
20602
+ @Field({nullable: true, description: `Error message if this conversation turn encountered a problem.`})
20605
20603
  Error?: string;
20606
20604
 
20607
- @Field(() => Boolean)
20605
+ @Field(() => Boolean, {description: `Flag indicating if this message should be hidden from end users (system messages, function calls, etc.).`})
20608
20606
  HiddenToUser: boolean;
20609
20607
 
20610
20608
  @Field()
@@ -20877,7 +20875,7 @@ export class ConversationDetailResolver extends ResolverBase {
20877
20875
  //****************************************************************************
20878
20876
  // ENTITY CLASS for Conversations
20879
20877
  //****************************************************************************
20880
- @ObjectType()
20878
+ @ObjectType({ description: `Tracks conversation sessions between users and AI agents or between users, including context, participants, and metadata.` })
20881
20879
  export class Conversation_ {
20882
20880
  @Field()
20883
20881
  @MaxLength(16)
@@ -20887,7 +20885,7 @@ export class Conversation_ {
20887
20885
  @MaxLength(16)
20888
20886
  UserID: string;
20889
20887
 
20890
- @Field({nullable: true})
20888
+ @Field({nullable: true, description: `External system identifier for cross-system conversation tracking.`})
20891
20889
  @MaxLength(1000)
20892
20890
  ExternalID?: string;
20893
20891
 
@@ -20898,18 +20896,18 @@ export class Conversation_ {
20898
20896
  @Field({nullable: true})
20899
20897
  Description?: string;
20900
20898
 
20901
- @Field()
20899
+ @Field({description: `The type or category of conversation (Skip, Support, Chat, etc.).`})
20902
20900
  @MaxLength(100)
20903
20901
  Type: string;
20904
20902
 
20905
- @Field(() => Boolean)
20903
+ @Field(() => Boolean, {description: `Indicates if this conversation has been archived and should not appear in active lists.`})
20906
20904
  IsArchived: boolean;
20907
20905
 
20908
20906
  @Field({nullable: true})
20909
20907
  @MaxLength(16)
20910
20908
  LinkedEntityID?: string;
20911
20909
 
20912
- @Field({nullable: true})
20910
+ @Field({nullable: true, description: `ID of a related record this conversation is about (support ticket, order, etc.).`})
20913
20911
  @MaxLength(1000)
20914
20912
  LinkedRecordID?: string;
20915
20913
 
@@ -21166,7 +21164,7 @@ export class ConversationResolver extends ResolverBase {
21166
21164
  //****************************************************************************
21167
21165
  // ENTITY CLASS for User Notifications
21168
21166
  //****************************************************************************
21169
- @ObjectType()
21167
+ @ObjectType({ description: `Manages notifications sent to users including alerts, messages, and system updates with read status and priority.` })
21170
21168
  export class UserNotification_ {
21171
21169
  @Field()
21172
21170
  @MaxLength(16)
@@ -21176,24 +21174,24 @@ export class UserNotification_ {
21176
21174
  @MaxLength(16)
21177
21175
  UserID: string;
21178
21176
 
21179
- @Field({nullable: true})
21177
+ @Field({nullable: true, description: `Brief title or subject of the notification.`})
21180
21178
  @MaxLength(510)
21181
21179
  Title?: string;
21182
21180
 
21183
- @Field({nullable: true})
21181
+ @Field({nullable: true, description: `Full notification message content.`})
21184
21182
  Message?: string;
21185
21183
 
21186
21184
  @Field({nullable: true})
21187
21185
  @MaxLength(16)
21188
21186
  ResourceTypeID?: string;
21189
21187
 
21190
- @Field({nullable: true})
21188
+ @Field({nullable: true, description: `Field ResourceConfiguration for entity User Notifications.`})
21191
21189
  ResourceConfiguration?: string;
21192
21190
 
21193
- @Field(() => Boolean)
21191
+ @Field(() => Boolean, {description: `Field Unread for entity User Notifications.`})
21194
21192
  Unread: boolean;
21195
21193
 
21196
- @Field({nullable: true})
21194
+ @Field({nullable: true, description: `Timestamp when the user read this notification.`})
21197
21195
  @MaxLength(8)
21198
21196
  ReadAt?: Date;
21199
21197
 
@@ -21205,7 +21203,7 @@ export class UserNotification_ {
21205
21203
  @MaxLength(10)
21206
21204
  _mj__UpdatedAt: Date;
21207
21205
 
21208
- @Field({nullable: true})
21206
+ @Field({nullable: true, description: `ID of the specific record this notification is about.`})
21209
21207
  @MaxLength(16)
21210
21208
  ResourceRecordID?: string;
21211
21209
 
@@ -21384,14 +21382,14 @@ export class SchemaInfo_ {
21384
21382
  @MaxLength(16)
21385
21383
  ID: string;
21386
21384
 
21387
- @Field()
21385
+ @Field({description: `The database schema this information applies to.`})
21388
21386
  @MaxLength(100)
21389
21387
  SchemaName: string;
21390
21388
 
21391
- @Field(() => Int)
21389
+ @Field(() => Int, {description: `Field EntityIDMin for entity Schema Info.`})
21392
21390
  EntityIDMin: number;
21393
21391
 
21394
- @Field(() => Int)
21392
+ @Field(() => Int, {description: `Field EntityIDMax for entity Schema Info.`})
21395
21393
  EntityIDMax: number;
21396
21394
 
21397
21395
  @Field({nullable: true})
@@ -21542,7 +21540,7 @@ export class SchemaInfoResolver extends ResolverBase {
21542
21540
  //****************************************************************************
21543
21541
  // ENTITY CLASS for Company Integration Record Maps
21544
21542
  //****************************************************************************
21545
- @ObjectType()
21543
+ @ObjectType({ description: `Maps records between internal entities and external system identifiers, maintaining synchronization between MemberJunction and integrated platforms.` })
21546
21544
  export class CompanyIntegrationRecordMap_ {
21547
21545
  @Field()
21548
21546
  @MaxLength(16)
@@ -21552,7 +21550,7 @@ export class CompanyIntegrationRecordMap_ {
21552
21550
  @MaxLength(16)
21553
21551
  CompanyIntegrationID: string;
21554
21552
 
21555
- @Field()
21553
+ @Field({description: `The unique identifier for this record in the external integrated system.`})
21556
21554
  @MaxLength(1500)
21557
21555
  ExternalSystemRecordID: string;
21558
21556
 
@@ -21560,7 +21558,7 @@ export class CompanyIntegrationRecordMap_ {
21560
21558
  @MaxLength(16)
21561
21559
  EntityID: string;
21562
21560
 
21563
- @Field()
21561
+ @Field({description: `The internal MemberJunction record ID that corresponds to the external system record.`})
21564
21562
  @MaxLength(1500)
21565
21563
  EntityRecordID: string;
21566
21564
 
@@ -21717,7 +21715,7 @@ export class CompanyIntegrationRecordMapResolver extends ResolverBase {
21717
21715
  //****************************************************************************
21718
21716
  // ENTITY CLASS for Record Merge Logs
21719
21717
  //****************************************************************************
21720
- @ObjectType()
21718
+ @ObjectType({ description: `Records the history of record merge operations including source records, target records, and merge rules applied.` })
21721
21719
  export class RecordMergeLog_ {
21722
21720
  @Field()
21723
21721
  @MaxLength(16)
@@ -21727,7 +21725,7 @@ export class RecordMergeLog_ {
21727
21725
  @MaxLength(16)
21728
21726
  EntityID: string;
21729
21727
 
21730
- @Field()
21728
+ @Field({description: `The ID of the record that survived the merge and contains the consolidated data.`})
21731
21729
  @MaxLength(900)
21732
21730
  SurvivingRecordID: string;
21733
21731
 
@@ -21735,7 +21733,7 @@ export class RecordMergeLog_ {
21735
21733
  @MaxLength(16)
21736
21734
  InitiatedByUserID: string;
21737
21735
 
21738
- @Field()
21736
+ @Field({description: `Field ApprovalStatus for entity Record Merge Logs.`})
21739
21737
  @MaxLength(20)
21740
21738
  ApprovalStatus: string;
21741
21739
 
@@ -21743,19 +21741,19 @@ export class RecordMergeLog_ {
21743
21741
  @MaxLength(16)
21744
21742
  ApprovedByUserID?: string;
21745
21743
 
21746
- @Field()
21744
+ @Field({description: `Field ProcessingStatus for entity Record Merge Logs.`})
21747
21745
  @MaxLength(20)
21748
21746
  ProcessingStatus: string;
21749
21747
 
21750
- @Field()
21748
+ @Field({description: `Field ProcessingStartedAt for entity Record Merge Logs.`})
21751
21749
  @MaxLength(8)
21752
21750
  ProcessingStartedAt: Date;
21753
21751
 
21754
- @Field({nullable: true})
21752
+ @Field({nullable: true, description: `Field ProcessingEndedAt for entity Record Merge Logs.`})
21755
21753
  @MaxLength(8)
21756
21754
  ProcessingEndedAt?: Date;
21757
21755
 
21758
- @Field({nullable: true})
21756
+ @Field({nullable: true, description: `Detailed log of the merge process including field mappings and decisions.`})
21759
21757
  ProcessingLog?: string;
21760
21758
 
21761
21759
  @Field({nullable: true})
@@ -21980,7 +21978,7 @@ export class RecordMergeLogResolver extends ResolverBase {
21980
21978
  //****************************************************************************
21981
21979
  // ENTITY CLASS for Record Merge Deletion Logs
21982
21980
  //****************************************************************************
21983
- @ObjectType()
21981
+ @ObjectType({ description: `Tracks records deleted during merge operations, maintaining an audit trail of data consolidation activities.` })
21984
21982
  export class RecordMergeDeletionLog_ {
21985
21983
  @Field()
21986
21984
  @MaxLength(16)
@@ -21990,7 +21988,7 @@ export class RecordMergeDeletionLog_ {
21990
21988
  @MaxLength(16)
21991
21989
  RecordMergeLogID: string;
21992
21990
 
21993
- @Field()
21991
+ @Field({description: `Field DeletedRecordID for entity Record Merge Deletion Logs.`})
21994
21992
  @MaxLength(1500)
21995
21993
  DeletedRecordID: string;
21996
21994
 
@@ -21998,7 +21996,7 @@ export class RecordMergeDeletionLog_ {
21998
21996
  @MaxLength(20)
21999
21997
  Status: string;
22000
21998
 
22001
- @Field({nullable: true})
21999
+ @Field({nullable: true, description: `Field ProcessingLog for entity Record Merge Deletion Logs.`})
22002
22000
  ProcessingLog?: string;
22003
22001
 
22004
22002
  @Field()
@@ -22146,7 +22144,7 @@ export class RecordMergeDeletionLogResolver extends ResolverBase {
22146
22144
  //****************************************************************************
22147
22145
  // ENTITY CLASS for Query Fields
22148
22146
  //****************************************************************************
22149
- @ObjectType()
22147
+ @ObjectType({ description: `Stores field-level metadata for queries including display names, data types, and formatting rules for result presentation.` })
22150
22148
  export class QueryField_ {
22151
22149
  @Field()
22152
22150
  @MaxLength(16)
@@ -22163,7 +22161,7 @@ export class QueryField_ {
22163
22161
  @Field({nullable: true})
22164
22162
  Description?: string;
22165
22163
 
22166
- @Field(() => Int)
22164
+ @Field(() => Int, {description: `Display order of this field in query results.`})
22167
22165
  Sequence: number;
22168
22166
 
22169
22167
  @Field({description: `The base type, not including parameters, in SQL. For example this field would be nvarchar or decimal, and wouldn't include type parameters. The SQLFullType field provides that information.`})
@@ -22178,20 +22176,20 @@ export class QueryField_ {
22178
22176
  @MaxLength(16)
22179
22177
  SourceEntityID?: string;
22180
22178
 
22181
- @Field({nullable: true})
22179
+ @Field({nullable: true, description: `The original field name from the SQL query if different from the display name.`})
22182
22180
  @MaxLength(510)
22183
22181
  SourceFieldName?: string;
22184
22182
 
22185
- @Field(() => Boolean)
22183
+ @Field(() => Boolean, {description: `Indicates if this field is calculated from other fields rather than directly from the database.`})
22186
22184
  IsComputed: boolean;
22187
22185
 
22188
- @Field({nullable: true})
22186
+ @Field({nullable: true, description: `Explanation of how this computed field is calculated.`})
22189
22187
  ComputationDescription?: string;
22190
22188
 
22191
- @Field(() => Boolean)
22189
+ @Field(() => Boolean, {description: `Whether this field represents an aggregate or summary value.`})
22192
22190
  IsSummary: boolean;
22193
22191
 
22194
- @Field({nullable: true})
22192
+ @Field({nullable: true, description: `Description of what this summary field represents and how it's aggregated.`})
22195
22193
  SummaryDescription?: string;
22196
22194
 
22197
22195
  @Field()
@@ -22202,6 +22200,13 @@ export class QueryField_ {
22202
22200
  @MaxLength(10)
22203
22201
  _mj__UpdatedAt: Date;
22204
22202
 
22203
+ @Field({description: `Indicates how this field was identified in the query output. "AI" means the QueryEntityServer used LLM analysis to parse the SELECT clause and determine field names, types, and their source entities/columns. This includes handling aliased columns, computed expressions, aggregations, and CASE statements. "Manual" means a user explicitly defined this output field. AI detection ensures the field list stays synchronized with query changes.`})
22204
+ @MaxLength(100)
22205
+ DetectionMethod: string;
22206
+
22207
+ @Field(() => Float, {nullable: true, description: `Confidence score (0.00-1.00) indicating how certain the AI was about this field detection. Only populated when DetectionMethod="AI". Factors include: clarity of the SELECT clause, complexity of any expressions or transformations, confidence in type inference, and ability to trace back to source entity/column. Complex computed fields or ambiguous aliases result in lower scores. This helps identify fields that may need manual verification.`})
22208
+ AutoDetectConfidenceScore?: number;
22209
+
22205
22210
  @Field()
22206
22211
  @MaxLength(510)
22207
22212
  Query: string;
@@ -22255,6 +22260,12 @@ export class CreateQueryFieldInput {
22255
22260
 
22256
22261
  @Field({ nullable: true })
22257
22262
  SummaryDescription: string | null;
22263
+
22264
+ @Field({ nullable: true })
22265
+ DetectionMethod?: string;
22266
+
22267
+ @Field(() => Float, { nullable: true })
22268
+ AutoDetectConfidenceScore: number | null;
22258
22269
  }
22259
22270
 
22260
22271
 
@@ -22302,6 +22313,12 @@ export class UpdateQueryFieldInput {
22302
22313
  @Field({ nullable: true })
22303
22314
  SummaryDescription?: string | null;
22304
22315
 
22316
+ @Field({ nullable: true })
22317
+ DetectionMethod?: string;
22318
+
22319
+ @Field(() => Float, { nullable: true })
22320
+ AutoDetectConfidenceScore?: number | null;
22321
+
22305
22322
  @Field(() => [KeyValuePairInput], { nullable: true })
22306
22323
  OldValues___?: KeyValuePairInput[];
22307
22324
  }
@@ -22395,7 +22412,7 @@ export class QueryFieldResolver extends ResolverBase {
22395
22412
  //****************************************************************************
22396
22413
  // ENTITY CLASS for Query Categories
22397
22414
  //****************************************************************************
22398
- @ObjectType()
22415
+ @ObjectType({ description: `Organizes saved queries into categories for discovery and management, supporting folder-like organization of queries.` })
22399
22416
  export class QueryCategory_ {
22400
22417
  @Field()
22401
22418
  @MaxLength(16)
@@ -22609,22 +22626,22 @@ export class Query_ {
22609
22626
  @MaxLength(16)
22610
22627
  CategoryID?: string;
22611
22628
 
22612
- @Field({nullable: true})
22629
+ @Field({nullable: true, description: `The natural language question this query answers, used for AI query selection.`})
22613
22630
  UserQuestion?: string;
22614
22631
 
22615
22632
  @Field({nullable: true})
22616
22633
  Description?: string;
22617
22634
 
22618
- @Field({nullable: true})
22635
+ @Field({nullable: true, description: `The actual SQL query text to execute, may include parameters.`})
22619
22636
  SQL?: string;
22620
22637
 
22621
- @Field({nullable: true})
22638
+ @Field({nullable: true, description: `Technical documentation of the query logic, performance considerations, and parameter usage.`})
22622
22639
  TechnicalDescription?: string;
22623
22640
 
22624
- @Field({nullable: true})
22641
+ @Field({nullable: true, description: `The original SQL before any optimization or modification, kept for reference.`})
22625
22642
  OriginalSQL?: string;
22626
22643
 
22627
- @Field({nullable: true})
22644
+ @Field({nullable: true, description: `User feedback on query accuracy, performance, or suggested improvements.`})
22628
22645
  Feedback?: string;
22629
22646
 
22630
22647
  @Field()
@@ -22645,6 +22662,9 @@ export class Query_ {
22645
22662
  @MaxLength(10)
22646
22663
  _mj__UpdatedAt: Date;
22647
22664
 
22665
+ @Field(() => Boolean, {nullable: true, description: `Automatically set to true when the SQL column contains Nunjucks template markers (e.g., {{ paramName }}). This flag is maintained by the QueryEntityServer for performance optimization and discovery purposes. It allows quick filtering of parameterized queries and enables the UI to show parameter inputs only when needed. The system will automatically update this flag when the SQL content changes.`})
22666
+ UsesTemplate?: boolean;
22667
+
22648
22668
  @Field({nullable: true})
22649
22669
  @MaxLength(100)
22650
22670
  Category?: string;
@@ -22658,6 +22678,9 @@ export class Query_ {
22658
22678
  @Field(() => [QueryPermission_])
22659
22679
  QueryPermissions_QueryIDArray: QueryPermission_[]; // Link to QueryPermissions
22660
22680
 
22681
+ @Field(() => [QueryParameter_])
22682
+ MJ_QueryParameters_QueryIDArray: QueryParameter_[]; // Link to MJ_QueryParameters
22683
+
22661
22684
  @Field(() => [QueryEntity_])
22662
22685
  QueryEntities_QueryIDArray: QueryEntity_[]; // Link to QueryEntities
22663
22686
 
@@ -22703,6 +22726,9 @@ export class CreateQueryInput {
22703
22726
 
22704
22727
  @Field(() => Int, { nullable: true })
22705
22728
  ExecutionCostRank: number | null;
22729
+
22730
+ @Field(() => Boolean, { nullable: true })
22731
+ UsesTemplate?: boolean | null;
22706
22732
  }
22707
22733
 
22708
22734
 
@@ -22747,6 +22773,9 @@ export class UpdateQueryInput {
22747
22773
  @Field(() => Int, { nullable: true })
22748
22774
  ExecutionCostRank?: number | null;
22749
22775
 
22776
+ @Field(() => Boolean, { nullable: true })
22777
+ UsesTemplate?: boolean | null;
22778
+
22750
22779
  @Field(() => [KeyValuePairInput], { nullable: true })
22751
22780
  OldValues___?: KeyValuePairInput[];
22752
22781
  }
@@ -22838,6 +22867,16 @@ export class QueryResolver extends ResolverBase {
22838
22867
  return result;
22839
22868
  }
22840
22869
 
22870
+ @FieldResolver(() => [QueryParameter_])
22871
+ async MJ_QueryParameters_QueryIDArray(@Root() query_: Query_, @Ctx() { dataSources, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
22872
+ this.CheckUserReadPermissions('MJ: Query Parameters', userPayload);
22873
+ const connPool = GetReadOnlyDataSource(dataSources, { allowFallbackToReadWrite: true });
22874
+ const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwQueryParameters] WHERE [QueryID]='${query_.ID}' ` + this.getRowLevelSecurityWhereClause('MJ: Query Parameters', userPayload, EntityPermissionType.Read, 'AND');
22875
+ const rows = await SQLServerDataProvider.ExecuteSQLWithPool(connPool, sSQL, undefined, this.GetUserFromPayload(userPayload));
22876
+ const result = this.ArrayMapFieldNamesToCodeNames('MJ: Query Parameters', rows);
22877
+ return result;
22878
+ }
22879
+
22841
22880
  @FieldResolver(() => [QueryEntity_])
22842
22881
  async QueryEntities_QueryIDArray(@Root() query_: Query_, @Ctx() { dataSources, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
22843
22882
  this.CheckUserReadPermissions('Query Entities', userPayload);
@@ -22880,7 +22919,7 @@ export class QueryResolver extends ResolverBase {
22880
22919
  //****************************************************************************
22881
22920
  // ENTITY CLASS for Query Permissions
22882
22921
  //****************************************************************************
22883
- @ObjectType()
22922
+ @ObjectType({ description: `Controls access to queries by defining which users and roles can run specific queries.` })
22884
22923
  export class QueryPermission_ {
22885
22924
  @Field()
22886
22925
  @MaxLength(16)
@@ -23035,7 +23074,7 @@ export class QueryPermissionResolver extends ResolverBase {
23035
23074
  //****************************************************************************
23036
23075
  // ENTITY CLASS for Vector Indexes
23037
23076
  //****************************************************************************
23038
- @ObjectType()
23077
+ @ObjectType({ description: `Defines vector indexes within a given Vector Database.` })
23039
23078
  export class VectorIndex_ {
23040
23079
  @Field()
23041
23080
  @MaxLength(16)
@@ -23222,7 +23261,7 @@ export class VectorIndexResolver extends ResolverBase {
23222
23261
  //****************************************************************************
23223
23262
  // ENTITY CLASS for Entity Document Types
23224
23263
  //****************************************************************************
23225
- @ObjectType()
23264
+ @ObjectType({ description: `Defines types of documents that can be generated from entity data.` })
23226
23265
  export class EntityDocumentType_ {
23227
23266
  @Field()
23228
23267
  @MaxLength(16)
@@ -23381,7 +23420,7 @@ export class EntityDocumentTypeResolver extends ResolverBase {
23381
23420
  //****************************************************************************
23382
23421
  // ENTITY CLASS for Entity Document Runs
23383
23422
  //****************************************************************************
23384
- @ObjectType()
23423
+ @ObjectType({ description: `Records execution history of document generation processes for entity records, tracking status, timing, and output details.` })
23385
23424
  export class EntityDocumentRun_ {
23386
23425
  @Field()
23387
23426
  @MaxLength(16)
@@ -23552,7 +23591,7 @@ export class EntityDocumentRunResolver extends ResolverBase {
23552
23591
  //****************************************************************************
23553
23592
  // ENTITY CLASS for Vector Databases
23554
23593
  //****************************************************************************
23555
- @ObjectType()
23594
+ @ObjectType({ description: `Configures connections to vector database systems for AI embeddings, similarity search, and semantic operations.` })
23556
23595
  export class VectorDatabase_ {
23557
23596
  @Field()
23558
23597
  @MaxLength(16)
@@ -23565,11 +23604,11 @@ export class VectorDatabase_ {
23565
23604
  @Field({nullable: true})
23566
23605
  Description?: string;
23567
23606
 
23568
- @Field({nullable: true})
23607
+ @Field({nullable: true, description: `Field DefaultURL for entity Vector Databases.`})
23569
23608
  @MaxLength(510)
23570
23609
  DefaultURL?: string;
23571
23610
 
23572
- @Field({nullable: true})
23611
+ @Field({nullable: true, description: `Field ClassKey for entity Vector Databases.`})
23573
23612
  @MaxLength(200)
23574
23613
  ClassKey?: string;
23575
23614
 
@@ -23744,7 +23783,7 @@ export class VectorDatabaseResolver extends ResolverBase {
23744
23783
  //****************************************************************************
23745
23784
  // ENTITY CLASS for Entity Record Documents
23746
23785
  //****************************************************************************
23747
- @ObjectType()
23786
+ @ObjectType({ description: `Stores the output for a given entity record for a specific Entity Document. For example if a "Person" entity had a particular template that outputted First and Last name like "#{{FirstName}}\n#{{LastName}}" the Entity Record Document would have a row for each entity record in the Person entity that was run through that particular document and have row values such as "#Jane\n#Doe" and "#Mark\n#Smith".` })
23748
23787
  export class EntityRecordDocument_ {
23749
23788
  @Field()
23750
23789
  @MaxLength(16)
@@ -23754,7 +23793,7 @@ export class EntityRecordDocument_ {
23754
23793
  @MaxLength(16)
23755
23794
  EntityID: string;
23756
23795
 
23757
- @Field()
23796
+ @Field({description: `The ID of the entity record this document was generated for.`})
23758
23797
  @MaxLength(900)
23759
23798
  RecordID: string;
23760
23799
 
@@ -23762,21 +23801,21 @@ export class EntityRecordDocument_ {
23762
23801
  @MaxLength(16)
23763
23802
  EntityDocumentID: string;
23764
23803
 
23765
- @Field({nullable: true})
23804
+ @Field({nullable: true, description: `The generated document text after template processing.`})
23766
23805
  DocumentText?: string;
23767
23806
 
23768
23807
  @Field()
23769
23808
  @MaxLength(16)
23770
23809
  VectorIndexID: string;
23771
23810
 
23772
- @Field({nullable: true})
23811
+ @Field({nullable: true, description: `Reference to the vector embedding of this document if AI search is enabled.`})
23773
23812
  @MaxLength(100)
23774
23813
  VectorID?: string;
23775
23814
 
23776
- @Field({nullable: true})
23815
+ @Field({nullable: true, description: `JSON representation of the vector embedding for this document.`})
23777
23816
  VectorJSON?: string;
23778
23817
 
23779
- @Field()
23818
+ @Field({description: `Timestamp of when the source entity record was last updated.`})
23780
23819
  @MaxLength(8)
23781
23820
  EntityRecordUpdatedAt: Date;
23782
23821
 
@@ -23961,7 +24000,7 @@ export class EntityRecordDocumentResolver extends ResolverBase {
23961
24000
  //****************************************************************************
23962
24001
  // ENTITY CLASS for Entity Documents
23963
24002
  //****************************************************************************
23964
- @ObjectType()
24003
+ @ObjectType({ description: `Stores templates for converting structured entity data into unstructured documents.` })
23965
24004
  export class EntityDocument_ {
23966
24005
  @Field()
23967
24006
  @MaxLength(16)
@@ -24502,7 +24541,7 @@ export class DataContext_ {
24502
24541
  @MaxLength(16)
24503
24542
  UserID: string;
24504
24543
 
24505
- @Field({nullable: true})
24544
+ @Field({nullable: true, description: `Timestamp of when the data in this context was last refreshed or recalculated.`})
24506
24545
  @MaxLength(8)
24507
24546
  LastRefreshedAt?: Date;
24508
24547
 
@@ -24694,7 +24733,7 @@ export class DataContextResolver extends ResolverBase {
24694
24733
  //****************************************************************************
24695
24734
  // ENTITY CLASS for User View Categories
24696
24735
  //****************************************************************************
24697
- @ObjectType()
24736
+ @ObjectType({ description: `Organizes user-created views into categories for personal organization and sharing within teams.` })
24698
24737
  export class UserViewCategory_ {
24699
24738
  @Field()
24700
24739
  @MaxLength(16)
@@ -24908,7 +24947,7 @@ export class UserViewCategoryResolver extends ResolverBase {
24908
24947
  //****************************************************************************
24909
24948
  // ENTITY CLASS for Dashboard Categories
24910
24949
  //****************************************************************************
24911
- @ObjectType()
24950
+ @ObjectType({ description: `Organizes dashboards into logical groupings for navigation and access control, supporting hierarchical categorization.` })
24912
24951
  export class DashboardCategory_ {
24913
24952
  @Field()
24914
24953
  @MaxLength(16)
@@ -25108,7 +25147,7 @@ export class DashboardCategoryResolver extends ResolverBase {
25108
25147
  //****************************************************************************
25109
25148
  // ENTITY CLASS for Report Categories
25110
25149
  //****************************************************************************
25111
- @ObjectType()
25150
+ @ObjectType({ description: `Organizes reports into logical groupings for navigation, access control, and discovery within the reporting system.` })
25112
25151
  export class ReportCategory_ {
25113
25152
  @Field()
25114
25153
  @MaxLength(16)
@@ -25308,7 +25347,7 @@ export class ReportCategoryResolver extends ResolverBase {
25308
25347
  //****************************************************************************
25309
25348
  // ENTITY CLASS for File Storage Providers
25310
25349
  //****************************************************************************
25311
- @ObjectType()
25350
+ @ObjectType({ description: `Configures connections to file storage systems including local, cloud, and network storage with authentication and access rules.` })
25312
25351
  export class FileStorageProvider_ {
25313
25352
  @Field()
25314
25353
  @MaxLength(16)
@@ -25321,18 +25360,18 @@ export class FileStorageProvider_ {
25321
25360
  @Field({nullable: true})
25322
25361
  Description?: string;
25323
25362
 
25324
- @Field()
25363
+ @Field({description: `Identifier for the server-side driver implementation for this storage provider.`})
25325
25364
  @MaxLength(200)
25326
25365
  ServerDriverKey: string;
25327
25366
 
25328
- @Field()
25367
+ @Field({description: `Identifier for the client-side driver implementation for this storage provider.`})
25329
25368
  @MaxLength(200)
25330
25369
  ClientDriverKey: string;
25331
25370
 
25332
- @Field(() => Int)
25371
+ @Field(() => Int, {description: `Priority order for selecting storage providers, lower numbers are preferred.`})
25333
25372
  Priority: number;
25334
25373
 
25335
- @Field(() => Boolean)
25374
+ @Field(() => Boolean, {description: `Whether this storage provider is currently available for use.`})
25336
25375
  IsActive: boolean;
25337
25376
 
25338
25377
  @Field()
@@ -25505,7 +25544,7 @@ export class FileStorageProviderResolver extends ResolverBase {
25505
25544
  //****************************************************************************
25506
25545
  // ENTITY CLASS for Files
25507
25546
  //****************************************************************************
25508
- @ObjectType()
25547
+ @ObjectType({ description: `Manages file metadata, storage locations, and access control for all files stored within or referenced by the system.` })
25509
25548
  export class File_ {
25510
25549
  @Field()
25511
25550
  @MaxLength(16)
@@ -25526,11 +25565,11 @@ export class File_ {
25526
25565
  @MaxLength(16)
25527
25566
  ProviderID: string;
25528
25567
 
25529
- @Field({nullable: true})
25568
+ @Field({nullable: true, description: `MIME type of the file content (e.g., image/jpeg, application/pdf).`})
25530
25569
  @MaxLength(510)
25531
25570
  ContentType?: string;
25532
25571
 
25533
- @Field({nullable: true})
25572
+ @Field({nullable: true, description: `Storage provider-specific identifier or path for this file.`})
25534
25573
  @MaxLength(1000)
25535
25574
  ProviderKey?: string;
25536
25575
 
@@ -25722,7 +25761,7 @@ export class FileResolver extends ResolverBase {
25722
25761
  //****************************************************************************
25723
25762
  // ENTITY CLASS for File Categories
25724
25763
  //****************************************************************************
25725
- @ObjectType()
25764
+ @ObjectType({ description: `Organizes files into categories for classification, access control, and lifecycle management across the file storage system.` })
25726
25765
  export class FileCategory_ {
25727
25766
  @Field()
25728
25767
  @MaxLength(16)
@@ -25908,7 +25947,7 @@ export class FileCategoryResolver extends ResolverBase {
25908
25947
  //****************************************************************************
25909
25948
  // ENTITY CLASS for File Entity Record Links
25910
25949
  //****************************************************************************
25911
- @ObjectType()
25950
+ @ObjectType({ description: `Associates files with entity records, enabling attachment management and document relationships throughout the system.` })
25912
25951
  export class FileEntityRecordLink_ {
25913
25952
  @Field()
25914
25953
  @MaxLength(16)
@@ -25922,7 +25961,7 @@ export class FileEntityRecordLink_ {
25922
25961
  @MaxLength(16)
25923
25962
  EntityID: string;
25924
25963
 
25925
- @Field()
25964
+ @Field({description: `The ID of the entity record this file is attached to.`})
25926
25965
  @MaxLength(1500)
25927
25966
  RecordID: string;
25928
25967
 
@@ -26073,26 +26112,26 @@ export class FileEntityRecordLinkResolver extends ResolverBase {
26073
26112
  //****************************************************************************
26074
26113
  // ENTITY CLASS for Version Installations
26075
26114
  //****************************************************************************
26076
- @ObjectType()
26115
+ @ObjectType({ description: `Records installation history of system versions, tracking deployments, rollbacks, and version-specific configurations.` })
26077
26116
  export class VersionInstallation_ {
26078
26117
  @Field()
26079
26118
  @MaxLength(16)
26080
26119
  ID: string;
26081
26120
 
26082
- @Field(() => Int)
26121
+ @Field(() => Int, {description: `Major version number installed.`})
26083
26122
  MajorVersion: number;
26084
26123
 
26085
- @Field(() => Int)
26124
+ @Field(() => Int, {description: `Minor version number installed.`})
26086
26125
  MinorVersion: number;
26087
26126
 
26088
- @Field(() => Int)
26127
+ @Field(() => Int, {description: `Patch version number installed.`})
26089
26128
  PatchVersion: number;
26090
26129
 
26091
26130
  @Field({nullable: true, description: `What type of installation was applied`})
26092
26131
  @MaxLength(40)
26093
26132
  Type?: string;
26094
26133
 
26095
- @Field()
26134
+ @Field({description: `Timestamp when this version was installed.`})
26096
26135
  @MaxLength(8)
26097
26136
  InstalledAt: Date;
26098
26137
 
@@ -26279,7 +26318,7 @@ export class VersionInstallationResolver extends ResolverBase {
26279
26318
  //****************************************************************************
26280
26319
  // ENTITY CLASS for Duplicate Run Detail Matches
26281
26320
  //****************************************************************************
26282
- @ObjectType()
26321
+ @ObjectType({ description: `Records individual matching pairs of potentially duplicate records identified during a duplicate detection run with confidence scores.` })
26283
26322
  export class DuplicateRunDetailMatch_ {
26284
26323
  @Field()
26285
26324
  @MaxLength(16)
@@ -26293,22 +26332,22 @@ export class DuplicateRunDetailMatch_ {
26293
26332
  @MaxLength(40)
26294
26333
  MatchSource: string;
26295
26334
 
26296
- @Field()
26335
+ @Field({description: `The ID of the record identified as a potential duplicate match.`})
26297
26336
  @MaxLength(1000)
26298
26337
  MatchRecordID: string;
26299
26338
 
26300
26339
  @Field(() => Float, {description: `Value between 0 and 1 designating the computed probability of a match`})
26301
26340
  MatchProbability: number;
26302
26341
 
26303
- @Field()
26342
+ @Field({description: `Timestamp when this duplicate match was identified.`})
26304
26343
  @MaxLength(8)
26305
26344
  MatchedAt: Date;
26306
26345
 
26307
- @Field()
26346
+ @Field({description: `The action to take for this match (Ignore, Merge, Delete).`})
26308
26347
  @MaxLength(40)
26309
26348
  Action: string;
26310
26349
 
26311
- @Field()
26350
+ @Field({description: `Current approval status of the proposed action (Pending, Approved, Rejected).`})
26312
26351
  @MaxLength(40)
26313
26352
  ApprovalStatus: string;
26314
26353
 
@@ -26316,11 +26355,11 @@ export class DuplicateRunDetailMatch_ {
26316
26355
  @MaxLength(16)
26317
26356
  RecordMergeLogID?: string;
26318
26357
 
26319
- @Field()
26358
+ @Field({description: `Status of the merge operation if Action is Merge (Pending, Complete, Failed).`})
26320
26359
  @MaxLength(40)
26321
26360
  MergeStatus: string;
26322
26361
 
26323
- @Field()
26362
+ @Field({description: `Timestamp when records were merged, if applicable.`})
26324
26363
  @MaxLength(8)
26325
26364
  MergedAt: Date;
26326
26365
 
@@ -26505,7 +26544,7 @@ export class DuplicateRunDetailMatchResolver extends ResolverBase {
26505
26544
  //****************************************************************************
26506
26545
  // ENTITY CLASS for Entity Document Settings
26507
26546
  //****************************************************************************
26508
- @ObjectType()
26547
+ @ObjectType({ description: `Stores configuration for entity-specific document generation.` })
26509
26548
  export class EntityDocumentSetting_ {
26510
26549
  @Field()
26511
26550
  @MaxLength(16)
@@ -26519,7 +26558,7 @@ export class EntityDocumentSetting_ {
26519
26558
  @MaxLength(200)
26520
26559
  Name: string;
26521
26560
 
26522
- @Field()
26561
+ @Field({description: `JSON configuration value for this document generation setting.`})
26523
26562
  Value: string;
26524
26563
 
26525
26564
  @Field({nullable: true})
@@ -26674,7 +26713,7 @@ export class EntityDocumentSettingResolver extends ResolverBase {
26674
26713
  //****************************************************************************
26675
26714
  // ENTITY CLASS for Entity Settings
26676
26715
  //****************************************************************************
26677
- @ObjectType()
26716
+ @ObjectType({ description: `Stores entity-specific configuration settings, allowing customization of how entities function.` })
26678
26717
  export class EntitySetting_ {
26679
26718
  @Field()
26680
26719
  @MaxLength(16)
@@ -26688,7 +26727,7 @@ export class EntitySetting_ {
26688
26727
  @MaxLength(200)
26689
26728
  Name: string;
26690
26729
 
26691
- @Field()
26730
+ @Field({description: `The configuration value for this entity setting, often in JSON format.`})
26692
26731
  Value: string;
26693
26732
 
26694
26733
  @Field({nullable: true})
@@ -26843,7 +26882,7 @@ export class EntitySettingResolver extends ResolverBase {
26843
26882
  //****************************************************************************
26844
26883
  // ENTITY CLASS for Duplicate Runs
26845
26884
  //****************************************************************************
26846
- @ObjectType()
26885
+ @ObjectType({ description: `Manages execution of duplicate detection processes across entities, tracking configuration, progress, and summary results.` })
26847
26886
  export class DuplicateRun_ {
26848
26887
  @Field()
26849
26888
  @MaxLength(16)
@@ -26869,22 +26908,22 @@ export class DuplicateRun_ {
26869
26908
  @MaxLength(8)
26870
26909
  EndedAt?: Date;
26871
26910
 
26872
- @Field()
26911
+ @Field({description: `Overall approval status for the duplicate run results (Pending, Approved, Rejected).`})
26873
26912
  @MaxLength(40)
26874
26913
  ApprovalStatus: string;
26875
26914
 
26876
- @Field({nullable: true})
26915
+ @Field({nullable: true, description: `Comments or notes regarding the approval decision for this duplicate run.`})
26877
26916
  ApprovalComments?: string;
26878
26917
 
26879
26918
  @Field({nullable: true})
26880
26919
  @MaxLength(16)
26881
26920
  ApprovedByUserID?: string;
26882
26921
 
26883
- @Field()
26922
+ @Field({description: `Current processing status of the duplicate detection run (Pending, Running, Complete, Failed).`})
26884
26923
  @MaxLength(40)
26885
26924
  ProcessingStatus: string;
26886
26925
 
26887
- @Field({nullable: true})
26926
+ @Field({nullable: true, description: `Error details if the duplicate detection run failed.`})
26888
26927
  ProcessingErrorMessage?: string;
26889
26928
 
26890
26929
  @Field()
@@ -27097,7 +27136,7 @@ export class DuplicateRunResolver extends ResolverBase {
27097
27136
  //****************************************************************************
27098
27137
  // ENTITY CLASS for Duplicate Run Details
27099
27138
  //****************************************************************************
27100
- @ObjectType()
27139
+ @ObjectType({ description: `Stores detailed results for each record analyzed in a duplicate detection run, including match status and processing metadata.` })
27101
27140
  export class DuplicateRunDetail_ {
27102
27141
  @Field()
27103
27142
  @MaxLength(16)
@@ -27107,11 +27146,11 @@ export class DuplicateRunDetail_ {
27107
27146
  @MaxLength(16)
27108
27147
  DuplicateRunID: string;
27109
27148
 
27110
- @Field()
27149
+ @Field({description: `The ID of the record being analyzed for duplicates.`})
27111
27150
  @MaxLength(1000)
27112
27151
  RecordID: string;
27113
27152
 
27114
- @Field()
27153
+ @Field({description: `Status of duplicate analysis for this record (Pending, Complete, Error).`})
27115
27154
  @MaxLength(40)
27116
27155
  MatchStatus: string;
27117
27156
 
@@ -27121,11 +27160,11 @@ export class DuplicateRunDetail_ {
27121
27160
  @Field({nullable: true, description: `If MatchStatus='Error' this field can be used to track the error from that phase of the process for logging/diagnostics.`})
27122
27161
  MatchErrorMessage?: string;
27123
27162
 
27124
- @Field()
27163
+ @Field({description: `Status of any merge operations for this record (Not Applicable, Pending, Complete, Failed).`})
27125
27164
  @MaxLength(40)
27126
27165
  MergeStatus: string;
27127
27166
 
27128
- @Field({nullable: true})
27167
+ @Field({nullable: true, description: `Error details if merge operation failed for this record.`})
27129
27168
  MergeErrorMessage?: string;
27130
27169
 
27131
27170
  @Field()
@@ -27304,7 +27343,7 @@ export class DuplicateRunDetailResolver extends ResolverBase {
27304
27343
  //****************************************************************************
27305
27344
  // ENTITY CLASS for Application Settings
27306
27345
  //****************************************************************************
27307
- @ObjectType()
27346
+ @ObjectType({ description: `Stores configuration settings and preferences for applications, including key-value pairs for runtime parameters and user-specific customizations.` })
27308
27347
  export class ApplicationSetting_ {
27309
27348
  @Field()
27310
27349
  @MaxLength(16)
@@ -27318,7 +27357,7 @@ export class ApplicationSetting_ {
27318
27357
  @MaxLength(200)
27319
27358
  Name: string;
27320
27359
 
27321
- @Field()
27360
+ @Field({description: `The setting value, can be simple text, numbers, booleans, or JSON for complex configuration objects.`})
27322
27361
  Value: string;
27323
27362
 
27324
27363
  @Field({nullable: true})
@@ -28211,7 +28250,7 @@ export class EntityActionInvocationType_ {
28211
28250
  @Field({nullable: true, description: `Description of the invocation type.`})
28212
28251
  Description?: string;
28213
28252
 
28214
- @Field(() => Int)
28253
+ @Field(() => Int, {description: `Order in which this invocation type appears in UI lists and menus.`})
28215
28254
  DisplaySequence: number;
28216
28255
 
28217
28256
  @Field()
@@ -28387,13 +28426,13 @@ export class Action_ {
28387
28426
  @MaxLength(40)
28388
28427
  Type: string;
28389
28428
 
28390
- @Field({nullable: true})
28429
+ @Field({nullable: true, description: `The natural language prompt provided by the user describing what the action should accomplish, used for AI code generation.`})
28391
28430
  UserPrompt?: string;
28392
28431
 
28393
28432
  @Field({nullable: true, description: `User's comments not shared with the LLM.`})
28394
28433
  UserComments?: string;
28395
28434
 
28396
- @Field({nullable: true})
28435
+ @Field({nullable: true, description: `The generated or manually written code that implements the action logic, typically TypeScript/JavaScript that will be executed.`})
28397
28436
  Code?: string;
28398
28437
 
28399
28438
  @Field({nullable: true, description: `AI's explanation of the code.`})
@@ -28988,16 +29027,16 @@ export class ActionFilter_ {
28988
29027
  @MaxLength(16)
28989
29028
  ID: string;
28990
29029
 
28991
- @Field()
29030
+ @Field({description: `Human-readable explanation of what this filter checks and when it should prevent action execution, written for non-technical users.`})
28992
29031
  UserDescription: string;
28993
29032
 
28994
- @Field({nullable: true})
29033
+ @Field({nullable: true, description: `Additional notes or implementation details about the filter logic, including examples or edge cases to consider.`})
28995
29034
  UserComments?: string;
28996
29035
 
28997
- @Field()
29036
+ @Field({description: `JavaScript code that evaluates to true (allow action) or false (prevent action), executed in the same context as the action.`})
28998
29037
  Code: string;
28999
29038
 
29000
- @Field({nullable: true})
29039
+ @Field({nullable: true, description: `Technical documentation of the filter code logic, including expected inputs, outputs, and any dependencies or assumptions.`})
29001
29040
  CodeExplanation?: string;
29002
29041
 
29003
29042
  @Field()
@@ -29327,7 +29366,7 @@ export class ActionResultCode_ {
29327
29366
  @MaxLength(16)
29328
29367
  ActionID: string;
29329
29368
 
29330
- @Field()
29369
+ @Field({description: `The unique code string returned by the action to indicate specific outcomes, used for programmatic handling of results.`})
29331
29370
  @MaxLength(510)
29332
29371
  ResultCode: string;
29333
29372
 
@@ -29669,10 +29708,10 @@ export class ActionExecutionLog_ {
29669
29708
  @MaxLength(10)
29670
29709
  EndedAt?: Date;
29671
29710
 
29672
- @Field({nullable: true})
29711
+ @Field({nullable: true, description: `JSON-formatted input parameters passed to the action during execution, storing the exact values used for this specific run.`})
29673
29712
  Params?: string;
29674
29713
 
29675
- @Field({nullable: true})
29714
+ @Field({nullable: true, description: `The outcome code returned by the action execution, indicating success, failure, or specific error conditions as defined in Action Result Codes.`})
29676
29715
  @MaxLength(510)
29677
29716
  ResultCode?: string;
29678
29717
 
@@ -29877,10 +29916,10 @@ export class ActionParam_ {
29877
29916
  @MaxLength(510)
29878
29917
  Name: string;
29879
29918
 
29880
- @Field({nullable: true})
29919
+ @Field({nullable: true, description: `The default value for this parameter if not provided during action execution, can be a literal value or JSON for complex types.`})
29881
29920
  DefaultValue?: string;
29882
29921
 
29883
- @Field()
29922
+ @Field({description: `Specifies whether this parameter is used for Input, Output, or Both directions in the action execution flow.`})
29884
29923
  @MaxLength(20)
29885
29924
  Type: string;
29886
29925
 
@@ -29888,13 +29927,13 @@ export class ActionParam_ {
29888
29927
  @MaxLength(60)
29889
29928
  ValueType: string;
29890
29929
 
29891
- @Field(() => Boolean)
29930
+ @Field(() => Boolean, {description: `Indicates whether this parameter accepts or returns an array of values rather than a single value.`})
29892
29931
  IsArray: boolean;
29893
29932
 
29894
29933
  @Field({nullable: true})
29895
29934
  Description?: string;
29896
29935
 
29897
- @Field(() => Boolean)
29936
+ @Field(() => Boolean, {description: `Determines if this parameter must be provided for input parameters or will always be populated for output parameters.`})
29898
29937
  IsRequired: boolean;
29899
29938
 
29900
29939
  @Field()
@@ -30460,7 +30499,7 @@ export class LibraryResolver extends ResolverBase {
30460
30499
  //****************************************************************************
30461
30500
  // ENTITY CLASS for List Categories
30462
30501
  //****************************************************************************
30463
- @ObjectType()
30502
+ @ObjectType({ description: `Groups lists into categories for organization and navigation, supporting hierarchical categorization of user-created lists.` })
30464
30503
  export class ListCategory_ {
30465
30504
  @Field()
30466
30505
  @MaxLength(16)
@@ -31515,7 +31554,7 @@ export class CommunicationBaseMessageType_ {
31515
31554
  @MaxLength(16)
31516
31555
  ID: string;
31517
31556
 
31518
- @Field()
31557
+ @Field({description: `The unique identifier for this message type, used for routing and processing communications.`})
31519
31558
  @MaxLength(200)
31520
31559
  Type: string;
31521
31560
 
@@ -32391,7 +32430,7 @@ export class TemplateParam_ {
32391
32430
  @Field({nullable: true, description: `Default value of the parameter`})
32392
32431
  DefaultValue?: string;
32393
32432
 
32394
- @Field(() => Boolean)
32433
+ @Field(() => Boolean, {description: `Whether this parameter must be provided when using the template.`})
32395
32434
  IsRequired: boolean;
32396
32435
 
32397
32436
  @Field({nullable: true, description: `Only used when Type=Entity, this is used to link an Entity parameter with another parameter so that the rows in the Entity parameter can be filtered automatically based on the FKEY relationship between the Record and this Entity parameter. For example, if the Entity-based parameter is for an entity like Activities and there is another parameter of type Record for an entity like Contacts, in that situation the Activities Parameter would point to the Contacts parameter as the LinkedParameterName because we would filter down the Activities in each template render to only those linked to the Contact.`})
@@ -35973,6 +36012,13 @@ export class QueryEntity_ {
35973
36012
  @MaxLength(10)
35974
36013
  _mj__UpdatedAt: Date;
35975
36014
 
36015
+ @Field({description: `Indicates how this entity-query relationship was identified. "AI" means the QueryEntityServer used LLM analysis to parse the SQL/template and identify which MemberJunction entities are referenced (by analyzing table names, joins, and query structure). "Manual" means a user explicitly marked this entity as being used by the query. AI detection helps maintain accurate metadata automatically as queries evolve.`})
36016
+ @MaxLength(100)
36017
+ DetectionMethod: string;
36018
+
36019
+ @Field(() => Float, {nullable: true, description: `Confidence score (0.00-1.00) indicating how certain the AI was that this entity is actually used in the query. Only populated when DetectionMethod="AI". Considers factors like: direct table references vs indirect joins, clear entity names vs ambiguous aliases, and context from the query purpose. Lower scores might indicate the entity is only peripherally involved or the detection was uncertain.`})
36020
+ AutoDetectConfidenceScore?: number;
36021
+
35976
36022
  @Field()
35977
36023
  @MaxLength(510)
35978
36024
  Query: string;
@@ -35996,6 +36042,12 @@ export class CreateQueryEntityInput {
35996
36042
 
35997
36043
  @Field({ nullable: true })
35998
36044
  EntityID?: string;
36045
+
36046
+ @Field({ nullable: true })
36047
+ DetectionMethod?: string;
36048
+
36049
+ @Field(() => Float, { nullable: true })
36050
+ AutoDetectConfidenceScore: number | null;
35999
36051
  }
36000
36052
 
36001
36053
 
@@ -36013,6 +36065,12 @@ export class UpdateQueryEntityInput {
36013
36065
  @Field({ nullable: true })
36014
36066
  EntityID?: string;
36015
36067
 
36068
+ @Field({ nullable: true })
36069
+ DetectionMethod?: string;
36070
+
36071
+ @Field(() => Float, { nullable: true })
36072
+ AutoDetectConfidenceScore?: number | null;
36073
+
36016
36074
  @Field(() => [KeyValuePairInput], { nullable: true })
36017
36075
  OldValues___?: KeyValuePairInput[];
36018
36076
  }
@@ -37256,9 +37314,234 @@ export class DashboardUserPreferenceResolver extends ResolverBase {
37256
37314
  }
37257
37315
 
37258
37316
  //****************************************************************************
37259
- // ENTITY CLASS for Content Process Runs
37317
+ // ENTITY CLASS for MJ: Query Parameters
37318
+ //****************************************************************************
37319
+ @ObjectType({ description: `Stores parameter definitions for parameterized queries that use Nunjucks templates. Each parameter represents a dynamic value that can be passed when executing the query. Parameters are automatically extracted from the query template by the QueryEntityServer using LLM analysis, or can be manually defined. The combination of parameter metadata and validation filters creates a self-documenting, type-safe query execution system.` })
37320
+ export class QueryParameter_ {
37321
+ @Field()
37322
+ @MaxLength(16)
37323
+ ID: string;
37324
+
37325
+ @Field()
37326
+ @MaxLength(16)
37327
+ QueryID: string;
37328
+
37329
+ @Field({description: `The name of the parameter as it appears in the Nunjucks template. This must match exactly with the parameter reference in the SQL template. For example, if the template contains {{ userEmail | required | email }}, the Name would be "userEmail". Parameter names should follow JavaScript identifier rules: start with a letter, and contain only letters, numbers, and underscores.`})
37330
+ @MaxLength(510)
37331
+ Name: string;
37332
+
37333
+ @Field({description: `The data type of the parameter used for validation and type conversion. Valid values are: "string" for text values, "number" for integers or decimals, "date" for date/datetime values (ISO 8601 format expected), "boolean" for true/false values, and "array" for multiple values (typically used with IN clauses). The type determines which validation filters can be applied and how the parameter is processed.`})
37334
+ @MaxLength(100)
37335
+ Type: string;
37336
+
37337
+ @Field(() => Boolean, {nullable: true, description: `Indicates whether this parameter must be provided when executing the query. When true, the query execution will fail if the parameter is not supplied and no DefaultValue is set. This is automatically determined by the presence of the "required" filter in the template, but can be manually overridden. Required parameters ensure data integrity and prevent unintended query behavior.`})
37338
+ IsRequired?: boolean;
37339
+
37340
+ @Field({nullable: true, description: `The default value to use when the parameter is not provided during query execution. This value must be compatible with the parameter Type. For arrays, use JSON format like ["value1","value2"]. Default values allow queries to have sensible fallbacks while still accepting custom inputs. If a parameter is required (IsRequired=true), the default value is ignored.`})
37341
+ DefaultValue?: string;
37342
+
37343
+ @Field({nullable: true, description: `Human-readable description explaining the purpose and usage of this parameter. This is typically generated by LLM analysis of the query context but can be manually edited. Good descriptions include: what the parameter filters or controls, valid value ranges or formats, business meaning, and any special considerations. This text is shown in UI to help users understand what value to provide.`})
37344
+ Description?: string;
37345
+
37346
+ @Field({nullable: true, description: `A concrete example value demonstrating the proper format for this parameter. Generated by LLM based on the query context and validation filters. For example: "john@example.com" for an email parameter, "2024-01-15" for a date, or "["active","pending"]" for a status array. Sample values help users understand the expected format and can be used in API documentation.`})
37347
+ SampleValue?: string;
37348
+
37349
+ @Field({nullable: true, description: `JSON array of Nunjucks filter definitions that validate and transform the parameter value. Each filter is an object with "name" and optional "args" properties. Filters are applied in order and can include: validation (required, email, min, max), transformation (trim, upper, lower), SQL safety (sqlsafe, sqljoin), and type conversion (number, date). Example: [{"name":"required"},{"name":"email"},{"name":"sqlsafe"}]. The filter chain ensures type safety and prevents SQL injection.`})
37350
+ ValidationFilters?: string;
37351
+
37352
+ @Field({description: `Indicates how this parameter was identified and added to the system. "AI" means it was automatically detected by LLM analysis of the query template, including extraction of parameter name, type inference from filters, and generation of description. "Manual" means it was explicitly defined by a user. This helps track which parameters might need human review and provides transparency about the source of metadata.`})
37353
+ @MaxLength(100)
37354
+ DetectionMethod: string;
37355
+
37356
+ @Field(() => Float, {nullable: true, description: `Confidence score (0.00-1.00) indicating how certain the AI was about this parameter detection. Only populated when DetectionMethod="AI". Higher scores indicate the LLM was more confident about the parameter name, type, and usage. Scores above 0.80 are generally reliable, 0.60-0.80 may benefit from human review, and below 0.60 should be manually verified. This helps prioritize which auto-detected parameters need human attention.`})
37357
+ AutoDetectConfidenceScore?: number;
37358
+
37359
+ @Field()
37360
+ @MaxLength(10)
37361
+ _mj__CreatedAt: Date;
37362
+
37363
+ @Field()
37364
+ @MaxLength(10)
37365
+ _mj__UpdatedAt: Date;
37366
+
37367
+ @Field()
37368
+ @MaxLength(510)
37369
+ Query: string;
37370
+
37371
+ }
37372
+
37373
+ //****************************************************************************
37374
+ // INPUT TYPE for MJ: Query Parameters
37375
+ //****************************************************************************
37376
+ @InputType()
37377
+ export class CreateQueryParameterInput {
37378
+ @Field({ nullable: true })
37379
+ ID?: string;
37380
+
37381
+ @Field({ nullable: true })
37382
+ QueryID?: string;
37383
+
37384
+ @Field({ nullable: true })
37385
+ Name?: string;
37386
+
37387
+ @Field({ nullable: true })
37388
+ Type?: string;
37389
+
37390
+ @Field(() => Boolean, { nullable: true })
37391
+ IsRequired?: boolean | null;
37392
+
37393
+ @Field({ nullable: true })
37394
+ DefaultValue: string | null;
37395
+
37396
+ @Field({ nullable: true })
37397
+ Description: string | null;
37398
+
37399
+ @Field({ nullable: true })
37400
+ SampleValue: string | null;
37401
+
37402
+ @Field({ nullable: true })
37403
+ ValidationFilters: string | null;
37404
+
37405
+ @Field({ nullable: true })
37406
+ DetectionMethod?: string;
37407
+
37408
+ @Field(() => Float, { nullable: true })
37409
+ AutoDetectConfidenceScore: number | null;
37410
+ }
37411
+
37412
+
37413
+ //****************************************************************************
37414
+ // INPUT TYPE for MJ: Query Parameters
37415
+ //****************************************************************************
37416
+ @InputType()
37417
+ export class UpdateQueryParameterInput {
37418
+ @Field()
37419
+ ID: string;
37420
+
37421
+ @Field({ nullable: true })
37422
+ QueryID?: string;
37423
+
37424
+ @Field({ nullable: true })
37425
+ Name?: string;
37426
+
37427
+ @Field({ nullable: true })
37428
+ Type?: string;
37429
+
37430
+ @Field(() => Boolean, { nullable: true })
37431
+ IsRequired?: boolean | null;
37432
+
37433
+ @Field({ nullable: true })
37434
+ DefaultValue?: string | null;
37435
+
37436
+ @Field({ nullable: true })
37437
+ Description?: string | null;
37438
+
37439
+ @Field({ nullable: true })
37440
+ SampleValue?: string | null;
37441
+
37442
+ @Field({ nullable: true })
37443
+ ValidationFilters?: string | null;
37444
+
37445
+ @Field({ nullable: true })
37446
+ DetectionMethod?: string;
37447
+
37448
+ @Field(() => Float, { nullable: true })
37449
+ AutoDetectConfidenceScore?: number | null;
37450
+
37451
+ @Field(() => [KeyValuePairInput], { nullable: true })
37452
+ OldValues___?: KeyValuePairInput[];
37453
+ }
37454
+
37455
+ //****************************************************************************
37456
+ // RESOLVER for MJ: Query Parameters
37260
37457
  //****************************************************************************
37261
37458
  @ObjectType()
37459
+ export class RunQueryParameterViewResult {
37460
+ @Field(() => [QueryParameter_])
37461
+ Results: QueryParameter_[];
37462
+
37463
+ @Field(() => String, {nullable: true})
37464
+ UserViewRunID?: string;
37465
+
37466
+ @Field(() => Int, {nullable: true})
37467
+ RowCount: number;
37468
+
37469
+ @Field(() => Int, {nullable: true})
37470
+ TotalRowCount: number;
37471
+
37472
+ @Field(() => Int, {nullable: true})
37473
+ ExecutionTime: number;
37474
+
37475
+ @Field({nullable: true})
37476
+ ErrorMessage?: string;
37477
+
37478
+ @Field(() => Boolean, {nullable: false})
37479
+ Success: boolean;
37480
+ }
37481
+
37482
+ @Resolver(QueryParameter_)
37483
+ export class QueryParameterResolver extends ResolverBase {
37484
+ @Query(() => RunQueryParameterViewResult)
37485
+ async RunQueryParameterViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { dataSources, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
37486
+ const connPool = GetReadOnlyDataSource(dataSources, { allowFallbackToReadWrite: true });
37487
+ return super.RunViewByIDGeneric(input, connPool, userPayload, pubSub);
37488
+ }
37489
+
37490
+ @Query(() => RunQueryParameterViewResult)
37491
+ async RunQueryParameterViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { dataSources, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
37492
+ const connPool = GetReadOnlyDataSource(dataSources, { allowFallbackToReadWrite: true });
37493
+ return super.RunViewByNameGeneric(input, connPool, userPayload, pubSub);
37494
+ }
37495
+
37496
+ @Query(() => RunQueryParameterViewResult)
37497
+ async RunQueryParameterDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { dataSources, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
37498
+ const connPool = GetReadOnlyDataSource(dataSources, { allowFallbackToReadWrite: true });
37499
+ input.EntityName = 'MJ: Query Parameters';
37500
+ return super.RunDynamicViewGeneric(input, connPool, userPayload, pubSub);
37501
+ }
37502
+ @Query(() => QueryParameter_, { nullable: true })
37503
+ async QueryParameter(@Arg('ID', () => String) ID: string, @Ctx() { dataSources, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<QueryParameter_ | null> {
37504
+ this.CheckUserReadPermissions('MJ: Query Parameters', userPayload);
37505
+ const connPool = GetReadOnlyDataSource(dataSources, { allowFallbackToReadWrite: true });
37506
+ const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwQueryParameters] WHERE [ID]='${ID}' ` + this.getRowLevelSecurityWhereClause('MJ: Query Parameters', userPayload, EntityPermissionType.Read, 'AND');
37507
+ const rows = await SQLServerDataProvider.ExecuteSQLWithPool(connPool, sSQL, undefined, this.GetUserFromPayload(userPayload));
37508
+ const result = this.MapFieldNamesToCodeNames('MJ: Query Parameters', rows && rows.length > 0 ? rows[0] : {})
37509
+ return result;
37510
+ }
37511
+
37512
+ @Mutation(() => QueryParameter_)
37513
+ async CreateQueryParameter(
37514
+ @Arg('input', () => CreateQueryParameterInput) input: CreateQueryParameterInput,
37515
+ @Ctx() { dataSources, userPayload }: AppContext,
37516
+ @PubSub() pubSub: PubSubEngine
37517
+ ) {
37518
+ const connPool = GetReadWriteDataSource(dataSources);
37519
+ return this.CreateRecord('MJ: Query Parameters', input, connPool, userPayload, pubSub)
37520
+ }
37521
+
37522
+ @Mutation(() => QueryParameter_)
37523
+ async UpdateQueryParameter(
37524
+ @Arg('input', () => UpdateQueryParameterInput) input: UpdateQueryParameterInput,
37525
+ @Ctx() { dataSources, userPayload }: AppContext,
37526
+ @PubSub() pubSub: PubSubEngine
37527
+ ) {
37528
+ const connPool = GetReadWriteDataSource(dataSources);
37529
+ return this.UpdateRecord('MJ: Query Parameters', input, connPool, userPayload, pubSub);
37530
+ }
37531
+
37532
+ @Mutation(() => QueryParameter_)
37533
+ async DeleteQueryParameter(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { dataSources, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
37534
+ const connPool = GetReadWriteDataSource(dataSources);
37535
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
37536
+ return this.DeleteRecord('MJ: Query Parameters', key, options, connPool, userPayload, pubSub);
37537
+ }
37538
+
37539
+ }
37540
+
37541
+ //****************************************************************************
37542
+ // ENTITY CLASS for Content Process Runs
37543
+ //****************************************************************************
37544
+ @ObjectType({ description: `Tracks execution of content tagging workflows, logging the status and details of each execution and ensuring efficient processing of content.` })
37262
37545
  export class ContentProcessRun_ {
37263
37546
  @Field()
37264
37547
  @MaxLength(16)
@@ -37268,11 +37551,11 @@ export class ContentProcessRun_ {
37268
37551
  @MaxLength(16)
37269
37552
  SourceID: string;
37270
37553
 
37271
- @Field({nullable: true})
37554
+ @Field({nullable: true, description: `Timestamp when the content processing workflow began execution.`})
37272
37555
  @MaxLength(8)
37273
37556
  StartTime?: Date;
37274
37557
 
37275
- @Field({nullable: true})
37558
+ @Field({nullable: true, description: `Timestamp when the content processing workflow completed or failed.`})
37276
37559
  @MaxLength(8)
37277
37560
  EndTime?: Date;
37278
37561
 
@@ -37280,7 +37563,7 @@ export class ContentProcessRun_ {
37280
37563
  @MaxLength(200)
37281
37564
  Status?: string;
37282
37565
 
37283
- @Field(() => Int, {nullable: true})
37566
+ @Field(() => Int, {nullable: true, description: `Count of content items successfully processed during this run.`})
37284
37567
  ProcessedItems?: number;
37285
37568
 
37286
37569
  @Field()
@@ -37438,7 +37721,7 @@ export class ContentProcessRunResolver extends ResolverBase {
37438
37721
  //****************************************************************************
37439
37722
  // ENTITY CLASS for Content Sources
37440
37723
  //****************************************************************************
37441
- @ObjectType()
37724
+ @ObjectType({ description: `Configures connections to external content repositories and systems from which content is imported, synchronized, and tagged.` })
37442
37725
  export class ContentSource_ {
37443
37726
  @Field()
37444
37727
  @MaxLength(16)
@@ -37460,7 +37743,7 @@ export class ContentSource_ {
37460
37743
  @MaxLength(16)
37461
37744
  ContentFileTypeID: string;
37462
37745
 
37463
- @Field()
37746
+ @Field({description: `Base URL or connection string for accessing this content source.`})
37464
37747
  @MaxLength(4000)
37465
37748
  URL: string;
37466
37749
 
@@ -37666,7 +37949,7 @@ export class ContentSourceResolver extends ResolverBase {
37666
37949
  //****************************************************************************
37667
37950
  // ENTITY CLASS for Content Source Params
37668
37951
  //****************************************************************************
37669
- @ObjectType()
37952
+ @ObjectType({ description: `Stores configuration parameters for specific content source instances, customizing how content is retrieved and processed from each source.` })
37670
37953
  export class ContentSourceParam_ {
37671
37954
  @Field()
37672
37955
  @MaxLength(16)
@@ -37676,11 +37959,11 @@ export class ContentSourceParam_ {
37676
37959
  @MaxLength(16)
37677
37960
  ContentSourceID: string;
37678
37961
 
37679
- @Field()
37962
+ @Field({description: `Reference to the parameter definition in Content Source Type Params.`})
37680
37963
  @MaxLength(16)
37681
37964
  ContentSourceTypeParamID: string;
37682
37965
 
37683
- @Field()
37966
+ @Field({description: `The configured value for this parameter on this specific content source.`})
37684
37967
  Value: string;
37685
37968
 
37686
37969
  @Field()
@@ -37826,7 +38109,7 @@ export class ContentSourceParamResolver extends ResolverBase {
37826
38109
  //****************************************************************************
37827
38110
  // ENTITY CLASS for Content Source Types
37828
38111
  //****************************************************************************
37829
- @ObjectType()
38112
+ @ObjectType({ description: `Catalogs available content source types such as file systems, APIs, websites, databases, and cloud storage platforms with their capabilities.` })
37830
38113
  export class ContentSourceType_ {
37831
38114
  @Field()
37832
38115
  @MaxLength(16)
@@ -37999,7 +38282,7 @@ export class ContentSourceTypeResolver extends ResolverBase {
37999
38282
  //****************************************************************************
38000
38283
  // ENTITY CLASS for Content Source Type Params
38001
38284
  //****************************************************************************
38002
- @ObjectType()
38285
+ @ObjectType({ description: `Defines required and optional parameters for content source types, establishing the configuration for each source type.` })
38003
38286
  export class ContentSourceTypeParam_ {
38004
38287
  @Field()
38005
38288
  @MaxLength(16)
@@ -38012,14 +38295,14 @@ export class ContentSourceTypeParam_ {
38012
38295
  @Field({nullable: true})
38013
38296
  Description?: string;
38014
38297
 
38015
- @Field({nullable: true})
38298
+ @Field({nullable: true, description: `Data type of the parameter (string, number, boolean, date, etc.).`})
38016
38299
  @MaxLength(100)
38017
38300
  Type?: string;
38018
38301
 
38019
- @Field({nullable: true})
38302
+ @Field({nullable: true, description: `Default value to use if not specified when configuring a content source.`})
38020
38303
  DefaultValue?: string;
38021
38304
 
38022
- @Field(() => Boolean)
38305
+ @Field(() => Boolean, {description: `Indicates whether this parameter must be provided when setting up a content source.`})
38023
38306
  IsRequired: boolean;
38024
38307
 
38025
38308
  @Field()
@@ -38173,7 +38456,7 @@ export class ContentSourceTypeParamResolver extends ResolverBase {
38173
38456
  //****************************************************************************
38174
38457
  // ENTITY CLASS for Content Types
38175
38458
  //****************************************************************************
38176
- @ObjectType()
38459
+ @ObjectType({ description: `Defines categories of content with specific schemas, behaviors, and processing rules for structured content management.` })
38177
38460
  export class ContentType_ {
38178
38461
  @Field()
38179
38462
  @MaxLength(16)
@@ -38190,10 +38473,10 @@ export class ContentType_ {
38190
38473
  @MaxLength(16)
38191
38474
  AIModelID: string;
38192
38475
 
38193
- @Field(() => Int)
38476
+ @Field(() => Int, {description: `Minimum number of tags that must be applied to content of this type.`})
38194
38477
  MinTags: number;
38195
38478
 
38196
- @Field(() => Int)
38479
+ @Field(() => Int, {description: `Maximum number of tags allowed on content of this type.`})
38197
38480
  MaxTags: number;
38198
38481
 
38199
38482
  @Field()
@@ -38377,13 +38660,13 @@ export class ContentTypeResolver extends ResolverBase {
38377
38660
  //****************************************************************************
38378
38661
  // ENTITY CLASS for Content Type Attributes
38379
38662
  //****************************************************************************
38380
- @ObjectType()
38663
+ @ObjectType({ description: `Defines the attributes available for extraction via prompt for each content type.` })
38381
38664
  export class ContentTypeAttribute_ {
38382
38665
  @Field()
38383
38666
  @MaxLength(16)
38384
38667
  ID: string;
38385
38668
 
38386
- @Field()
38669
+ @Field({description: `Reference to the Content Type this attribute belongs to.`})
38387
38670
  @MaxLength(16)
38388
38671
  ContentTypeID: string;
38389
38672
 
@@ -38391,7 +38674,7 @@ export class ContentTypeAttribute_ {
38391
38674
  @MaxLength(200)
38392
38675
  Name: string;
38393
38676
 
38394
- @Field()
38677
+ @Field({description: `The AI prompt template used to extract this attribute from content.`})
38395
38678
  Prompt: string;
38396
38679
 
38397
38680
  @Field({nullable: true})
@@ -38542,7 +38825,7 @@ export class ContentTypeAttributeResolver extends ResolverBase {
38542
38825
  //****************************************************************************
38543
38826
  // ENTITY CLASS for Content File Types
38544
38827
  //****************************************************************************
38545
- @ObjectType()
38828
+ @ObjectType({ description: `Defines supported file types for content management, including extensions and processing rules for different content formats.` })
38546
38829
  export class ContentFileType_ {
38547
38830
  @Field()
38548
38831
  @MaxLength(16)
@@ -38552,7 +38835,7 @@ export class ContentFileType_ {
38552
38835
  @MaxLength(510)
38553
38836
  Name: string;
38554
38837
 
38555
- @Field({nullable: true})
38838
+ @Field({nullable: true, description: `The file extension (e.g., .pdf, .docx, .jpg) used to identify this content type.`})
38556
38839
  @MaxLength(510)
38557
38840
  FileExtension?: string;
38558
38841
 
@@ -38715,7 +38998,7 @@ export class ContentFileTypeResolver extends ResolverBase {
38715
38998
  //****************************************************************************
38716
38999
  // ENTITY CLASS for Content Items
38717
39000
  //****************************************************************************
38718
- @ObjectType()
39001
+ @ObjectType({ description: `Stores extracted text from content assets, as well as the source location, versioning, and links to extracted tags and attributes.` })
38719
39002
  export class ContentItem_ {
38720
39003
  @Field()
38721
39004
  @MaxLength(16)
@@ -38744,15 +39027,15 @@ export class ContentItem_ {
38744
39027
  @MaxLength(16)
38745
39028
  ContentFileTypeID: string;
38746
39029
 
38747
- @Field({nullable: true})
39030
+ @Field({nullable: true, description: `Hash value of the content used to detect changes and prevent duplicate processing.`})
38748
39031
  @MaxLength(200)
38749
39032
  Checksum?: string;
38750
39033
 
38751
- @Field()
39034
+ @Field({description: `The source location URL where this content was retrieved from.`})
38752
39035
  @MaxLength(4000)
38753
39036
  URL: string;
38754
39037
 
38755
- @Field({nullable: true})
39038
+ @Field({nullable: true, description: `The extracted text content from the source document or file.`})
38756
39039
  Text?: string;
38757
39040
 
38758
39041
  @Field()
@@ -38972,7 +39255,7 @@ export class ContentItemResolver extends ResolverBase {
38972
39255
  //****************************************************************************
38973
39256
  // ENTITY CLASS for Content Item Attributes
38974
39257
  //****************************************************************************
38975
- @ObjectType()
39258
+ @ObjectType({ description: `Stores metadata attributes extracted with prompting for content items, enabling flexible key-value properties and custom fields for content classification.` })
38976
39259
  export class ContentItemAttribute_ {
38977
39260
  @Field()
38978
39261
  @MaxLength(16)
@@ -38986,7 +39269,7 @@ export class ContentItemAttribute_ {
38986
39269
  @MaxLength(200)
38987
39270
  Name: string;
38988
39271
 
38989
- @Field()
39272
+ @Field({description: `The extracted or assigned value for this attribute on the content item.`})
38990
39273
  Value: string;
38991
39274
 
38992
39275
  @Field()
@@ -39132,7 +39415,7 @@ export class ContentItemAttributeResolver extends ResolverBase {
39132
39415
  //****************************************************************************
39133
39416
  // ENTITY CLASS for Content Item Tags
39134
39417
  //****************************************************************************
39135
- @ObjectType()
39418
+ @ObjectType({ description: `Links tags to content items for categorization, searchability, and content discovery across the system.` })
39136
39419
  export class ContentItemTag_ {
39137
39420
  @Field()
39138
39421
  @MaxLength(16)
@@ -39142,7 +39425,7 @@ export class ContentItemTag_ {
39142
39425
  @MaxLength(16)
39143
39426
  ItemID: string;
39144
39427
 
39145
- @Field()
39428
+ @Field({description: `The tag text applied to the content item for categorization and search.`})
39146
39429
  @MaxLength(400)
39147
39430
  Tag: string;
39148
39431
 
@@ -39318,7 +39601,7 @@ export class GeneratedCode_ {
39318
39601
  @MaxLength(16)
39319
39602
  LinkedEntityID?: string;
39320
39603
 
39321
- @Field({nullable: true})
39604
+ @Field({nullable: true, description: `JSON containing the primary key(s) of the record this generated code is associated with.`})
39322
39605
  LinkedRecordPrimaryKey?: string;
39323
39606
 
39324
39607
  @Field({description: `Status of the generated code, e.g., Pending, Approved, or Rejected.`})
@@ -39733,6 +40016,10 @@ export class AIPromptRun_ {
39733
40016
  @Field(() => Int, {nullable: true, description: `Total time spent in failover attempts in milliseconds`})
39734
40017
  TotalFailoverDuration?: number;
39735
40018
 
40019
+ @Field({nullable: true, description: `If this run was initiated as a re-run of another prompt run, this field links back to the original run ID`})
40020
+ @MaxLength(16)
40021
+ RerunFromPromptRunID?: string;
40022
+
39736
40023
  @Field()
39737
40024
  @MaxLength(510)
39738
40025
  Prompt: string;
@@ -39943,6 +40230,9 @@ export class CreateAIPromptRunInput {
39943
40230
 
39944
40231
  @Field(() => Int, { nullable: true })
39945
40232
  TotalFailoverDuration: number | null;
40233
+
40234
+ @Field({ nullable: true })
40235
+ RerunFromPromptRunID: string | null;
39946
40236
  }
39947
40237
 
39948
40238
 
@@ -40125,6 +40415,9 @@ export class UpdateAIPromptRunInput {
40125
40415
  @Field(() => Int, { nullable: true })
40126
40416
  TotalFailoverDuration?: number | null;
40127
40417
 
40418
+ @Field({ nullable: true })
40419
+ RerunFromPromptRunID?: string | null;
40420
+
40128
40421
  @Field(() => [KeyValuePairInput], { nullable: true })
40129
40422
  OldValues___?: KeyValuePairInput[];
40130
40423
  }