import apiClient from '@/utils/axios.js'; export const FALUKANT_VISUAL_DEFAULTS = Object.freeze({ portraitStyle: 'classic', figureMode: 'both', }); export function showFalukantPortraits(figureMode) { return figureMode === 'portraits' || figureMode === 'both'; } export function showFalukant3dFigures(figureMode) { return figureMode === '3d' || figureMode === 'both'; } export function resolveFalukantPortraitAtlas(genderRaw, portraitStyle) { const gender = String(genderRaw || 'male').toLowerCase() === 'female' ? 'female' : 'male'; if (portraitStyle === 'medieval') { // Falukant liefert hier noch keine Haarfarbe; bis dahin geschlechtsbasierter Atlas-Fallback. return gender === 'female' ? '/images/falukant/avatar/female00-medieval.png' : '/images/falukant/avatar/male02-medieval.png'; } return `/images/falukant/avatar/${gender}.png`; } export async function loadFalukantVisualSettings(userId) { if (!userId) { return { ...FALUKANT_VISUAL_DEFAULTS }; } try { const { data } = await apiClient.post('/api/settings/filter', { userid: userId, type: 'falukant' }); const values = { ...FALUKANT_VISUAL_DEFAULTS }; for (const setting of Array.isArray(data) ? data : []) { const selected = Array.isArray(setting.options) ? setting.options.find((option) => String(option.id) === String(setting.value)) : null; const normalizedValue = selected?.value || null; if (setting.name === 'falukantPortraitStyle' && normalizedValue) { values.portraitStyle = normalizedValue; } if (setting.name === 'falukantFigureMode' && normalizedValue) { values.figureMode = normalizedValue; } } return values; } catch (error) { console.error('Error loading Falukant visual settings:', error); return { ...FALUKANT_VISUAL_DEFAULTS }; } }