feat: expand sales opportunity workflow and metrics APIs

This commit is contained in:
2026-03-15 23:38:56 -05:00
parent 33b34d08a7
commit e764932c39
55 changed files with 3425 additions and 157 deletions
File diff suppressed because one or more lines are too long
@@ -1487,6 +1487,7 @@ export const OpportunityScalarFieldEnum = {
companyId: 'companyId',
productSequence: 'productSequence',
cwLastUpdated: 'cwLastUpdated',
cwDateEntered: 'cwDateEntered',
createdAt: 'createdAt',
updatedAt: 'updatedAt'
} as const
@@ -226,6 +226,7 @@ export const OpportunityScalarFieldEnum = {
companyId: 'companyId',
productSequence: 'productSequence',
cwLastUpdated: 'cwLastUpdated',
cwDateEntered: 'cwDateEntered',
createdAt: 'createdAt',
updatedAt: 'updatedAt'
} as const
+40 -1
View File
@@ -114,6 +114,7 @@ export type OpportunityMinAggregateOutputType = {
closedByCwId: number | null
companyId: string | null
cwLastUpdated: Date | null
cwDateEntered: Date | null
createdAt: Date | null
updatedAt: Date | null
}
@@ -164,6 +165,7 @@ export type OpportunityMaxAggregateOutputType = {
closedByCwId: number | null
companyId: string | null
cwLastUpdated: Date | null
cwDateEntered: Date | null
createdAt: Date | null
updatedAt: Date | null
}
@@ -215,6 +217,7 @@ export type OpportunityCountAggregateOutputType = {
companyId: number
productSequence: number
cwLastUpdated: number
cwDateEntered: number
createdAt: number
updatedAt: number
_all: number
@@ -309,6 +312,7 @@ export type OpportunityMinAggregateInputType = {
closedByCwId?: true
companyId?: true
cwLastUpdated?: true
cwDateEntered?: true
createdAt?: true
updatedAt?: true
}
@@ -359,6 +363,7 @@ export type OpportunityMaxAggregateInputType = {
closedByCwId?: true
companyId?: true
cwLastUpdated?: true
cwDateEntered?: true
createdAt?: true
updatedAt?: true
}
@@ -410,6 +415,7 @@ export type OpportunityCountAggregateInputType = {
companyId?: true
productSequence?: true
cwLastUpdated?: true
cwDateEntered?: true
createdAt?: true
updatedAt?: true
_all?: true
@@ -548,6 +554,7 @@ export type OpportunityGroupByOutputType = {
companyId: string | null
productSequence: number[]
cwLastUpdated: Date | null
cwDateEntered: Date | null
createdAt: Date
updatedAt: Date
_count: OpportunityCountAggregateOutputType | null
@@ -622,6 +629,7 @@ export type OpportunityWhereInput = {
companyId?: Prisma.StringNullableFilter<"Opportunity"> | string | null
productSequence?: Prisma.IntNullableListFilter<"Opportunity">
cwLastUpdated?: Prisma.DateTimeNullableFilter<"Opportunity"> | Date | string | null
cwDateEntered?: Prisma.DateTimeNullableFilter<"Opportunity"> | Date | string | null
createdAt?: Prisma.DateTimeFilter<"Opportunity"> | Date | string
updatedAt?: Prisma.DateTimeFilter<"Opportunity"> | Date | string
generatedQuotes?: Prisma.GeneratedQuotesListRelationFilter
@@ -675,6 +683,7 @@ export type OpportunityOrderByWithRelationInput = {
companyId?: Prisma.SortOrderInput | Prisma.SortOrder
productSequence?: Prisma.SortOrder
cwLastUpdated?: Prisma.SortOrderInput | Prisma.SortOrder
cwDateEntered?: Prisma.SortOrderInput | Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
generatedQuotes?: Prisma.GeneratedQuotesOrderByRelationAggregateInput
@@ -731,6 +740,7 @@ export type OpportunityWhereUniqueInput = Prisma.AtLeast<{
companyId?: Prisma.StringNullableFilter<"Opportunity"> | string | null
productSequence?: Prisma.IntNullableListFilter<"Opportunity">
cwLastUpdated?: Prisma.DateTimeNullableFilter<"Opportunity"> | Date | string | null
cwDateEntered?: Prisma.DateTimeNullableFilter<"Opportunity"> | Date | string | null
createdAt?: Prisma.DateTimeFilter<"Opportunity"> | Date | string
updatedAt?: Prisma.DateTimeFilter<"Opportunity"> | Date | string
generatedQuotes?: Prisma.GeneratedQuotesListRelationFilter
@@ -784,6 +794,7 @@ export type OpportunityOrderByWithAggregationInput = {
companyId?: Prisma.SortOrderInput | Prisma.SortOrder
productSequence?: Prisma.SortOrder
cwLastUpdated?: Prisma.SortOrderInput | Prisma.SortOrder
cwDateEntered?: Prisma.SortOrderInput | Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
_count?: Prisma.OpportunityCountOrderByAggregateInput
@@ -843,6 +854,7 @@ export type OpportunityScalarWhereWithAggregatesInput = {
companyId?: Prisma.StringNullableWithAggregatesFilter<"Opportunity"> | string | null
productSequence?: Prisma.IntNullableListFilter<"Opportunity">
cwLastUpdated?: Prisma.DateTimeNullableWithAggregatesFilter<"Opportunity"> | Date | string | null
cwDateEntered?: Prisma.DateTimeNullableWithAggregatesFilter<"Opportunity"> | Date | string | null
createdAt?: Prisma.DateTimeWithAggregatesFilter<"Opportunity"> | Date | string
updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Opportunity"> | Date | string
}
@@ -893,6 +905,7 @@ export type OpportunityCreateInput = {
closedByCwId?: number | null
productSequence?: Prisma.OpportunityCreateproductSequenceInput | number[]
cwLastUpdated?: Date | string | null
cwDateEntered?: Date | string | null
createdAt?: Date | string
updatedAt?: Date | string
generatedQuotes?: Prisma.GeneratedQuotesCreateNestedManyWithoutOpportunityInput
@@ -946,6 +959,7 @@ export type OpportunityUncheckedCreateInput = {
companyId?: string | null
productSequence?: Prisma.OpportunityCreateproductSequenceInput | number[]
cwLastUpdated?: Date | string | null
cwDateEntered?: Date | string | null
createdAt?: Date | string
updatedAt?: Date | string
generatedQuotes?: Prisma.GeneratedQuotesUncheckedCreateNestedManyWithoutOpportunityInput
@@ -997,6 +1011,7 @@ export type OpportunityUpdateInput = {
closedByCwId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
productSequence?: Prisma.OpportunityUpdateproductSequenceInput | number[]
cwLastUpdated?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
cwDateEntered?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
generatedQuotes?: Prisma.GeneratedQuotesUpdateManyWithoutOpportunityNestedInput
@@ -1050,6 +1065,7 @@ export type OpportunityUncheckedUpdateInput = {
companyId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
productSequence?: Prisma.OpportunityUpdateproductSequenceInput | number[]
cwLastUpdated?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
cwDateEntered?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
generatedQuotes?: Prisma.GeneratedQuotesUncheckedUpdateManyWithoutOpportunityNestedInput
@@ -1102,6 +1118,7 @@ export type OpportunityCreateManyInput = {
companyId?: string | null
productSequence?: Prisma.OpportunityCreateproductSequenceInput | number[]
cwLastUpdated?: Date | string | null
cwDateEntered?: Date | string | null
createdAt?: Date | string
updatedAt?: Date | string
}
@@ -1152,6 +1169,7 @@ export type OpportunityUpdateManyMutationInput = {
closedByCwId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
productSequence?: Prisma.OpportunityUpdateproductSequenceInput | number[]
cwLastUpdated?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
cwDateEntered?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}
@@ -1203,6 +1221,7 @@ export type OpportunityUncheckedUpdateManyInput = {
companyId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
productSequence?: Prisma.OpportunityUpdateproductSequenceInput | number[]
cwLastUpdated?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
cwDateEntered?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}
@@ -1272,6 +1291,7 @@ export type OpportunityCountOrderByAggregateInput = {
companyId?: Prisma.SortOrder
productSequence?: Prisma.SortOrder
cwLastUpdated?: Prisma.SortOrder
cwDateEntered?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
}
@@ -1343,6 +1363,7 @@ export type OpportunityMaxOrderByAggregateInput = {
closedByCwId?: Prisma.SortOrder
companyId?: Prisma.SortOrder
cwLastUpdated?: Prisma.SortOrder
cwDateEntered?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
}
@@ -1393,6 +1414,7 @@ export type OpportunityMinOrderByAggregateInput = {
closedByCwId?: Prisma.SortOrder
companyId?: Prisma.SortOrder
cwLastUpdated?: Prisma.SortOrder
cwDateEntered?: Prisma.SortOrder
createdAt?: Prisma.SortOrder
updatedAt?: Prisma.SortOrder
}
@@ -1534,6 +1556,7 @@ export type OpportunityCreateWithoutCompanyInput = {
closedByCwId?: number | null
productSequence?: Prisma.OpportunityCreateproductSequenceInput | number[]
cwLastUpdated?: Date | string | null
cwDateEntered?: Date | string | null
createdAt?: Date | string
updatedAt?: Date | string
generatedQuotes?: Prisma.GeneratedQuotesCreateNestedManyWithoutOpportunityInput
@@ -1585,6 +1608,7 @@ export type OpportunityUncheckedCreateWithoutCompanyInput = {
closedByCwId?: number | null
productSequence?: Prisma.OpportunityCreateproductSequenceInput | number[]
cwLastUpdated?: Date | string | null
cwDateEntered?: Date | string | null
createdAt?: Date | string
updatedAt?: Date | string
generatedQuotes?: Prisma.GeneratedQuotesUncheckedCreateNestedManyWithoutOpportunityInput
@@ -1666,6 +1690,7 @@ export type OpportunityScalarWhereInput = {
companyId?: Prisma.StringNullableFilter<"Opportunity"> | string | null
productSequence?: Prisma.IntNullableListFilter<"Opportunity">
cwLastUpdated?: Prisma.DateTimeNullableFilter<"Opportunity"> | Date | string | null
cwDateEntered?: Prisma.DateTimeNullableFilter<"Opportunity"> | Date | string | null
createdAt?: Prisma.DateTimeFilter<"Opportunity"> | Date | string
updatedAt?: Prisma.DateTimeFilter<"Opportunity"> | Date | string
}
@@ -1716,6 +1741,7 @@ export type OpportunityCreateWithoutGeneratedQuotesInput = {
closedByCwId?: number | null
productSequence?: Prisma.OpportunityCreateproductSequenceInput | number[]
cwLastUpdated?: Date | string | null
cwDateEntered?: Date | string | null
createdAt?: Date | string
updatedAt?: Date | string
company?: Prisma.CompanyCreateNestedOneWithoutOpportunitiesInput
@@ -1768,6 +1794,7 @@ export type OpportunityUncheckedCreateWithoutGeneratedQuotesInput = {
companyId?: string | null
productSequence?: Prisma.OpportunityCreateproductSequenceInput | number[]
cwLastUpdated?: Date | string | null
cwDateEntered?: Date | string | null
createdAt?: Date | string
updatedAt?: Date | string
}
@@ -1834,6 +1861,7 @@ export type OpportunityUpdateWithoutGeneratedQuotesInput = {
closedByCwId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
productSequence?: Prisma.OpportunityUpdateproductSequenceInput | number[]
cwLastUpdated?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
cwDateEntered?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
company?: Prisma.CompanyUpdateOneWithoutOpportunitiesNestedInput
@@ -1886,6 +1914,7 @@ export type OpportunityUncheckedUpdateWithoutGeneratedQuotesInput = {
companyId?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
productSequence?: Prisma.OpportunityUpdateproductSequenceInput | number[]
cwLastUpdated?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
cwDateEntered?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}
@@ -1936,6 +1965,7 @@ export type OpportunityCreateManyCompanyInput = {
closedByCwId?: number | null
productSequence?: Prisma.OpportunityCreateproductSequenceInput | number[]
cwLastUpdated?: Date | string | null
cwDateEntered?: Date | string | null
createdAt?: Date | string
updatedAt?: Date | string
}
@@ -1986,6 +2016,7 @@ export type OpportunityUpdateWithoutCompanyInput = {
closedByCwId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
productSequence?: Prisma.OpportunityUpdateproductSequenceInput | number[]
cwLastUpdated?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
cwDateEntered?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
generatedQuotes?: Prisma.GeneratedQuotesUpdateManyWithoutOpportunityNestedInput
@@ -2037,6 +2068,7 @@ export type OpportunityUncheckedUpdateWithoutCompanyInput = {
closedByCwId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
productSequence?: Prisma.OpportunityUpdateproductSequenceInput | number[]
cwLastUpdated?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
cwDateEntered?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
generatedQuotes?: Prisma.GeneratedQuotesUncheckedUpdateManyWithoutOpportunityNestedInput
@@ -2088,6 +2120,7 @@ export type OpportunityUncheckedUpdateManyWithoutCompanyInput = {
closedByCwId?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
productSequence?: Prisma.OpportunityUpdateproductSequenceInput | number[]
cwLastUpdated?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
cwDateEntered?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
}
@@ -2170,6 +2203,7 @@ export type OpportunitySelect<ExtArgs extends runtime.Types.Extensions.InternalA
companyId?: boolean
productSequence?: boolean
cwLastUpdated?: boolean
cwDateEntered?: boolean
createdAt?: boolean
updatedAt?: boolean
generatedQuotes?: boolean | Prisma.Opportunity$generatedQuotesArgs<ExtArgs>
@@ -2224,6 +2258,7 @@ export type OpportunitySelectCreateManyAndReturn<ExtArgs extends runtime.Types.E
companyId?: boolean
productSequence?: boolean
cwLastUpdated?: boolean
cwDateEntered?: boolean
createdAt?: boolean
updatedAt?: boolean
company?: boolean | Prisma.Opportunity$companyArgs<ExtArgs>
@@ -2276,6 +2311,7 @@ export type OpportunitySelectUpdateManyAndReturn<ExtArgs extends runtime.Types.E
companyId?: boolean
productSequence?: boolean
cwLastUpdated?: boolean
cwDateEntered?: boolean
createdAt?: boolean
updatedAt?: boolean
company?: boolean | Prisma.Opportunity$companyArgs<ExtArgs>
@@ -2328,11 +2364,12 @@ export type OpportunitySelectScalar = {
companyId?: boolean
productSequence?: boolean
cwLastUpdated?: boolean
cwDateEntered?: boolean
createdAt?: boolean
updatedAt?: boolean
}
export type OpportunityOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "cwOpportunityId" | "name" | "notes" | "typeName" | "typeCwId" | "stageName" | "stageCwId" | "statusName" | "statusCwId" | "priorityName" | "priorityCwId" | "ratingName" | "ratingCwId" | "source" | "campaignName" | "campaignCwId" | "primarySalesRepName" | "primarySalesRepIdentifier" | "primarySalesRepCwId" | "secondarySalesRepName" | "secondarySalesRepIdentifier" | "secondarySalesRepCwId" | "companyCwId" | "companyName" | "contactCwId" | "contactName" | "siteCwId" | "siteName" | "customerPO" | "totalSalesTax" | "probability" | "locationName" | "locationCwId" | "departmentName" | "departmentCwId" | "expectedCloseDate" | "pipelineChangeDate" | "dateBecameLead" | "closedDate" | "closedFlag" | "closedByName" | "closedByCwId" | "companyId" | "productSequence" | "cwLastUpdated" | "createdAt" | "updatedAt", ExtArgs["result"]["opportunity"]>
export type OpportunityOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "cwOpportunityId" | "name" | "notes" | "typeName" | "typeCwId" | "stageName" | "stageCwId" | "statusName" | "statusCwId" | "priorityName" | "priorityCwId" | "ratingName" | "ratingCwId" | "source" | "campaignName" | "campaignCwId" | "primarySalesRepName" | "primarySalesRepIdentifier" | "primarySalesRepCwId" | "secondarySalesRepName" | "secondarySalesRepIdentifier" | "secondarySalesRepCwId" | "companyCwId" | "companyName" | "contactCwId" | "contactName" | "siteCwId" | "siteName" | "customerPO" | "totalSalesTax" | "probability" | "locationName" | "locationCwId" | "departmentName" | "departmentCwId" | "expectedCloseDate" | "pipelineChangeDate" | "dateBecameLead" | "closedDate" | "closedFlag" | "closedByName" | "closedByCwId" | "companyId" | "productSequence" | "cwLastUpdated" | "cwDateEntered" | "createdAt" | "updatedAt", ExtArgs["result"]["opportunity"]>
export type OpportunityInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
generatedQuotes?: boolean | Prisma.Opportunity$generatedQuotesArgs<ExtArgs>
company?: boolean | Prisma.Opportunity$companyArgs<ExtArgs>
@@ -2398,6 +2435,7 @@ export type $OpportunityPayload<ExtArgs extends runtime.Types.Extensions.Interna
companyId: string | null
productSequence: number[]
cwLastUpdated: Date | null
cwDateEntered: Date | null
createdAt: Date
updatedAt: Date
}, ExtArgs["result"]["opportunity"]>
@@ -2871,6 +2909,7 @@ export interface OpportunityFieldRefs {
readonly companyId: Prisma.FieldRef<"Opportunity", 'String'>
readonly productSequence: Prisma.FieldRef<"Opportunity", 'Int[]'>
readonly cwLastUpdated: Prisma.FieldRef<"Opportunity", 'DateTime'>
readonly cwDateEntered: Prisma.FieldRef<"Opportunity", 'DateTime'>
readonly createdAt: Prisma.FieldRef<"Opportunity", 'DateTime'>
readonly updatedAt: Prisma.FieldRef<"Opportunity", 'DateTime'>
}