This commit is contained in:
@@ -3,6 +3,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace App;
|
||||
|
||||
use App\Avatar\AvatarManager;
|
||||
use App\Avatar\Lorelei;
|
||||
|
||||
final class ProfileSettings
|
||||
@@ -31,6 +32,9 @@ final class ProfileSettings
|
||||
}
|
||||
|
||||
$avatarColumns = [
|
||||
'avatar_style' => "ALTER TABLE user_profiles ADD COLUMN avatar_style VARCHAR(40) NOT NULL DEFAULT 'lorelei' AFTER location_tracking_preference",
|
||||
'avatar_seed' => "ALTER TABLE user_profiles ADD COLUMN avatar_seed VARCHAR(100) NOT NULL DEFAULT '' AFTER avatar_style",
|
||||
'avatar_config_json' => "ALTER TABLE user_profiles ADD COLUMN avatar_config_json TEXT NULL AFTER avatar_seed",
|
||||
'avatar_preset' => "ALTER TABLE user_profiles ADD COLUMN avatar_preset VARCHAR(64) NOT NULL DEFAULT 'papa-kind-treff' AFTER location_tracking_preference",
|
||||
'avatar_lorelei_eyes_variant' => "ALTER TABLE user_profiles ADD COLUMN avatar_lorelei_eyes_variant VARCHAR(24) NOT NULL DEFAULT '' AFTER avatar_preset",
|
||||
'avatar_lorelei_eyebrows_variant' => "ALTER TABLE user_profiles ADD COLUMN avatar_lorelei_eyebrows_variant VARCHAR(24) NOT NULL DEFAULT '' AFTER avatar_lorelei_eyes_variant",
|
||||
@@ -85,10 +89,16 @@ final class ProfileSettings
|
||||
}
|
||||
|
||||
$this->ensureSchema();
|
||||
$avatar = Lorelei::normalize($avatarConfig);
|
||||
$avatar = AvatarManager::normalizeSubmission($avatarConfig, $userId);
|
||||
$legacy = $avatar['avatar_style'] === Lorelei::key()
|
||||
? Lorelei::legacyColumnsFromConfig($avatar['avatar_seed'], $avatar['avatar_config_array'])
|
||||
: Lorelei::legacyColumnsFromConfig($avatar['avatar_seed'], Lorelei::defaultConfig());
|
||||
$stmt = $this->pdo->prepare(
|
||||
'UPDATE user_profiles
|
||||
SET avatar_preset = :preset,
|
||||
SET avatar_style = :avatarStyle,
|
||||
avatar_seed = :avatarSeed,
|
||||
avatar_config_json = :avatarConfigJson,
|
||||
avatar_preset = :preset,
|
||||
avatar_lorelei_eyes_variant = :eyesVariant,
|
||||
avatar_lorelei_eyebrows_variant = :eyebrowsVariant,
|
||||
avatar_lorelei_mouth_variant = :mouthVariant,
|
||||
@@ -100,14 +110,17 @@ final class ProfileSettings
|
||||
WHERE user_id = :id'
|
||||
);
|
||||
$stmt->execute([
|
||||
'preset' => $avatar['avatar_preset'],
|
||||
'eyesVariant' => $avatar['avatar_lorelei_eyes_variant'],
|
||||
'eyebrowsVariant' => $avatar['avatar_lorelei_eyebrows_variant'],
|
||||
'mouthVariant' => $avatar['avatar_lorelei_mouth_variant'],
|
||||
'glassesVariant' => $avatar['avatar_lorelei_glasses_variant'],
|
||||
'hairVariant' => $avatar['avatar_lorelei_hair_variant'],
|
||||
'beardVariant' => $avatar['avatar_lorelei_beard_variant'],
|
||||
'earringsVariant' => $avatar['avatar_lorelei_earrings_variant'],
|
||||
'avatarStyle' => $avatar['avatar_style'],
|
||||
'avatarSeed' => $avatar['avatar_seed'],
|
||||
'avatarConfigJson' => $avatar['avatar_config_json'],
|
||||
'preset' => $legacy['avatar_preset'],
|
||||
'eyesVariant' => $legacy['avatar_lorelei_eyes_variant'],
|
||||
'eyebrowsVariant' => $legacy['avatar_lorelei_eyebrows_variant'],
|
||||
'mouthVariant' => $legacy['avatar_lorelei_mouth_variant'],
|
||||
'glassesVariant' => $legacy['avatar_lorelei_glasses_variant'],
|
||||
'hairVariant' => $legacy['avatar_lorelei_hair_variant'],
|
||||
'beardVariant' => $legacy['avatar_lorelei_beard_variant'],
|
||||
'earringsVariant' => $legacy['avatar_lorelei_earrings_variant'],
|
||||
'id' => $userId,
|
||||
]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user