firstOrFail(); $formContent = $request->items[0]["ExtractedMarkdownMessage"]; $tblRegexPatterns = [ 'user' => '/Matricule et Nom du demandeur\s*\|\s*([^|]+?)\s*\|/i', 'email' => '/Email du demandeur\s*\|\s*([^|]+?)\s*\|/i', 'brand' => '/Marque\s*\/\s*Filiale\s*\|\s*([^|]+?)\s*\|/i', 'subject' => '/Pour quels besoins avez-vous besoin d\'envoyer des emails en masse\s*\?\s*\|\s*([^|]+?)\s*\|/is', 'date_mep' => '/Date de première envoi souhaité\s*\|\s*([^|]+?)\s*\|/i', 'comment' => '/Commentaire\s*\|\s*([^|]+?)(?=\s*\|)/i', ]; foreach ($tblRegexPatterns as $field => $regex) { if (preg_match($regex, $formContent, $matches)) { $data[$field] = trim($matches[1]); } } $dateMep = Carbon::createFromFormat('d/m/Y', $data['date_mep'])->format('Y-m-d'); $ticket = new Ticket([ 'site_id' => $site->id, 'type' => TicketTypeEnum::mailing->value, 'status' => TicketStatusEnum::new->value, 'date_mep' => $dateMep, 'text' => " Bonjour,\n Nom du demandeur : {$data['user']}, Adresse mail : {$data['email']}, Marque / Filiale concernée : {$data['brand']}, Sujet : {$data['subject']}, Date d'envoi souhaitée : {$data['date_mep']}, Commentaire : {$data['comment']},\n Cordialement. ", 'title' => "Demande de mail en masse pour {$data['brand']}", 'is_internal' => false ]); $ticket->user()->associate($site->projectManager); $ticket->site()->associate($site); $ticket->assignedUser()->associate($site->projectManager); $ticket->saveOrFail(); if (config('mail.MAIL_ADMIN')) { Mail::to(config('mail.MAIL_ADMIN'))->send(new NewTicket($ticket)); } else { throw new \ErrorException('Missing MAIL_ADMIN in .env'); } return response()->json(['ok' => true]); } }