export type LocalizedString = {
    [key: string]: string;
};

export function getLocalizedValue(
    value: any,
    locale: string,
    fallback: string = ''
): string {
    if (!value) return fallback;

    // If it's already a string, return it (backward compatibility or simple values)
    if (typeof value === 'string') return value;

    // If it's an object, try to get the requested locale
    if (typeof value === 'object') {
        if (value[locale]) return value[locale];

        // Fallback to 'en'
        if (value['en']) return value['en'];

        // Fallback to 'de'
        if (value['de']) return value['de'];

        // Fallback to first key
        const keys = Object.keys(value);
        if (keys.length > 0) return value[keys[0]];
    }

    return fallback;
}

export function createLocalizedObject(
    de: string,
    en?: string
): LocalizedString {
    return {
        de: de.trim(),
        en: (en || de).trim()
    };
}
