INSIGHT-MVP/packages/crm-service/src/deals/dto/forecast-query.dto.ts
Thomas Reitz 63cb05d4d8 feat(crm): Phase 2.2-2.4 backend + contract files — vollständige CRM-Service Implementierung
- Phase 2.3 Forecast: probability-Feld in PipelineStage, GET /crm/deals/forecast Endpoint
- Phase 2.2 Import: ImportModule mit preview/execute/history Endpoints (CSV, XLSX, vCard)
- Phase 2.4 Enrichment: EnrichmentModule mit /enrich + /settings/integrations/north-data
- Contracts: ContractsModule mit CRUD + File-Upload Endpoints (Multer, max 25MB)
- Migrations: 20260312_contract_files, 20260312_phase23_forecast
- docker-compose.crm.yml: uploads Volume für Vertragsdokumente

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 22:06:58 +01:00

24 lines
609 B
TypeScript

import { IsOptional, IsUUID, IsEnum } from 'class-validator';
import { ApiPropertyOptional } from '@nestjs/swagger';
export enum ForecastPeriod {
MONTH = 'month',
QUARTER = 'quarter',
YEAR = 'year',
}
export class ForecastQueryDto {
@ApiPropertyOptional({ format: 'uuid', description: 'Filter nach Pipeline' })
@IsOptional()
@IsUUID()
pipelineId?: string;
@ApiPropertyOptional({
enum: ForecastPeriod,
default: ForecastPeriod.QUARTER,
description: 'Zeitraum fuer den Forecast',
})
@IsOptional()
@IsEnum(ForecastPeriod)
period?: ForecastPeriod = ForecastPeriod.QUARTER;
}