<?php
 namespace App\Modules\Ssl\Comodo; use App\Core\Ssl\AbstractSsl; use App\Models\ClientSslCertificate; class Comodo extends AbstractSsl { public function requiresCustomerInput(): bool { return true; } public function customerInputSchema(): array { return [ [ 'key' => 'csr', 'label' => 'Certificate Signing Request (CSR)', 'type' => 'textarea', 'required' => true, 'help' => 'Sunucunuzdaki openssl ile üretilen PEM formatında CSR.', ], [ 'key' => 'admin_email', 'label' => 'Domain Validation E-posta', 'type' => 'email', 'required' => true, 'help' => 'CA bu adrese doğrulama linki gönderecek.', 'options' => ['admin@', 'webmaster@', 'postmaster@', 'hostmaster@'], ], [ 'key' => 'organization', 'label' => 'Kurum Adı', 'type' => 'text', 'required' => false, 'help' => 'OV/EV cert için zorunlu.', ], [ 'key' => 'organization_unit', 'label' => 'Birim', 'type' => 'text', 'required' => false, ], [ 'key' => 'country', 'label' => 'Ülke (ISO-2)', 'type' => 'text', 'required' => false, ], [ 'key' => 'state', 'label' => 'İl/State', 'type' => 'text', 'required' => false, ], [ 'key' => 'city', 'label' => 'Şehir', 'type' => 'text', 'required' => false, ], ]; } public function adminFields(): array { return [ 'api_key' => [ 'type' => 'password', 'label' => 'CA API Key', 'description' => 'Reseller hesabınızın API anahtarı.', 'required' => false, ], 'product_code' => [ 'type' => 'text', 'label' => 'CA Product Code', 'description' => 'Örn: PositiveSSL, EssentialSSL, EVSSL.', 'required' => false, ], ]; } public function paramSchema(): array { return []; } public function testConnection(array $params): array { $apiKey = $params['module_config']['api_key'] ?? null; if (empty($apiKey)) { return $this->fail('API key configured değil — gerçek bağlantı testi için reseller credentials gerekli.'); } return $this->ok('API key set; gerçek CA çağrısı bu iskelet modülde uygulanmamış.'); } public function installCertificate( ClientSslCertificate $cert, array $customerInput, array $moduleConfig, ): array { if (empty($customerInput['csr'])) { return $this->fail('CSR zorunlu.'); } $cert->update([ 'installation_input' => $customerInput, 'csr' => $customerInput['csr'], 'last_attempt_at' => now(), 'module_data' => array_merge((array) ($cert->module_data ?? []), [ 'ca_provider' => 'comodo', 'pending_admin_action' => true, 'submitted_at' => now()->toIso8601String(), ]), ]); return $this->fail( 'Sertifika talebiniz ve CSR bilgileriniz kaydedildi. Bu ürün MANUEL bir ' .'reseller sertifikasıdır — otomatik doğrulama/kurulum yapılmaz. ' .'Ekibimiz CA doğrulamasını manuel tamamladıktan sonra sertifika ' .'kurulacaktır; kurulum tamamlanana kadar durum "beklemede" olarak kalır.', [ 'cert_id' => $cert->id, 'installed' => false, 'pending_admin_action' => true, ] ); } } 