UNPKG

skailan-crm

Version:

Servicio de CRM y gestión de ventas para Skailan

28 lines 1.39 kB
export class AddCompetitorToOpportunity { opportunityCompetitorRepository; opportunityRepository; competitorRepository; constructor(opportunityCompetitorRepository, opportunityRepository, competitorRepository) { this.opportunityCompetitorRepository = opportunityCompetitorRepository; this.opportunityRepository = opportunityRepository; this.competitorRepository = competitorRepository; } async execute(request) { const { organizationId, opportunityId, competitorId } = request; const opportunity = await this.opportunityRepository.findById(opportunityId, organizationId); if (!opportunity) { throw new Error('Opportunity not found.'); } const competitor = await this.competitorRepository.findById(competitorId, organizationId); if (!competitor) { throw new Error('Competitor not found.'); } // Check if already added const existing = await this.opportunityCompetitorRepository.findCompetitorsByOpportunity(opportunityId); if (existing.some(oc => oc.competitorId === competitorId)) { throw new Error('Competitor already added to this opportunity.'); } return this.opportunityCompetitorRepository.addCompetitorToOpportunity(opportunityId, competitorId); } } //# sourceMappingURL=AddCompetitorToOpportunity.js.map