skailan-crm
Version:
Servicio de CRM y gestión de ventas para Skailan
21 lines • 949 B
JavaScript
import { QuoteItem } from '../../domain/entities/QuoteItem';
import { v4 as uuidv4 } from 'uuid';
export class CreateQuoteItem {
quoteItemRepository;
quoteRepository;
constructor(quoteItemRepository, quoteRepository) {
this.quoteItemRepository = quoteItemRepository;
this.quoteRepository = quoteRepository;
}
async execute(request) {
const { organizationId, quoteId, productId, quantity, unitPrice, notes } = request;
const quote = await this.quoteRepository.findById(quoteId, organizationId);
if (!quote) {
throw new Error('Quote not found.');
}
const totalPrice = quantity * unitPrice;
const newQuoteItem = new QuoteItem(uuidv4(), organizationId, quoteId, productId, quantity, unitPrice, totalPrice, notes || null, new Date(), new Date());
return this.quoteItemRepository.save(newQuoteItem);
}
}
//# sourceMappingURL=CreateQuoteItem.js.map