<?php
namespace App\Controller\Agents;
use App\Application\AgentRatesService;
use App\Domain\Repositories\AgentRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class AgentRatesController extends AbstractController
{
public function __construct(
private AgentRatesService $agentRatesService,
private AgentRepository $agentRepository,
) {}
public function index(int $id, Request $request): Response
{
$agent = $this->agentRepository->agentOfIdentify($id);
if (!$agent) {
return $this->redirectToRoute('agents.index');
}
if ($request->isMethod('POST')) {
$section = $request->request->get('_section');
if ($section === 'agent') {
$newLevel = $request->request->get('newagentlevel');
$newDate = $request->request->get('newagentratedate');
$this->agentRatesService->saveAgentRates(
$id,
$request->request->all('agentdelete'),
is_string($newLevel) ? $newLevel : null,
is_string($newDate) ? $newDate : null,
);
$this->addFlash('success', 'Agent rates updated successfully.');
}
if ($section === 'manager') {
$newLevel = $request->request->get('newmanagerlevel');
$newDate = $request->request->get('newmanagerratedate');
$this->agentRatesService->saveManagerRates(
$id,
$request->request->all('mgrdelete'),
is_string($newLevel) ? $newLevel : null,
is_string($newDate) ? $newDate : null,
);
$this->addFlash('success', 'Manager rates updated successfully.');
}
return $this->redirectToRoute('agents.agent-rates.index', ['id' => $id]);
}
return $this->render('agents/agent-rates/index.html.twig', array_merge(
['agent' => $agent],
$this->agentRatesService->formData($id),
));
}
}