add segment 'honey trap new registration' to new registered customer

This commit is contained in:
edmondlang
2023-05-31 08:21:47 +08:00
parent 4bd28e3cca
commit 209c843b2d
@@ -19,12 +19,15 @@ use App\Classes\ValueObjects\Constants\BusinessType;
use App\Classes\ValueObjects\Constants\CompanyType;
use App\Classes\ValueObjects\Constants\RoleTypes;
use App\Classes\Jobs\CreatePerfexCRMCustomer;
use App\Classes\Modules\Segments\DataTransferObjects\SeasonalSegmentObject;
use App\Models\Company;
use App\Models\Segment;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use App\Classes\Modules\Segments\Services\CreatesSeasonalSegment;
class CreateCustomerLogic extends AbstractControllerLogic
{
@@ -63,6 +66,9 @@ class CreateCustomerLogic extends AbstractControllerLogic
/** @var CreatePerfexCRMLeadProcessor */
private $createPerfexCRMLeadProcessor;
/** @var CreatesSeasonalSegment */
private $createsSeasonalSegment;
/**
* CreateCustomerLogic constructor.
* @param CreateUserProcessor $createUserProcessor
@@ -73,9 +79,10 @@ class CreateCustomerLogic extends AbstractControllerLogic
* @param AuthenticationProcessor $authenticationProcessor
* @param GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor
* @param CreatePerfexCRMLeadProcessor $createPerfexCRMLeadProcessor
* @param CreatesSeasonalSegment $createsSeasonalSegment
*/
public function __construct(CreateUserProcessor $createUserProcessor, CreateCompanyProcessor $createCompanyProcessor, CreateContactProcessor $createContactProcessor, AssignEmployeeProcessor $assignEmployeeProcessor, AssignSegmentProcessor $assignSegmentProcessor, AuthenticationProcessor $authenticationProcessor, GenerateEmailVerificationAttemptProcessor $generateEmailVerificationAttemptProcessor,
CreatePerfexCRMLeadProcessor $createPerfexCRMLeadProcessor)
CreatePerfexCRMLeadProcessor $createPerfexCRMLeadProcessor, CreatesSeasonalSegment $createsSeasonalSegment)
{
$this->createUserProcessor = $createUserProcessor;
$this->createCompanyProcessor = $createCompanyProcessor;
@@ -85,6 +92,7 @@ class CreateCustomerLogic extends AbstractControllerLogic
$this->authenticationProcessor = $authenticationProcessor;
$this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor;
$this->createPerfexCRMLeadProcessor = $createPerfexCRMLeadProcessor;
$this->createsSeasonalSegment = $createsSeasonalSegment;
}
/**
@@ -109,8 +117,20 @@ class CreateCustomerLogic extends AbstractControllerLogic
$Object = new EmploymentObject($company, $user);
$this->assignEmployeeProcessor->execute($Object);
// assign STANDARD_SEGMENT to all new customers
$this->assignSegmentProcessor->execute($company);
// assign other standard segment to all new customers
$otherDefaultSegmentToAdd = Segment::whereIn('name', ['HONEY TRAP NEW REGISTRATION'])->get();
$start_date = Carbon::now();
$end_date = $start_date->addDays(30);
foreach ($otherDefaultSegmentToAdd as $segment) {
$seasonalSegmentObject = new SeasonalSegmentObject($company->id, $segment->id, $start_date, $end_date ?? null);
$this->createsSeasonalSegment->execute($seasonalSegmentObject);
$this->assignSegmentProcessor->execute($company, $segment->id);
}
if(config('perfexcrm.is_enabled') == 'true'){
//$this->createPerfexCRMLeadProcessor->execute($request);
$createLeadPerfexCRMObject = new CreateLeadPerfexCRMObject(