diff --git a/front/src/generated/graphql.tsx b/front/src/generated/graphql.tsx index 27239f57f..10c220b54 100644 --- a/front/src/generated/graphql.tsx +++ b/front/src/generated/graphql.tsx @@ -975,6 +975,7 @@ export type Pipeline = { icon: Scalars['String']; id: Scalars['ID']; name: Scalars['String']; + pipelineProgressableType: PipelineProgressableType; pipelineProgresses?: Maybe>; pipelineStages?: Maybe>; updatedAt: Scalars['DateTime']; @@ -990,6 +991,7 @@ export type PipelineOrderByWithRelationInput = { icon?: InputMaybe; id?: InputMaybe; name?: InputMaybe; + pipelineProgressableType?: InputMaybe; pipelineProgresses?: InputMaybe; pipelineStages?: InputMaybe; updatedAt?: InputMaybe; @@ -1102,6 +1104,7 @@ export enum PipelineScalarFieldEnum { Icon = 'icon', Id = 'id', Name = 'name', + PipelineProgressableType = 'pipelineProgressableType', UpdatedAt = 'updatedAt', WorkspaceId = 'workspaceId' } @@ -1201,6 +1204,7 @@ export type PipelineWhereInput = { icon?: InputMaybe; id?: InputMaybe; name?: InputMaybe; + pipelineProgressableType?: InputMaybe; pipelineProgresses?: InputMaybe; pipelineStages?: InputMaybe; updatedAt?: InputMaybe; @@ -1625,7 +1629,15 @@ export type DeleteCompaniesMutation = { __typename?: 'Mutation', deleteManyCompa export type GetPipelinesQueryVariables = Exact<{ [key: string]: never; }>; -export type GetPipelinesQuery = { __typename?: 'Query', findManyPipeline: Array<{ __typename?: 'Pipeline', id: string, name: string, pipelineStages?: Array<{ __typename?: 'PipelineStage', name: string, color: string, pipelineProgresses?: Array<{ __typename?: 'PipelineProgress', id: string, progressableType: PipelineProgressableType, progressableId: string }> | null }> | null }> }; +export type GetPipelinesQuery = { __typename?: 'Query', findManyPipeline: Array<{ __typename?: 'Pipeline', id: string, name: string, pipelineProgressableType: PipelineProgressableType, pipelineStages?: Array<{ __typename?: 'PipelineStage', id: string, name: string, color: string, pipelineProgresses?: Array<{ __typename?: 'PipelineProgress', id: string, progressableType: PipelineProgressableType, progressableId: string }> | null }> | null }> }; + +export type UpdateOnePipelineProgressMutationVariables = Exact<{ + id?: InputMaybe; + pipelineStageId?: InputMaybe; +}>; + + +export type UpdateOnePipelineProgressMutation = { __typename?: 'Mutation', updateOnePipelineProgress?: { __typename?: 'PipelineProgress', id: string } | null }; export type GetPeopleQueryVariables = Exact<{ orderBy?: InputMaybe | PersonOrderByWithRelationInput>; @@ -2199,10 +2211,12 @@ export type DeleteCompaniesMutationResult = Apollo.MutationResult; export const GetPipelinesDocument = gql` query GetPipelines { - findManyPipeline(skip: 1) { + findManyPipeline { id name + pipelineProgressableType pipelineStages { + id name color pipelineProgresses { @@ -2241,6 +2255,43 @@ export function useGetPipelinesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptio export type GetPipelinesQueryHookResult = ReturnType; export type GetPipelinesLazyQueryHookResult = ReturnType; export type GetPipelinesQueryResult = Apollo.QueryResult; +export const UpdateOnePipelineProgressDocument = gql` + mutation UpdateOnePipelineProgress($id: String, $pipelineStageId: String) { + updateOnePipelineProgress( + where: {id: $id} + data: {pipelineStage: {connect: {id: $pipelineStageId}}} + ) { + id + } +} + `; +export type UpdateOnePipelineProgressMutationFn = Apollo.MutationFunction; + +/** + * __useUpdateOnePipelineProgressMutation__ + * + * To run a mutation, you first call `useUpdateOnePipelineProgressMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpdateOnePipelineProgressMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [updateOnePipelineProgressMutation, { data, loading, error }] = useUpdateOnePipelineProgressMutation({ + * variables: { + * id: // value for 'id' + * pipelineStageId: // value for 'pipelineStageId' + * }, + * }); + */ +export function useUpdateOnePipelineProgressMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpdateOnePipelineProgressDocument, options); + } +export type UpdateOnePipelineProgressMutationHookResult = ReturnType; +export type UpdateOnePipelineProgressMutationResult = Apollo.MutationResult; +export type UpdateOnePipelineProgressMutationOptions = Apollo.BaseMutationOptions; export const GetPeopleDocument = gql` query GetPeople($orderBy: [PersonOrderByWithRelationInput!], $where: PersonWhereInput, $limit: Int) { people: findManyPerson(orderBy: $orderBy, where: $where, take: $limit) { diff --git a/front/src/modules/opportunities/components/Board.tsx b/front/src/modules/opportunities/components/Board.tsx index 649e708e7..3088026ad 100644 --- a/front/src/modules/opportunities/components/Board.tsx +++ b/front/src/modules/opportunities/components/Board.tsx @@ -4,9 +4,10 @@ import { Draggable, Droppable, OnDragEndResponder, -} from '@hello-pangea/dnd'; +} from '@hello-pangea/dnd'; // Atlassian dnd does not support StrictMode from RN 18, so we use a fork @hello-pangea/dnd https://github.com/atlassian/react-beautiful-dnd/issues/2350 import { + BoardItemKey, Column, getOptimisticlyUpdatedBoard, Items, @@ -17,8 +18,6 @@ import { StyledColumn, StyledColumnTitle, } from '../../ui/components/board/BoardColumn'; -// Atlassian dnd does not support StrictMode from RN 18, so we use a fork @hello-pangea/dnd -// https://github.com/atlassian/react-beautiful-dnd/issues/2350 import { BoardItem } from '../../ui/components/board/BoardItem'; import { NewButton } from '../../ui/components/board/BoardNewButton'; @@ -27,19 +26,29 @@ import { BoardCard } from './BoardCard'; type BoardProps = { initialBoard: Column[]; items: Items; + onUpdate?: (itemKey: BoardItemKey, columnId: Column['id']) => Promise; }; -export const Board = ({ initialBoard, items }: BoardProps) => { +export const Board = ({ initialBoard, items, onUpdate }: BoardProps) => { const [board, setBoard] = useState(initialBoard); const onDragEnd: OnDragEndResponder = useCallback( - (result) => { + async (result) => { const newBoard = getOptimisticlyUpdatedBoard(board, result); if (!newBoard) return; setBoard(newBoard); - // TODO implement update board mutation + try { + const draggedEntityId = items[result.draggableId]?.id; + const destinationColumnId = result.destination?.droppableId; + draggedEntityId && + destinationColumnId && + onUpdate && + (await onUpdate(draggedEntityId, destinationColumnId)); + } catch (e) { + console.error(e); + } }, - [board], + [board, onUpdate, items], ); return ( diff --git a/front/src/modules/opportunities/components/BoardCard.tsx b/front/src/modules/opportunities/components/BoardCard.tsx index 0d92f2e01..6e7f10b7d 100644 --- a/front/src/modules/opportunities/components/BoardCard.tsx +++ b/front/src/modules/opportunities/components/BoardCard.tsx @@ -50,8 +50,9 @@ const StyledBoardCardBody = styled.div` `; export const BoardCard = ({ item }: { item: Person | Company }) => { - if (item.__typename === 'Person') return ; - if (item.__typename === 'Company') return ; + if (item?.__typename === 'Person') return ; + if (item?.__typename === 'Company') + return ; // @todo return card skeleton return null; }; diff --git a/front/src/modules/opportunities/hooks/useBoard.ts b/front/src/modules/opportunities/hooks/useBoard.ts index 536ee94b8..081a0537f 100644 --- a/front/src/modules/opportunities/hooks/useBoard.ts +++ b/front/src/modules/opportunities/hooks/useBoard.ts @@ -24,38 +24,49 @@ export const useBoard = () => { const pipelineStages = pipelines.data?.findManyPipeline[0].pipelineStages; const initialBoard: Column[] = pipelineStages?.map((pipelineStage) => ({ - id: pipelineStage.name, + id: pipelineStage.id, title: pipelineStage.name, colorCode: pipelineStage.color, itemKeys: pipelineStage.pipelineProgresses?.map( - (item) => `item-${item.progressableId}` as BoardItemKey, + (item) => item.progressableId as BoardItemKey, ) || [], })) || []; const pipelineEntityIds = pipelineStages?.reduce( (acc, pipelineStage) => [ ...acc, - ...(pipelineStage.pipelineProgresses?.map( - (item) => item.progressableId, - ) || []), + ...(pipelineStage.pipelineProgresses?.map((item) => ({ + entityId: item?.progressableId, + pipelineProgressId: item?.id, + })) || []), ], - [] as string[], + [] as { entityId: string; pipelineProgressId: string }[], ); + const pipelineEntityIdsMapper = (entityId: string) => { + const pipelineProgressId = pipelineEntityIds?.find( + (item) => item.entityId === entityId, + )?.pipelineProgressId; + + return pipelineProgressId; + }; + const pipelineEntityType: 'Person' | 'Company' | undefined = - pipelineStages?.[0].pipelineProgresses?.[0].progressableType; + pipelines.data?.findManyPipeline[0].pipelineProgressableType; const query = pipelineEntityType === 'Person' ? useGetPeopleQuery : useGetCompaniesQuery; const entitiesQueryResult = query({ - variables: { where: { id: { in: pipelineEntityIds } } }, + variables: { + where: { id: { in: pipelineEntityIds?.map((item) => item.entityId) } }, + }, }); const indexByIdReducer = (acc: Items, entity: { id: string }) => ({ ...acc, - [`item-${entity.id}`]: entity, + [entity.id]: entity, }); const items: Items | undefined = entitiesQueryResult.data @@ -71,5 +82,6 @@ export const useBoard = () => { items, loading: pipelines.loading || entitiesQueryResult.loading, error: pipelines.error || entitiesQueryResult.error, + pipelineEntityIdsMapper, }; }; diff --git a/front/src/modules/opportunities/queries/index.ts b/front/src/modules/opportunities/queries/index.ts index 48642df34..17bc09d1e 100644 --- a/front/src/modules/opportunities/queries/index.ts +++ b/front/src/modules/opportunities/queries/index.ts @@ -2,10 +2,12 @@ import { gql } from '@apollo/client'; export const GET_PIPELINES = gql` query GetPipelines { - findManyPipeline(skip: 1) { + findManyPipeline { id name + pipelineProgressableType pipelineStages { + id name color pipelineProgresses { @@ -17,3 +19,14 @@ export const GET_PIPELINES = gql` } } `; + +export const UPDATE_PIPELINE_STAGE = gql` + mutation UpdateOnePipelineProgress($id: String, $pipelineStageId: String) { + updateOnePipelineProgress( + where: { id: $id } + data: { pipelineStage: { connect: { id: $pipelineStageId } } } + ) { + id + } + } +`; diff --git a/front/src/modules/ui/components/board/Board.tsx b/front/src/modules/ui/components/board/Board.tsx index 5222b5a59..e82072437 100644 --- a/front/src/modules/ui/components/board/Board.tsx +++ b/front/src/modules/ui/components/board/Board.tsx @@ -1,5 +1,5 @@ import styled from '@emotion/styled'; -import { DropResult } from '@hello-pangea/dnd'; +import { DropResult } from '@hello-pangea/dnd'; // Atlassian dnd does not support StrictMode from RN 18, so we use a fork @hello-pangea/dnd https://github.com/atlassian/react-beautiful-dnd/issues/2350 export const StyledBoard = styled.div` display: flex; @@ -7,7 +7,7 @@ export const StyledBoard = styled.div` height: 100%; `; -export type BoardItemKey = `item-${number | string}`; +export type BoardItemKey = string; export type Item = any & { id: string }; export interface Items { [key: string]: Item; diff --git a/front/src/modules/ui/components/board/BoardColumn.tsx b/front/src/modules/ui/components/board/BoardColumn.tsx index 31ac86cb1..5c77ad7d5 100644 --- a/front/src/modules/ui/components/board/BoardColumn.tsx +++ b/front/src/modules/ui/components/board/BoardColumn.tsx @@ -1,6 +1,6 @@ import React from 'react'; import styled from '@emotion/styled'; -import { DroppableProvided } from '@hello-pangea/dnd'; +import { DroppableProvided } from '@hello-pangea/dnd'; // Atlassian dnd does not support StrictMode from RN 18, so we use a fork @hello-pangea/dnd https://github.com/atlassian/react-beautiful-dnd/issues/2350 export const StyledColumn = styled.div` background-color: ${({ theme }) => theme.primaryBackground}; diff --git a/front/src/modules/ui/components/board/BoardItem.tsx b/front/src/modules/ui/components/board/BoardItem.tsx index ec1bf5f3d..a03249bf0 100644 --- a/front/src/modules/ui/components/board/BoardItem.tsx +++ b/front/src/modules/ui/components/board/BoardItem.tsx @@ -1,5 +1,5 @@ import styled from '@emotion/styled'; -import { DraggableProvided } from '@hello-pangea/dnd'; +import { DraggableProvided } from '@hello-pangea/dnd'; // Atlassian dnd does not support StrictMode from RN 18, so we use a fork @hello-pangea/dnd https://github.com/atlassian/react-beautiful-dnd/issues/2350 const StyledCard = styled.div` background-color: ${({ theme }) => theme.secondaryBackground}; diff --git a/front/src/pages/opportunities/Opportunities.tsx b/front/src/pages/opportunities/Opportunities.tsx index 80f604b6c..3e842e90a 100644 --- a/front/src/pages/opportunities/Opportunities.tsx +++ b/front/src/pages/opportunities/Opportunities.tsx @@ -1,11 +1,33 @@ +import { useCallback } from 'react'; + import { IconTargetArrow } from '@/ui/icons/index'; import { WithTopBarContainer } from '@/ui/layout/containers/WithTopBarContainer'; +import { + PipelineProgress, + PipelineStage, + useUpdateOnePipelineProgressMutation, +} from '../../generated/graphql'; import { Board } from '../../modules/opportunities/components/Board'; import { useBoard } from '../../modules/opportunities/hooks/useBoard'; export function Opportunities() { - const { initialBoard, items, loading, error } = useBoard(); + const { initialBoard, items, loading, error, pipelineEntityIdsMapper } = + useBoard(); + const [updatePipelineProgress] = useUpdateOnePipelineProgressMutation(); + + const onUpdate = useCallback( + async ( + entityId: NonNullable, + pipelineStageId: NonNullable, + ) => { + const pipelineProgressId = pipelineEntityIdsMapper(entityId); + updatePipelineProgress({ + variables: { id: pipelineProgressId, pipelineStageId }, + }); + }, + [updatePipelineProgress, pipelineEntityIdsMapper], + ); if (loading) return
Loading...
; if (error) return
Error...
; @@ -13,7 +35,7 @@ export function Opportunities() { return
Initial board or items not found
; return ( }> - + ); } diff --git a/server/src/core/@generated/pipeline/pipeline-count-aggregate.input.ts b/server/src/core/@generated/pipeline/pipeline-count-aggregate.input.ts index 5df638b27..668dac3fa 100644 --- a/server/src/core/@generated/pipeline/pipeline-count-aggregate.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-count-aggregate.input.ts @@ -22,6 +22,9 @@ export class PipelineCountAggregateInput { @Field(() => Boolean, { nullable: true }) icon?: true; + @Field(() => Boolean, { nullable: true }) + pipelineProgressableType?: true; + @HideField() workspaceId?: true; diff --git a/server/src/core/@generated/pipeline/pipeline-count-aggregate.output.ts b/server/src/core/@generated/pipeline/pipeline-count-aggregate.output.ts index d1c04a268..807b48378 100644 --- a/server/src/core/@generated/pipeline/pipeline-count-aggregate.output.ts +++ b/server/src/core/@generated/pipeline/pipeline-count-aggregate.output.ts @@ -23,6 +23,9 @@ export class PipelineCountAggregate { @Field(() => Int, { nullable: false }) icon!: number; + @Field(() => Int, { nullable: false }) + pipelineProgressableType!: number; + @HideField() workspaceId!: number; diff --git a/server/src/core/@generated/pipeline/pipeline-count-order-by-aggregate.input.ts b/server/src/core/@generated/pipeline/pipeline-count-order-by-aggregate.input.ts index bdb1bfac9..d5b5a8c52 100644 --- a/server/src/core/@generated/pipeline/pipeline-count-order-by-aggregate.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-count-order-by-aggregate.input.ts @@ -23,6 +23,9 @@ export class PipelineCountOrderByAggregateInput { @Field(() => SortOrder, { nullable: true }) icon?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + pipelineProgressableType?: keyof typeof SortOrder; + @HideField() workspaceId?: keyof typeof SortOrder; } diff --git a/server/src/core/@generated/pipeline/pipeline-create-many-workspace.input.ts b/server/src/core/@generated/pipeline/pipeline-create-many-workspace.input.ts index e8a2e6c55..976a7bc3e 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-many-workspace.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-many-workspace.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; @InputType() export class PipelineCreateManyWorkspaceInput { @@ -20,4 +21,7 @@ export class PipelineCreateManyWorkspaceInput { @Field(() => String, { nullable: false }) icon!: string; + + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; } diff --git a/server/src/core/@generated/pipeline/pipeline-create-many.input.ts b/server/src/core/@generated/pipeline/pipeline-create-many.input.ts index 86d4a9fde..d7d53d51a 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-many.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-many.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { HideField } from '@nestjs/graphql'; @InputType() @@ -22,6 +23,9 @@ export class PipelineCreateManyInput { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @HideField() workspaceId!: string; } diff --git a/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-progresses.input.ts b/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-progresses.input.ts index afdd036b8..1df76dc87 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-progresses.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { PipelineStageCreateNestedManyWithoutPipelineInput } from '../pipeline-stage/pipeline-stage-create-nested-many-without-pipeline.input'; import { WorkspaceCreateNestedOneWithoutPipelinesInput } from '../workspace/workspace-create-nested-one-without-pipelines.input'; import { HideField } from '@nestjs/graphql'; @@ -24,6 +25,9 @@ export class PipelineCreateWithoutPipelineProgressesInput { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @Field(() => PipelineStageCreateNestedManyWithoutPipelineInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-stages.input.ts b/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-stages.input.ts index aa06c3de2..989a0994e 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-stages.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-without-pipeline-stages.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { PipelineProgressCreateNestedManyWithoutPipelineInput } from '../pipeline-progress/pipeline-progress-create-nested-many-without-pipeline.input'; import { WorkspaceCreateNestedOneWithoutPipelinesInput } from '../workspace/workspace-create-nested-one-without-pipelines.input'; import { HideField } from '@nestjs/graphql'; @@ -24,6 +25,9 @@ export class PipelineCreateWithoutPipelineStagesInput { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @Field(() => PipelineProgressCreateNestedManyWithoutPipelineInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-create-without-workspace.input.ts b/server/src/core/@generated/pipeline/pipeline-create-without-workspace.input.ts index 2d38f21f6..722aca336 100644 --- a/server/src/core/@generated/pipeline/pipeline-create-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create-without-workspace.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { PipelineStageCreateNestedManyWithoutPipelineInput } from '../pipeline-stage/pipeline-stage-create-nested-many-without-pipeline.input'; import { PipelineProgressCreateNestedManyWithoutPipelineInput } from '../pipeline-progress/pipeline-progress-create-nested-many-without-pipeline.input'; @@ -23,6 +24,9 @@ export class PipelineCreateWithoutWorkspaceInput { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @Field(() => PipelineStageCreateNestedManyWithoutPipelineInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-create.input.ts b/server/src/core/@generated/pipeline/pipeline-create.input.ts index c1cae497d..44d91dfd2 100644 --- a/server/src/core/@generated/pipeline/pipeline-create.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-create.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { PipelineStageCreateNestedManyWithoutPipelineInput } from '../pipeline-stage/pipeline-stage-create-nested-many-without-pipeline.input'; import { PipelineProgressCreateNestedManyWithoutPipelineInput } from '../pipeline-progress/pipeline-progress-create-nested-many-without-pipeline.input'; import { WorkspaceCreateNestedOneWithoutPipelinesInput } from '../workspace/workspace-create-nested-one-without-pipelines.input'; @@ -25,6 +26,9 @@ export class PipelineCreateInput { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @Field(() => PipelineStageCreateNestedManyWithoutPipelineInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-group-by.output.ts b/server/src/core/@generated/pipeline/pipeline-group-by.output.ts index 7ba784a69..53f4dc634 100644 --- a/server/src/core/@generated/pipeline/pipeline-group-by.output.ts +++ b/server/src/core/@generated/pipeline/pipeline-group-by.output.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { HideField } from '@nestjs/graphql'; import { PipelineCountAggregate } from './pipeline-count-aggregate.output'; import { PipelineMinAggregate } from './pipeline-min-aggregate.output'; @@ -25,6 +26,9 @@ export class PipelineGroupBy { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: false }) + pipelineProgressableType!: keyof typeof PipelineProgressableType; + @HideField() workspaceId!: string; diff --git a/server/src/core/@generated/pipeline/pipeline-max-aggregate.input.ts b/server/src/core/@generated/pipeline/pipeline-max-aggregate.input.ts index a7231f7b9..03f82f570 100644 --- a/server/src/core/@generated/pipeline/pipeline-max-aggregate.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-max-aggregate.input.ts @@ -22,6 +22,9 @@ export class PipelineMaxAggregateInput { @Field(() => Boolean, { nullable: true }) icon?: true; + @Field(() => Boolean, { nullable: true }) + pipelineProgressableType?: true; + @HideField() workspaceId?: true; } diff --git a/server/src/core/@generated/pipeline/pipeline-max-aggregate.output.ts b/server/src/core/@generated/pipeline/pipeline-max-aggregate.output.ts index 2045de896..3805e0e6d 100644 --- a/server/src/core/@generated/pipeline/pipeline-max-aggregate.output.ts +++ b/server/src/core/@generated/pipeline/pipeline-max-aggregate.output.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { HideField } from '@nestjs/graphql'; @ObjectType() @@ -22,6 +23,9 @@ export class PipelineMaxAggregate { @Field(() => String, { nullable: true }) icon?: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @HideField() workspaceId?: string; } diff --git a/server/src/core/@generated/pipeline/pipeline-max-order-by-aggregate.input.ts b/server/src/core/@generated/pipeline/pipeline-max-order-by-aggregate.input.ts index b4756bb6c..34fb29fa8 100644 --- a/server/src/core/@generated/pipeline/pipeline-max-order-by-aggregate.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-max-order-by-aggregate.input.ts @@ -23,6 +23,9 @@ export class PipelineMaxOrderByAggregateInput { @Field(() => SortOrder, { nullable: true }) icon?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + pipelineProgressableType?: keyof typeof SortOrder; + @HideField() workspaceId?: keyof typeof SortOrder; } diff --git a/server/src/core/@generated/pipeline/pipeline-min-aggregate.input.ts b/server/src/core/@generated/pipeline/pipeline-min-aggregate.input.ts index f703c06c8..29dbf5535 100644 --- a/server/src/core/@generated/pipeline/pipeline-min-aggregate.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-min-aggregate.input.ts @@ -22,6 +22,9 @@ export class PipelineMinAggregateInput { @Field(() => Boolean, { nullable: true }) icon?: true; + @Field(() => Boolean, { nullable: true }) + pipelineProgressableType?: true; + @HideField() workspaceId?: true; } diff --git a/server/src/core/@generated/pipeline/pipeline-min-aggregate.output.ts b/server/src/core/@generated/pipeline/pipeline-min-aggregate.output.ts index 0d29da7ea..501d1b832 100644 --- a/server/src/core/@generated/pipeline/pipeline-min-aggregate.output.ts +++ b/server/src/core/@generated/pipeline/pipeline-min-aggregate.output.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { HideField } from '@nestjs/graphql'; @ObjectType() @@ -22,6 +23,9 @@ export class PipelineMinAggregate { @Field(() => String, { nullable: true }) icon?: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @HideField() workspaceId?: string; } diff --git a/server/src/core/@generated/pipeline/pipeline-min-order-by-aggregate.input.ts b/server/src/core/@generated/pipeline/pipeline-min-order-by-aggregate.input.ts index 5104ae2fe..d018092f3 100644 --- a/server/src/core/@generated/pipeline/pipeline-min-order-by-aggregate.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-min-order-by-aggregate.input.ts @@ -23,6 +23,9 @@ export class PipelineMinOrderByAggregateInput { @Field(() => SortOrder, { nullable: true }) icon?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + pipelineProgressableType?: keyof typeof SortOrder; + @HideField() workspaceId?: keyof typeof SortOrder; } diff --git a/server/src/core/@generated/pipeline/pipeline-order-by-with-aggregation.input.ts b/server/src/core/@generated/pipeline/pipeline-order-by-with-aggregation.input.ts index 99dfe6d08..c5485b161 100644 --- a/server/src/core/@generated/pipeline/pipeline-order-by-with-aggregation.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-order-by-with-aggregation.input.ts @@ -26,6 +26,9 @@ export class PipelineOrderByWithAggregationInput { @Field(() => SortOrder, { nullable: true }) icon?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + pipelineProgressableType?: keyof typeof SortOrder; + @HideField() workspaceId?: keyof typeof SortOrder; diff --git a/server/src/core/@generated/pipeline/pipeline-order-by-with-relation.input.ts b/server/src/core/@generated/pipeline/pipeline-order-by-with-relation.input.ts index 40f7cfc86..9b0febeed 100644 --- a/server/src/core/@generated/pipeline/pipeline-order-by-with-relation.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-order-by-with-relation.input.ts @@ -26,6 +26,9 @@ export class PipelineOrderByWithRelationInput { @Field(() => SortOrder, { nullable: true }) icon?: keyof typeof SortOrder; + @Field(() => SortOrder, { nullable: true }) + pipelineProgressableType?: keyof typeof SortOrder; + @HideField() workspaceId?: keyof typeof SortOrder; diff --git a/server/src/core/@generated/pipeline/pipeline-scalar-field.enum.ts b/server/src/core/@generated/pipeline/pipeline-scalar-field.enum.ts index 06fe58077..4a28574b6 100644 --- a/server/src/core/@generated/pipeline/pipeline-scalar-field.enum.ts +++ b/server/src/core/@generated/pipeline/pipeline-scalar-field.enum.ts @@ -7,6 +7,7 @@ export enum PipelineScalarFieldEnum { deletedAt = 'deletedAt', name = 'name', icon = 'icon', + pipelineProgressableType = 'pipelineProgressableType', workspaceId = 'workspaceId', } diff --git a/server/src/core/@generated/pipeline/pipeline-scalar-where-with-aggregates.input.ts b/server/src/core/@generated/pipeline/pipeline-scalar-where-with-aggregates.input.ts index 714ee58a3..7091c6a2a 100644 --- a/server/src/core/@generated/pipeline/pipeline-scalar-where-with-aggregates.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-scalar-where-with-aggregates.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringWithAggregatesFilter } from '../prisma/string-with-aggregates-filter.input'; import { DateTimeWithAggregatesFilter } from '../prisma/date-time-with-aggregates-filter.input'; import { DateTimeNullableWithAggregatesFilter } from '../prisma/date-time-nullable-with-aggregates-filter.input'; +import { EnumPipelineProgressableTypeWithAggregatesFilter } from '../prisma/enum-pipeline-progressable-type-with-aggregates-filter.input'; import { HideField } from '@nestjs/graphql'; @InputType() @@ -34,6 +35,11 @@ export class PipelineScalarWhereWithAggregatesInput { @Field(() => StringWithAggregatesFilter, { nullable: true }) icon?: StringWithAggregatesFilter; + @Field(() => EnumPipelineProgressableTypeWithAggregatesFilter, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeWithAggregatesFilter; + @HideField() workspaceId?: StringWithAggregatesFilter; } diff --git a/server/src/core/@generated/pipeline/pipeline-scalar-where.input.ts b/server/src/core/@generated/pipeline/pipeline-scalar-where.input.ts index 17368b5d2..c868d6bda 100644 --- a/server/src/core/@generated/pipeline/pipeline-scalar-where.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-scalar-where.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFilter } from '../prisma/string-filter.input'; import { DateTimeFilter } from '../prisma/date-time-filter.input'; import { DateTimeNullableFilter } from '../prisma/date-time-nullable-filter.input'; +import { EnumPipelineProgressableTypeFilter } from '../prisma/enum-pipeline-progressable-type-filter.input'; import { HideField } from '@nestjs/graphql'; @InputType() @@ -34,6 +35,9 @@ export class PipelineScalarWhereInput { @Field(() => StringFilter, { nullable: true }) icon?: StringFilter; + @Field(() => EnumPipelineProgressableTypeFilter, { nullable: true }) + pipelineProgressableType?: EnumPipelineProgressableTypeFilter; + @HideField() workspaceId?: StringFilter; } diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-progresses.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-progresses.input.ts index de88f081c..70aa00425 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-progresses.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { HideField } from '@nestjs/graphql'; import { PipelineStageUncheckedCreateNestedManyWithoutPipelineInput } from '../pipeline-stage/pipeline-stage-unchecked-create-nested-many-without-pipeline.input'; @@ -23,6 +24,9 @@ export class PipelineUncheckedCreateWithoutPipelineProgressesInput { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @HideField() workspaceId!: string; diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-stages.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-stages.input.ts index 3ebcea236..70865a129 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-stages.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-pipeline-stages.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { HideField } from '@nestjs/graphql'; import { PipelineProgressUncheckedCreateNestedManyWithoutPipelineInput } from '../pipeline-progress/pipeline-progress-unchecked-create-nested-many-without-pipeline.input'; @@ -23,6 +24,9 @@ export class PipelineUncheckedCreateWithoutPipelineStagesInput { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @HideField() workspaceId!: string; diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-workspace.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-workspace.input.ts index 38aa90de0..6abce866e 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-create-without-workspace.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { PipelineStageUncheckedCreateNestedManyWithoutPipelineInput } from '../pipeline-stage/pipeline-stage-unchecked-create-nested-many-without-pipeline.input'; import { PipelineProgressUncheckedCreateNestedManyWithoutPipelineInput } from '../pipeline-progress/pipeline-progress-unchecked-create-nested-many-without-pipeline.input'; @@ -23,6 +24,9 @@ export class PipelineUncheckedCreateWithoutWorkspaceInput { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @Field(() => PipelineStageUncheckedCreateNestedManyWithoutPipelineInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-create.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-create.input.ts index 6f966e72d..785c8087f 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-create.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-create.input.ts @@ -1,5 +1,6 @@ import { Field } from '@nestjs/graphql'; import { InputType } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { HideField } from '@nestjs/graphql'; import { PipelineStageUncheckedCreateNestedManyWithoutPipelineInput } from '../pipeline-stage/pipeline-stage-unchecked-create-nested-many-without-pipeline.input'; import { PipelineProgressUncheckedCreateNestedManyWithoutPipelineInput } from '../pipeline-progress/pipeline-progress-unchecked-create-nested-many-without-pipeline.input'; @@ -24,6 +25,9 @@ export class PipelineUncheckedCreateInput { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { nullable: true }) + pipelineProgressableType?: keyof typeof PipelineProgressableType; + @HideField() workspaceId!: string; diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-update-many-without-pipelines.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-update-many-without-pipelines.input.ts index ce660318f..e194471e3 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-update-many-without-pipelines.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-update-many-without-pipelines.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; @InputType() export class PipelineUncheckedUpdateManyWithoutPipelinesInput { @@ -23,4 +24,9 @@ export class PipelineUncheckedUpdateManyWithoutPipelinesInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; } diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-update-many.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-update-many.input.ts index 151506864..b2cedcfd3 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-update-many.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-update-many.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; import { HideField } from '@nestjs/graphql'; @InputType() @@ -25,6 +26,11 @@ export class PipelineUncheckedUpdateManyInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; + @HideField() workspaceId?: StringFieldUpdateOperationsInput; } diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-pipeline-progresses.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-pipeline-progresses.input.ts index 7fbe813f9..42f4bbecc 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-pipeline-progresses.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; import { HideField } from '@nestjs/graphql'; import { PipelineStageUncheckedUpdateManyWithoutPipelineNestedInput } from '../pipeline-stage/pipeline-stage-unchecked-update-many-without-pipeline-nested.input'; @@ -26,6 +27,11 @@ export class PipelineUncheckedUpdateWithoutPipelineProgressesInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; + @HideField() workspaceId?: StringFieldUpdateOperationsInput; diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-pipeline-stages.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-pipeline-stages.input.ts index 43e67789d..9d7859fb0 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-pipeline-stages.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-pipeline-stages.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; import { HideField } from '@nestjs/graphql'; import { PipelineProgressUncheckedUpdateManyWithoutPipelineNestedInput } from '../pipeline-progress/pipeline-progress-unchecked-update-many-without-pipeline-nested.input'; @@ -26,6 +27,11 @@ export class PipelineUncheckedUpdateWithoutPipelineStagesInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; + @HideField() workspaceId?: StringFieldUpdateOperationsInput; diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-workspace.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-workspace.input.ts index 321a096c1..c6e691231 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-update-without-workspace.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; import { PipelineStageUncheckedUpdateManyWithoutPipelineNestedInput } from '../pipeline-stage/pipeline-stage-unchecked-update-many-without-pipeline-nested.input'; import { PipelineProgressUncheckedUpdateManyWithoutPipelineNestedInput } from '../pipeline-progress/pipeline-progress-unchecked-update-many-without-pipeline-nested.input'; @@ -26,6 +27,11 @@ export class PipelineUncheckedUpdateWithoutWorkspaceInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; + @Field(() => PipelineStageUncheckedUpdateManyWithoutPipelineNestedInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-unchecked-update.input.ts b/server/src/core/@generated/pipeline/pipeline-unchecked-update.input.ts index cf77fa227..1c9691286 100644 --- a/server/src/core/@generated/pipeline/pipeline-unchecked-update.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-unchecked-update.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; import { HideField } from '@nestjs/graphql'; import { PipelineStageUncheckedUpdateManyWithoutPipelineNestedInput } from '../pipeline-stage/pipeline-stage-unchecked-update-many-without-pipeline-nested.input'; import { PipelineProgressUncheckedUpdateManyWithoutPipelineNestedInput } from '../pipeline-progress/pipeline-progress-unchecked-update-many-without-pipeline-nested.input'; @@ -27,6 +28,11 @@ export class PipelineUncheckedUpdateInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; + @HideField() workspaceId?: StringFieldUpdateOperationsInput; diff --git a/server/src/core/@generated/pipeline/pipeline-update-many-mutation.input.ts b/server/src/core/@generated/pipeline/pipeline-update-many-mutation.input.ts index 8d0a6a13e..81b59f93d 100644 --- a/server/src/core/@generated/pipeline/pipeline-update-many-mutation.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-update-many-mutation.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; @InputType() export class PipelineUpdateManyMutationInput { @@ -23,4 +24,9 @@ export class PipelineUpdateManyMutationInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; } diff --git a/server/src/core/@generated/pipeline/pipeline-update-without-pipeline-progresses.input.ts b/server/src/core/@generated/pipeline/pipeline-update-without-pipeline-progresses.input.ts index 42a8cdfe6..1c50efc2a 100644 --- a/server/src/core/@generated/pipeline/pipeline-update-without-pipeline-progresses.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-update-without-pipeline-progresses.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; import { PipelineStageUpdateManyWithoutPipelineNestedInput } from '../pipeline-stage/pipeline-stage-update-many-without-pipeline-nested.input'; import { WorkspaceUpdateOneRequiredWithoutPipelinesNestedInput } from '../workspace/workspace-update-one-required-without-pipelines-nested.input'; import { HideField } from '@nestjs/graphql'; @@ -27,6 +28,11 @@ export class PipelineUpdateWithoutPipelineProgressesInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; + @Field(() => PipelineStageUpdateManyWithoutPipelineNestedInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-update-without-pipeline-stages.input.ts b/server/src/core/@generated/pipeline/pipeline-update-without-pipeline-stages.input.ts index cd70596b3..47b85f7c7 100644 --- a/server/src/core/@generated/pipeline/pipeline-update-without-pipeline-stages.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-update-without-pipeline-stages.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; import { PipelineProgressUpdateManyWithoutPipelineNestedInput } from '../pipeline-progress/pipeline-progress-update-many-without-pipeline-nested.input'; import { WorkspaceUpdateOneRequiredWithoutPipelinesNestedInput } from '../workspace/workspace-update-one-required-without-pipelines-nested.input'; import { HideField } from '@nestjs/graphql'; @@ -27,6 +28,11 @@ export class PipelineUpdateWithoutPipelineStagesInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; + @Field(() => PipelineProgressUpdateManyWithoutPipelineNestedInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-update-without-workspace.input.ts b/server/src/core/@generated/pipeline/pipeline-update-without-workspace.input.ts index 925e10e34..b44919de0 100644 --- a/server/src/core/@generated/pipeline/pipeline-update-without-workspace.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-update-without-workspace.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; import { PipelineStageUpdateManyWithoutPipelineNestedInput } from '../pipeline-stage/pipeline-stage-update-many-without-pipeline-nested.input'; import { PipelineProgressUpdateManyWithoutPipelineNestedInput } from '../pipeline-progress/pipeline-progress-update-many-without-pipeline-nested.input'; @@ -26,6 +27,11 @@ export class PipelineUpdateWithoutWorkspaceInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; + @Field(() => PipelineStageUpdateManyWithoutPipelineNestedInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-update.input.ts b/server/src/core/@generated/pipeline/pipeline-update.input.ts index f0114fd2d..16ad84290 100644 --- a/server/src/core/@generated/pipeline/pipeline-update.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-update.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFieldUpdateOperationsInput } from '../prisma/string-field-update-operations.input'; import { DateTimeFieldUpdateOperationsInput } from '../prisma/date-time-field-update-operations.input'; import { NullableDateTimeFieldUpdateOperationsInput } from '../prisma/nullable-date-time-field-update-operations.input'; +import { EnumPipelineProgressableTypeFieldUpdateOperationsInput } from '../prisma/enum-pipeline-progressable-type-field-update-operations.input'; import { PipelineStageUpdateManyWithoutPipelineNestedInput } from '../pipeline-stage/pipeline-stage-update-many-without-pipeline-nested.input'; import { PipelineProgressUpdateManyWithoutPipelineNestedInput } from '../pipeline-progress/pipeline-progress-update-many-without-pipeline-nested.input'; import { WorkspaceUpdateOneRequiredWithoutPipelinesNestedInput } from '../workspace/workspace-update-one-required-without-pipelines-nested.input'; @@ -28,6 +29,11 @@ export class PipelineUpdateInput { @Field(() => StringFieldUpdateOperationsInput, { nullable: true }) icon?: StringFieldUpdateOperationsInput; + @Field(() => EnumPipelineProgressableTypeFieldUpdateOperationsInput, { + nullable: true, + }) + pipelineProgressableType?: EnumPipelineProgressableTypeFieldUpdateOperationsInput; + @Field(() => PipelineStageUpdateManyWithoutPipelineNestedInput, { nullable: true, }) diff --git a/server/src/core/@generated/pipeline/pipeline-where.input.ts b/server/src/core/@generated/pipeline/pipeline-where.input.ts index a3e5b4cdf..335e0425f 100644 --- a/server/src/core/@generated/pipeline/pipeline-where.input.ts +++ b/server/src/core/@generated/pipeline/pipeline-where.input.ts @@ -3,6 +3,7 @@ import { InputType } from '@nestjs/graphql'; import { StringFilter } from '../prisma/string-filter.input'; import { DateTimeFilter } from '../prisma/date-time-filter.input'; import { DateTimeNullableFilter } from '../prisma/date-time-nullable-filter.input'; +import { EnumPipelineProgressableTypeFilter } from '../prisma/enum-pipeline-progressable-type-filter.input'; import { HideField } from '@nestjs/graphql'; import { PipelineStageListRelationFilter } from '../pipeline-stage/pipeline-stage-list-relation-filter.input'; import { PipelineProgressListRelationFilter } from '../pipeline-progress/pipeline-progress-list-relation-filter.input'; @@ -37,6 +38,9 @@ export class PipelineWhereInput { @Field(() => StringFilter, { nullable: true }) icon?: StringFilter; + @Field(() => EnumPipelineProgressableTypeFilter, { nullable: true }) + pipelineProgressableType?: EnumPipelineProgressableTypeFilter; + @HideField() workspaceId?: StringFilter; diff --git a/server/src/core/@generated/pipeline/pipeline.model.ts b/server/src/core/@generated/pipeline/pipeline.model.ts index a56ba1d91..3f5caa825 100644 --- a/server/src/core/@generated/pipeline/pipeline.model.ts +++ b/server/src/core/@generated/pipeline/pipeline.model.ts @@ -1,6 +1,7 @@ import { Field } from '@nestjs/graphql'; import { ObjectType } from '@nestjs/graphql'; import { ID } from '@nestjs/graphql'; +import { PipelineProgressableType } from '../prisma/pipeline-progressable-type.enum'; import { HideField } from '@nestjs/graphql'; import { PipelineStage } from '../pipeline-stage/pipeline-stage.model'; import { PipelineProgress } from '../pipeline-progress/pipeline-progress.model'; @@ -27,6 +28,12 @@ export class Pipeline { @Field(() => String, { nullable: false }) icon!: string; + @Field(() => PipelineProgressableType, { + nullable: false, + defaultValue: 'Company', + }) + pipelineProgressableType!: keyof typeof PipelineProgressableType; + @HideField() workspaceId!: string; diff --git a/server/src/database/migrations/20230619143949_add_progressable_type_on_pipeline/migration.sql b/server/src/database/migrations/20230619143949_add_progressable_type_on_pipeline/migration.sql new file mode 100644 index 000000000..31dddc6af --- /dev/null +++ b/server/src/database/migrations/20230619143949_add_progressable_type_on_pipeline/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "pipelines" ADD COLUMN "pipelineProgressableType" "PipelineProgressableType" NOT NULL DEFAULT 'Company'; diff --git a/server/src/database/schema.prisma b/server/src/database/schema.prisma index 80d208c16..ee7b35d3f 100644 --- a/server/src/database/schema.prisma +++ b/server/src/database/schema.prisma @@ -293,6 +293,7 @@ model Pipeline { icon String pipelineStages PipelineStage[] pipelineProgresses PipelineProgress[] + pipelineProgressableType PipelineProgressableType @default(Company) /// @TypeGraphQL.omit(input: true, output: true) workspaceId String /// @TypeGraphQL.omit(input: true, output: true) diff --git a/server/src/database/seeds/pipelines.ts b/server/src/database/seeds/pipelines.ts index b5985cdd0..c27b19333 100644 --- a/server/src/database/seeds/pipelines.ts +++ b/server/src/database/seeds/pipelines.ts @@ -8,6 +8,7 @@ export const seedPipelines = async (prisma: PrismaClient) => { name: 'Sales pipeline', icon: '💰', workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + pipelineProgressableType: 'Person', }, }); @@ -97,6 +98,7 @@ export const seedPipelines = async (prisma: PrismaClient) => { name: 'Customer support pipeline', icon: '📔', workspaceId: 'twenty-7ed9d212-1c25-4d02-bf25-6aeccf7ea419', + pipelineProgressableType: 'Person', }, }); @@ -134,6 +136,7 @@ export const seedPipelines = async (prisma: PrismaClient) => { name: 'Sales pipeline', icon: '💰', workspaceId: 'twenty-dev-7ed9d212-1c25-4d02-bf25-6aeccf7ea420', + pipelineProgressableType: 'Person', }, }); @@ -201,17 +204,4 @@ export const seedPipelines = async (prisma: PrismaClient) => { workspaceId: 'twenty-dev-7ed9d212-1c25-4d02-bf25-6aeccf7ea420', }, }); - - await prisma.pipelineProgress.upsert({ - where: { id: 'twenty-dev-fe256b39-3ec3-4fe7-8998-b76aa0bfb600' }, - update: {}, - create: { - id: 'twenty-dev-fe256b39-3ec3-4fe7-8998-b76aa0bfb600', - pipelineId: 'twenty-dev-fe256b39-3ec3-4fe3-8997-b75aa0bfb400', - pipelineStageId: 'twenty-dev-fe256b39-3ec3-4fe3-8998-b76aa0bfb600', - progressableType: 'Company', - progressableId: 'twenty-dev-a674fa6c-1455-4c57-afaf-dd5dc086361e', - workspaceId: 'twenty-dev-7ed9d212-1c25-4d02-bf25-6aeccf7ea420', - }, - }); };