diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/build-standard-flat-view-field-metadata-maps.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/build-standard-flat-view-field-metadata-maps.util.ts index 677b50b98a..3bc7440aa7 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/build-standard-flat-view-field-metadata-maps.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/build-standard-flat-view-field-metadata-maps.util.ts @@ -3,7 +3,17 @@ import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/typ import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; +import { computeStandardCalendarEventViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-calendar-event-view-fields.util'; +import { computeStandardCompanyViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-company-view-fields.util'; +import { computeStandardDashboardViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-dashboard-view-fields.util'; +import { computeStandardMessageThreadViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-thread-view-fields.util'; +import { computeStandardMessageViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-view-fields.util'; +import { computeStandardNoteViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-note-view-fields.util'; +import { computeStandardOpportunityViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-opportunity-view-fields.util'; +import { computeStandardPersonViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-person-view-fields.util'; import { computeStandardTaskViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-task-view-fields.util'; +import { computeStandardWorkflowRunViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-workflow-run-view-fields.util'; +import { computeStandardWorkflowViewFields } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-workflow-view-fields.util'; import { type CreateStandardViewFieldArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; type StandardViewFieldBuilder

= ( @@ -11,7 +21,17 @@ type StandardViewFieldBuilder

= ( ) => Record; const STANDARD_FLAT_VIEW_FIELD_METADATA_BUILDERS_BY_OBJECT_NAME = { + calendarEvent: computeStandardCalendarEventViewFields, + company: computeStandardCompanyViewFields, + dashboard: computeStandardDashboardViewFields, + message: computeStandardMessageViewFields, + messageThread: computeStandardMessageThreadViewFields, + note: computeStandardNoteViewFields, + opportunity: computeStandardOpportunityViewFields, + person: computeStandardPersonViewFields, task: computeStandardTaskViewFields, + workflow: computeStandardWorkflowViewFields, + workflowRun: computeStandardWorkflowRunViewFields, } as const satisfies { [P in AllStandardObjectName]?: StandardViewFieldBuilder

; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-calendar-event-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-calendar-event-view-fields.util.ts new file mode 100644 index 0000000000..2e664c92f9 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-calendar-event-view-fields.util.ts @@ -0,0 +1,108 @@ +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardCalendarEventViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + allCalendarEventsTitle: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'calendarEvent', + context: { + viewName: 'allCalendarEvents', + viewFieldName: 'title', + fieldName: 'title', + position: 0, + isVisible: true, + size: 150, + }, + }), + allCalendarEventsStartsAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'calendarEvent', + context: { + viewName: 'allCalendarEvents', + viewFieldName: 'startsAt', + fieldName: 'startsAt', + position: 1, + isVisible: true, + size: 150, + }, + }), + allCalendarEventsEndsAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'calendarEvent', + context: { + viewName: 'allCalendarEvents', + viewFieldName: 'endsAt', + fieldName: 'endsAt', + position: 2, + isVisible: true, + size: 150, + }, + }), + allCalendarEventsIsFullDay: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'calendarEvent', + context: { + viewName: 'allCalendarEvents', + viewFieldName: 'isFullDay', + fieldName: 'isFullDay', + position: 3, + isVisible: true, + size: 100, + }, + }), + allCalendarEventsLocation: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'calendarEvent', + context: { + viewName: 'allCalendarEvents', + viewFieldName: 'location', + fieldName: 'location', + position: 4, + isVisible: true, + size: 150, + }, + }), + allCalendarEventsConferenceLink: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'calendarEvent', + context: { + viewName: 'allCalendarEvents', + viewFieldName: 'conferenceLink', + fieldName: 'conferenceLink', + position: 5, + isVisible: true, + size: 150, + }, + }), + allCalendarEventsIsCanceled: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'calendarEvent', + context: { + viewName: 'allCalendarEvents', + viewFieldName: 'isCanceled', + fieldName: 'isCanceled', + position: 6, + isVisible: true, + size: 100, + }, + }), + allCalendarEventsCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'calendarEvent', + context: { + viewName: 'allCalendarEvents', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 7, + isVisible: true, + size: 150, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-company-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-company-view-fields.util.ts new file mode 100644 index 0000000000..fa9e788984 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-company-view-fields.util.ts @@ -0,0 +1,113 @@ +import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant'; +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardCompanyViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + allCompaniesName: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'allCompanies', + viewFieldName: 'name', + fieldName: 'name', + position: 0, + isVisible: true, + size: 150, + }, + }), + allCompaniesDomainName: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'allCompanies', + viewFieldName: 'domainName', + fieldName: 'domainName', + position: 1, + isVisible: true, + size: 100, + aggregateOperation: AggregateOperations.COUNT, + }, + }), + allCompaniesCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'allCompanies', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 2, + isVisible: true, + size: 150, + }, + }), + allCompaniesAccountOwner: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'allCompanies', + viewFieldName: 'accountOwner', + fieldName: 'accountOwner', + position: 3, + isVisible: true, + size: 150, + }, + }), + allCompaniesCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'allCompanies', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 4, + isVisible: true, + size: 150, + }, + }), + allCompaniesEmployees: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'allCompanies', + viewFieldName: 'employees', + fieldName: 'employees', + position: 5, + isVisible: true, + size: 150, + aggregateOperation: AggregateOperations.MAX, + }, + }), + allCompaniesLinkedinLink: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'allCompanies', + viewFieldName: 'linkedinLink', + fieldName: 'linkedinLink', + position: 6, + isVisible: true, + size: 170, + aggregateOperation: AggregateOperations.PERCENTAGE_EMPTY, + }, + }), + allCompaniesAddress: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'allCompanies', + viewFieldName: 'address', + fieldName: 'address', + position: 7, + isVisible: true, + size: 170, + aggregateOperation: AggregateOperations.COUNT_NOT_EMPTY, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-dashboard-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-dashboard-view-fields.util.ts new file mode 100644 index 0000000000..518fde46a3 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-dashboard-view-fields.util.ts @@ -0,0 +1,60 @@ +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardDashboardViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + allDashboardsTitle: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'dashboard', + context: { + viewName: 'allDashboards', + viewFieldName: 'title', + fieldName: 'title', + position: 0, + isVisible: true, + size: 210, + }, + }), + allDashboardsCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'dashboard', + context: { + viewName: 'allDashboards', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 1, + isVisible: true, + size: 150, + }, + }), + allDashboardsCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'dashboard', + context: { + viewName: 'allDashboards', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 2, + isVisible: true, + size: 150, + }, + }), + allDashboardsUpdatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'dashboard', + context: { + viewName: 'allDashboards', + viewFieldName: 'updatedAt', + fieldName: 'updatedAt', + position: 3, + isVisible: true, + size: 150, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-thread-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-thread-view-fields.util.ts new file mode 100644 index 0000000000..97fabbbe39 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-thread-view-fields.util.ts @@ -0,0 +1,36 @@ +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardMessageThreadViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + allMessageThreadsMessages: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'messageThread', + context: { + viewName: 'allMessageThreads', + viewFieldName: 'messages', + fieldName: 'messages', + position: 0, + isVisible: true, + size: 150, + }, + }), + allMessageThreadsCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'messageThread', + context: { + viewName: 'allMessageThreads', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 1, + isVisible: true, + size: 150, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-view-fields.util.ts new file mode 100644 index 0000000000..91dba9a062 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-message-view-fields.util.ts @@ -0,0 +1,96 @@ +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardMessageViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + allMessagesSubject: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'message', + context: { + viewName: 'allMessages', + viewFieldName: 'subject', + fieldName: 'subject', + position: 0, + isVisible: true, + size: 150, + }, + }), + allMessagesMessageThread: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'message', + context: { + viewName: 'allMessages', + viewFieldName: 'messageThread', + fieldName: 'messageThread', + position: 1, + isVisible: true, + size: 150, + }, + }), + allMessagesMessageParticipants: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'message', + context: { + viewName: 'allMessages', + viewFieldName: 'messageParticipants', + fieldName: 'messageParticipants', + position: 2, + isVisible: true, + size: 150, + }, + }), + allMessagesReceivedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'message', + context: { + viewName: 'allMessages', + viewFieldName: 'receivedAt', + fieldName: 'receivedAt', + position: 3, + isVisible: true, + size: 150, + }, + }), + allMessagesHeaderMessageId: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'message', + context: { + viewName: 'allMessages', + viewFieldName: 'headerMessageId', + fieldName: 'headerMessageId', + position: 4, + isVisible: true, + size: 180, + }, + }), + allMessagesText: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'message', + context: { + viewName: 'allMessages', + viewFieldName: 'text', + fieldName: 'text', + position: 5, + isVisible: true, + size: 200, + }, + }), + allMessagesCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'message', + context: { + viewName: 'allMessages', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 6, + isVisible: true, + size: 150, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-note-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-note-view-fields.util.ts new file mode 100644 index 0000000000..ddedc184e4 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-note-view-fields.util.ts @@ -0,0 +1,72 @@ +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardNoteViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + allNotesTitle: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'allNotes', + viewFieldName: 'title', + fieldName: 'title', + position: 0, + isVisible: true, + size: 210, + }, + }), + allNotesNoteTargets: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'allNotes', + viewFieldName: 'noteTargets', + fieldName: 'noteTargets', + position: 1, + isVisible: true, + size: 150, + }, + }), + allNotesBodyV2: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'allNotes', + viewFieldName: 'bodyV2', + fieldName: 'bodyV2', + position: 2, + isVisible: true, + size: 150, + }, + }), + allNotesCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'allNotes', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 3, + isVisible: true, + size: 150, + }, + }), + allNotesCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'allNotes', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 4, + isVisible: true, + size: 150, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-opportunity-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-opportunity-view-fields.util.ts new file mode 100644 index 0000000000..eae3a5a993 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-opportunity-view-fields.util.ts @@ -0,0 +1,162 @@ +import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant'; +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardOpportunityViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + // allOpportunities view fields + allOpportunitiesName: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'allOpportunities', + viewFieldName: 'name', + fieldName: 'name', + position: 0, + isVisible: true, + size: 150, + }, + }), + allOpportunitiesAmount: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'allOpportunities', + viewFieldName: 'amount', + fieldName: 'amount', + position: 1, + isVisible: true, + size: 150, + aggregateOperation: AggregateOperations.AVG, + }, + }), + allOpportunitiesCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'allOpportunities', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 2, + isVisible: true, + size: 150, + }, + }), + allOpportunitiesCloseDate: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'allOpportunities', + viewFieldName: 'closeDate', + fieldName: 'closeDate', + position: 3, + isVisible: true, + size: 150, + aggregateOperation: AggregateOperations.MIN, + }, + }), + allOpportunitiesCompany: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'allOpportunities', + viewFieldName: 'company', + fieldName: 'company', + position: 4, + isVisible: true, + size: 150, + }, + }), + allOpportunitiesPointOfContact: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'allOpportunities', + viewFieldName: 'pointOfContact', + fieldName: 'pointOfContact', + position: 5, + isVisible: true, + size: 150, + }, + }), + + // byStage view fields + byStageName: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewFieldName: 'name', + fieldName: 'name', + position: 0, + isVisible: true, + size: 150, + }, + }), + byStageAmount: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewFieldName: 'amount', + fieldName: 'amount', + position: 1, + isVisible: true, + size: 150, + }, + }), + byStageCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 2, + isVisible: true, + size: 150, + }, + }), + byStageCloseDate: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewFieldName: 'closeDate', + fieldName: 'closeDate', + position: 3, + isVisible: true, + size: 150, + }, + }), + byStageCompany: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewFieldName: 'company', + fieldName: 'company', + position: 4, + isVisible: true, + size: 150, + }, + }), + byStagePointOfContact: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewFieldName: 'pointOfContact', + fieldName: 'pointOfContact', + position: 5, + isVisible: true, + size: 150, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-person-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-person-view-fields.util.ts new file mode 100644 index 0000000000..bf98a8f245 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-person-view-fields.util.ts @@ -0,0 +1,136 @@ +import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant'; +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardPersonViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + allPeopleName: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'name', + fieldName: 'name', + position: 0, + isVisible: true, + size: 210, + }, + }), + allPeopleEmails: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'emails', + fieldName: 'emails', + position: 1, + isVisible: true, + size: 150, + aggregateOperation: AggregateOperations.COUNT_UNIQUE_VALUES, + }, + }), + allPeopleCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 2, + isVisible: true, + size: 150, + }, + }), + allPeopleCompany: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'company', + fieldName: 'company', + position: 3, + isVisible: true, + size: 150, + }, + }), + allPeoplePhones: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'phones', + fieldName: 'phones', + position: 4, + isVisible: true, + size: 150, + aggregateOperation: AggregateOperations.PERCENTAGE_EMPTY, + }, + }), + allPeopleCreatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'createdAt', + fieldName: 'createdAt', + position: 5, + isVisible: true, + size: 150, + aggregateOperation: AggregateOperations.MIN, + }, + }), + allPeopleCity: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'city', + fieldName: 'city', + position: 6, + isVisible: true, + size: 150, + }, + }), + allPeopleJobTitle: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'jobTitle', + fieldName: 'jobTitle', + position: 7, + isVisible: true, + size: 150, + }, + }), + allPeopleLinkedinLink: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'linkedinLink', + fieldName: 'linkedinLink', + position: 8, + isVisible: true, + size: 150, + }, + }), + allPeopleXLink: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + viewFieldName: 'xLink', + fieldName: 'xLink', + position: 9, + isVisible: true, + size: 150, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-workflow-run-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-workflow-run-view-fields.util.ts new file mode 100644 index 0000000000..ef712fd6e0 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-workflow-run-view-fields.util.ts @@ -0,0 +1,48 @@ +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardWorkflowRunViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + allWorkflowRunsName: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'workflowRun', + context: { + viewName: 'allWorkflowRuns', + viewFieldName: 'name', + fieldName: 'name', + position: 0, + isVisible: true, + size: 210, + }, + }), + allWorkflowRunsWorkflow: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'workflowRun', + context: { + viewName: 'allWorkflowRuns', + viewFieldName: 'workflow', + fieldName: 'workflow', + position: 1, + isVisible: true, + size: 150, + }, + }), + allWorkflowRunsStatus: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'workflowRun', + context: { + viewName: 'allWorkflowRuns', + viewFieldName: 'status', + fieldName: 'status', + position: 2, + isVisible: true, + size: 150, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-workflow-view-fields.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-workflow-view-fields.util.ts new file mode 100644 index 0000000000..5dd294efda --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-field/compute-standard-workflow-view-fields.util.ts @@ -0,0 +1,84 @@ +import { type FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; +import { + createStandardViewFieldFlatMetadata, + type CreateStandardViewFieldArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-field/create-standard-view-field-flat-metadata.util'; + +export const computeStandardWorkflowViewFields = ( + args: Omit, 'context'>, +): Record => { + return { + allWorkflowsName: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'workflow', + context: { + viewName: 'allWorkflows', + viewFieldName: 'name', + fieldName: 'name', + position: 0, + isVisible: true, + size: 210, + }, + }), + allWorkflowsStatuses: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'workflow', + context: { + viewName: 'allWorkflows', + viewFieldName: 'statuses', + fieldName: 'statuses', + position: 1, + isVisible: true, + size: 150, + }, + }), + allWorkflowsUpdatedAt: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'workflow', + context: { + viewName: 'allWorkflows', + viewFieldName: 'updatedAt', + fieldName: 'updatedAt', + position: 2, + isVisible: true, + size: 150, + }, + }), + allWorkflowsCreatedBy: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'workflow', + context: { + viewName: 'allWorkflows', + viewFieldName: 'createdBy', + fieldName: 'createdBy', + position: 3, + isVisible: true, + size: 150, + }, + }), + allWorkflowsVersions: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'workflow', + context: { + viewName: 'allWorkflows', + viewFieldName: 'versions', + fieldName: 'versions', + position: 4, + isVisible: true, + size: 150, + }, + }), + allWorkflowsRuns: createStandardViewFieldFlatMetadata({ + ...args, + objectName: 'workflow', + context: { + viewName: 'allWorkflows', + viewFieldName: 'runs', + fieldName: 'runs', + position: 5, + isVisible: true, + size: 150, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-group/build-standard-flat-view-group-metadata-maps.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-group/build-standard-flat-view-group-metadata-maps.util.ts index 5835b2f5a8..b87da77182 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-group/build-standard-flat-view-group-metadata-maps.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-group/build-standard-flat-view-group-metadata-maps.util.ts @@ -3,6 +3,7 @@ import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/typ import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; import { type FlatViewGroup } from 'src/engine/metadata-modules/flat-view-group/types/flat-view-group.type'; import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; +import { computeStandardOpportunityViewGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-group/compute-standard-opportunity-view-groups.util'; import { type CreateStandardViewGroupArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-group/create-standard-view-group-flat-metadata.util'; import { computeStandardTaskViewGroups } from 'src/engine/workspace-manager/twenty-standard-application/utils/view-group/compute-standard-task-view-groups.util'; @@ -11,6 +12,7 @@ type StandardViewGroupBuilder

= ( ) => Record; const STANDARD_FLAT_VIEW_GROUP_METADATA_BUILDERS_BY_OBJECT_NAME = { + opportunity: computeStandardOpportunityViewGroups, task: computeStandardTaskViewGroups, } as const satisfies { [P in AllStandardObjectName]?: StandardViewGroupBuilder

; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-group/compute-standard-opportunity-view-groups.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-group/compute-standard-opportunity-view-groups.util.ts new file mode 100644 index 0000000000..32f3262f5e --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view-group/compute-standard-opportunity-view-groups.util.ts @@ -0,0 +1,72 @@ +import { type FlatViewGroup } from 'src/engine/metadata-modules/flat-view-group/types/flat-view-group.type'; +import { + createStandardViewGroupFlatMetadata, + type CreateStandardViewGroupArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view-group/create-standard-view-group-flat-metadata.util'; + +export const computeStandardOpportunityViewGroups = ( + args: Omit, 'context'>, +): Record => { + return { + byStageNew: createStandardViewGroupFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewGroupName: 'new', + fieldName: 'stage', + isVisible: true, + fieldValue: 'NEW', + position: 0, + }, + }), + byStageScreening: createStandardViewGroupFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewGroupName: 'screening', + fieldName: 'stage', + isVisible: true, + fieldValue: 'SCREENING', + position: 1, + }, + }), + byStageMeeting: createStandardViewGroupFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewGroupName: 'meeting', + fieldName: 'stage', + isVisible: true, + fieldValue: 'MEETING', + position: 2, + }, + }), + byStageProposal: createStandardViewGroupFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewGroupName: 'proposal', + fieldName: 'stage', + isVisible: true, + fieldValue: 'PROPOSAL', + position: 3, + }, + }), + byStageCustomer: createStandardViewGroupFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + viewGroupName: 'customer', + fieldName: 'stage', + isVisible: true, + fieldValue: 'CUSTOMER', + position: 4, + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/build-standard-flat-view-metadata-maps.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/build-standard-flat-view-metadata-maps.util.ts index ff6435ffe1..9b905d087d 100644 --- a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/build-standard-flat-view-metadata-maps.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/build-standard-flat-view-metadata-maps.util.ts @@ -3,7 +3,17 @@ import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/typ import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; import { type AllStandardObjectName } from 'src/engine/workspace-manager/twenty-standard-application/types/all-standard-object-name.type'; +import { computeStandardCalendarEventViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-calendar-event-views.util'; +import { computeStandardCompanyViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util'; +import { computeStandardDashboardViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-dashboard-views.util'; +import { computeStandardMessageThreadViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-thread-views.util'; +import { computeStandardMessageViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-views.util'; +import { computeStandardNoteViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-note-views.util'; +import { computeStandardOpportunityViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util'; +import { computeStandardPersonViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-person-views.util'; import { computeStandardTaskViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-task-views.util'; +import { computeStandardWorkflowRunViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-workflow-run-views.util'; +import { computeStandardWorkflowViews } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-workflow-views.util'; import { type CreateStandardViewArgs } from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; type StandardViewBuilder

= ( @@ -11,7 +21,17 @@ type StandardViewBuilder

= ( ) => Record; const STANDARD_FLAT_VIEW_METADATA_BUILDERS_BY_OBJECT_NAME = { + calendarEvent: computeStandardCalendarEventViews, + company: computeStandardCompanyViews, + dashboard: computeStandardDashboardViews, + message: computeStandardMessageViews, + messageThread: computeStandardMessageThreadViews, + note: computeStandardNoteViews, + opportunity: computeStandardOpportunityViews, + person: computeStandardPersonViews, task: computeStandardTaskViews, + workflow: computeStandardWorkflowViews, + workflowRun: computeStandardWorkflowRunViews, } as const satisfies { [P in AllStandardObjectName]?: StandardViewBuilder

; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-calendar-event-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-calendar-event-views.util.ts new file mode 100644 index 0000000000..f7a17d6d80 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-calendar-event-views.util.ts @@ -0,0 +1,27 @@ +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardCalendarEventViews = ( + args: Omit, 'context'>, +): Record => { + return { + allCalendarEvents: createStandardViewFlatMetadata({ + ...args, + objectName: 'calendarEvent', + context: { + viewName: 'allCalendarEvents', + name: 'All Calendar Events', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconList', + calendarFieldName: 'startsAt', + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util.ts new file mode 100644 index 0000000000..a4044234d5 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-company-views.util.ts @@ -0,0 +1,26 @@ +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardCompanyViews = ( + args: Omit, 'context'>, +): Record => { + return { + allCompanies: createStandardViewFlatMetadata({ + ...args, + objectName: 'company', + context: { + viewName: 'allCompanies', + name: 'All Companies', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconList', + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-dashboard-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-dashboard-views.util.ts new file mode 100644 index 0000000000..533e96328c --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-dashboard-views.util.ts @@ -0,0 +1,26 @@ +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardDashboardViews = ( + args: Omit, 'context'>, +): Record => { + return { + allDashboards: createStandardViewFlatMetadata({ + ...args, + objectName: 'dashboard', + context: { + viewName: 'allDashboards', + name: 'All Dashboards', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconList', + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-thread-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-thread-views.util.ts new file mode 100644 index 0000000000..eecd97e2d6 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-thread-views.util.ts @@ -0,0 +1,26 @@ +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardMessageThreadViews = ( + args: Omit, 'context'>, +): Record => { + return { + allMessageThreads: createStandardViewFlatMetadata({ + ...args, + objectName: 'messageThread', + context: { + viewName: 'allMessageThreads', + name: 'All Message Threads', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconList', + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-views.util.ts new file mode 100644 index 0000000000..826ebeef47 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-message-views.util.ts @@ -0,0 +1,26 @@ +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardMessageViews = ( + args: Omit, 'context'>, +): Record => { + return { + allMessages: createStandardViewFlatMetadata({ + ...args, + objectName: 'message', + context: { + viewName: 'allMessages', + name: 'All Messages', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconList', + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-note-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-note-views.util.ts new file mode 100644 index 0000000000..a0c4fd676b --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-note-views.util.ts @@ -0,0 +1,26 @@ +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardNoteViews = ( + args: Omit, 'context'>, +): Record => { + return { + allNotes: createStandardViewFlatMetadata({ + ...args, + objectName: 'note', + context: { + viewName: 'allNotes', + name: 'All Notes', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconNotes', + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts new file mode 100644 index 0000000000..524cd37825 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-opportunity-views.util.ts @@ -0,0 +1,42 @@ +import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant'; +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardOpportunityViews = ( + args: Omit, 'context'>, +): Record => { + return { + allOpportunities: createStandardViewFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'allOpportunities', + name: 'All Opportunities', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconList', + }, + }), + byStage: createStandardViewFlatMetadata({ + ...args, + objectName: 'opportunity', + context: { + viewName: 'byStage', + name: 'By Stage', + type: ViewType.KANBAN, + key: null, + position: 2, + icon: 'IconLayoutKanban', + mainGroupByFieldName: 'stage', + kanbanAggregateOperation: AggregateOperations.MIN, + kanbanAggregateOperationFieldName: 'amount', + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-person-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-person-views.util.ts new file mode 100644 index 0000000000..e83a3d91ae --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-person-views.util.ts @@ -0,0 +1,26 @@ +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardPersonViews = ( + args: Omit, 'context'>, +): Record => { + return { + allPeople: createStandardViewFlatMetadata({ + ...args, + objectName: 'person', + context: { + viewName: 'allPeople', + name: 'All People', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconList', + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-workflow-run-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-workflow-run-views.util.ts new file mode 100644 index 0000000000..bcdd6b766b --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-workflow-run-views.util.ts @@ -0,0 +1,26 @@ +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardWorkflowRunViews = ( + args: Omit, 'context'>, +): Record => { + return { + allWorkflowRuns: createStandardViewFlatMetadata({ + ...args, + objectName: 'workflowRun', + context: { + viewName: 'allWorkflowRuns', + name: 'All Workflow Runs', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconList', + }, + }), + }; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-workflow-views.util.ts b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-workflow-views.util.ts new file mode 100644 index 0000000000..86a81f0553 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/twenty-standard-application/utils/view/compute-standard-workflow-views.util.ts @@ -0,0 +1,26 @@ +import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; +import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum'; +import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum'; +import { + createStandardViewFlatMetadata, + type CreateStandardViewArgs, +} from 'src/engine/workspace-manager/twenty-standard-application/utils/view/create-standard-view-flat-metadata.util'; + +export const computeStandardWorkflowViews = ( + args: Omit, 'context'>, +): Record => { + return { + allWorkflows: createStandardViewFlatMetadata({ + ...args, + objectName: 'workflow', + context: { + viewName: 'allWorkflows', + name: 'All Workflows', + type: ViewType.TABLE, + key: ViewKey.INDEX, + position: 0, + icon: 'IconList', + }, + }), + }; +};