<?php
declare(strict_types=1);

namespace Celena\Plugin\Leads\Controllers;

use Celena\Core\Database\Connection;
use Celena\Core\Http\Request;
use Celena\Core\Http\Response;
use Celena\Core\Mail\Mailer;
use Celena\Module\Settings\Options;

/**
 * Приём заявки с дефолтной (контактной) формы лендинга: POST /api/leads/submit.
 * Логика обобщена в FormSubmitService (конструктор форм). Роут и контракт {ok:true}
 * сохранены для обратной совместимости с landing.js (gtag-конверсия).
 */
final class LeadsController
{
    public function __construct(
        private readonly Connection $conn,
        private readonly Mailer $mailer,
        private readonly Options $options,
    ) {
    }

    public function submit(Request $req): Response
    {
        return (new FormSubmitService($this->conn, $this->mailer, $this->options))->handle($req, null);
    }
}
