UNPKG

skailan-crm

Version:

Servicio de CRM y gestión de ventas para Skailan

26 lines 1.19 kB
import { Quote } from '../../domain/entities/Quote'; import { v4 as uuidv4 } from 'uuid'; export class CreateQuote { quoteRepository; opportunityRepository; constructor(quoteRepository, opportunityRepository) { this.quoteRepository = quoteRepository; this.opportunityRepository = opportunityRepository; } async execute(request) { const { organizationId, opportunityId, quoteNumber, totalAmount } = request; const opportunity = await this.opportunityRepository.findById(opportunityId, organizationId); if (!opportunity) { throw new Error('Opportunity not found.'); } const existingQuote = await this.quoteRepository.findByQuoteNumber(quoteNumber, organizationId); if (existingQuote) { throw new Error('Quote with this number already exists for this organization.'); } const newQuote = new Quote(uuidv4(), organizationId, opportunityId, quoteNumber, 'Draft', // Default status totalAmount, 1, // Default version null, null, new Date(), new Date()); return this.quoteRepository.save(newQuote); } } //# sourceMappingURL=CreateQuote.js.map