fix: removes preference options db table

This commit is contained in:
2025-07-24 00:02:38 -05:00
parent 0988517bd0
commit 2a9bacea8c
6 changed files with 106 additions and 17 deletions

View File

@@ -3,14 +3,20 @@
namespace App\Twig\Components;
use Aimeos\Map;
use App\User\Database\CodecList;
use App\User\Database\QualityList;
use App\User\Database\ResolutionList;
use App\User\Dto\PreferenceOptions;
use App\User\Dto\PreferenceOptionsFactory;
use App\User\Dto\UserPreferencesFactory;
use App\User\Framework\Repository\PreferencesRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Bundle\SecurityBundle\Security;
use Symfony\UX\LiveComponent\Attribute\AsLiveComponent;
use Symfony\UX\LiveComponent\DefaultActionTrait;
#[AsLiveComponent]
final class Filter
final class Filter extends AbstractController
{
use DefaultActionTrait;
@@ -21,15 +27,20 @@ final class Filter
public array $reverseMappedQualities = [];
public function __construct(
private readonly PreferencesRepository $preferencesRepository,
private readonly Security $security,
) {
$this->preferences = Map::from($this->preferencesRepository->findEnabled())
->rekey(fn($element) => $element->getId())
->map(fn($element) => $element->getPreferenceOptions()->toArray())
->toArray();
$this->userPreferences = Map::from($this->security->getUser()->getUserPreferenceValues())
->toArray();
$this->preferences = (array) PreferenceOptionsFactory::createSelectOptions();
$this->userPreferences = (array) UserPreferencesFactory::createFromUser($security->getUser());
$this->reverseMappedQualities = QualityList::getAsReverseMap();
}
public function getResolutionOptions()
{
return ResolutionList::asSelectOptions();
}
public function getCodecOptions()
{
return CodecList::asSelectOptions();
}
}

View File

@@ -0,0 +1,14 @@
<?php
namespace App\User\Dto;
class PreferenceOptions
{
public function __construct(
public readonly array $resolutions,
public readonly array $codecs,
public readonly array $languages,
public readonly array $providers,
public readonly array $qualities,
) {}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\User\Dto;
use App\User\Database\CodecList;
use App\User\Database\CountryLanguages;
use App\User\Database\ProviderList;
use App\User\Database\QualityList;
use App\User\Database\ResolutionList;
class PreferenceOptionsFactory
{
public static function createSelectOptions(): PreferenceOptions
{
return new PreferenceOptions(
resolutions: ResolutionList::asSelectOptions(),
codecs: CodecList::asSelectOptions(),
languages: CountryLanguages::asSelectOptions(),
providers: ProviderList::asSelectOptions(),
qualities: QualityList::asSelectOptions(),
);
}
}

View File

@@ -82,7 +82,7 @@ class PreferencesController extends AbstractController
$downloadPreferences = $this->getUser()->getDownloadPreferences();
$formData = (array) UserPreferencesFactory::createFromUser($this->getUser());
$form = $this->createForm(UserMediaPreferencesForm::class, $formData);
$saveUserDownloadPreferencesHandler->handle($input->toCommand());
$this->broadcaster->alert(