<?php

declare(strict_types=1);

namespace App\Domain\Webmail\Adapters;

/**
 * SnappyMail — Modern, hafif webmail. Rainloop'un aktif olarak devam eden fork'u.
 *
 * Özellikler:
 *   - Tek-sayfa uygulama (SPA) — anlık yenilenme yok
 *   - JSON config (DB gerekmez)
 *   - Sürükle-bırak attachment, klasör organize
 *   - Built-in OpenPGP support
 *   - Admin panel /_/admin (ayrı URL)
 *   - Mobile responsive
 *
 * Kurulum: GitHub releases'tan .zip indirme + extract
 * Path:    /usr/share/snappymail
 * URL:     /mail
 */
class SnappyMailAdapter extends AbstractWebmailAdapter
{
    public function name(): string
    {
        return 'SnappyMail';
    }

    public function key(): string
    {
        return 'snappymail';
    }

    public function description(): string
    {
        return 'Modern SPA webmail (Rainloop fork\'u, aktif). JSON config, DB gerekmez. '
            . 'Anında yenilenme, hafif, hızlı. Yeni başlatılan hostinglar için ideal.';
    }

    public function packageName(): string
    {
        return ''; // Manuel kurulum
    }

    public function strengths(): array
    {
        return [
            'Modern SPA — anlık güncelleme',
            'JSON config, DB gereksiz',
            'OpenPGP yerleşik',
            'En düşük server resource',
            'Aktif development (haftalık release)',
        ];
    }

    public function performanceScore(): int
    {
        return 95;
    }

    public function installPath(): string
    {
        return '/usr/share/snappymail';
    }

    public function urlPath(): string
    {
        return '/mail';
    }

    public function adminUrl(string $hostname): ?string
    {
        return 'https://' . ltrim($hostname, '/') . $this->urlPath() . '/_/admin';
    }
}
