From 187989cc1d1b38eea7d6c66378fdcc9b7893d402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rnyi=20M=C3=A1rk?= Date: Mon, 30 Mar 2026 00:35:53 +0200 Subject: [PATCH 01/63] feat: pass invite token through OIDC flow to allow invited registration When registration is disabled, users with a valid invite link can now register via OIDC/SSO. The invite token is passed from the login page through the OIDC state, validated on callback, and used to bypass the allow_registration check. Invite usage count is incremented after successful registration. --- client/src/pages/LoginPage.tsx | 4 ++-- server/src/routes/oidc.ts | 22 +++++++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/client/src/pages/LoginPage.tsx b/client/src/pages/LoginPage.tsx index 933995c..0a26e2b 100644 --- a/client/src/pages/LoginPage.tsx +++ b/client/src/pages/LoginPage.tsx @@ -497,7 +497,7 @@ export default function LoginPage(): React.ReactElement { {error} )} - {t('common.or')}
-
{ } }, AUTH_CODE_CLEANUP); -const pendingStates = new Map(); +const pendingStates = new Map(); setInterval(() => { const now = Date.now(); @@ -104,8 +104,9 @@ router.get('/login', async (req: Request, res: Response) => { const proto = (req.headers['x-forwarded-proto'] as string) || req.protocol; const host = (req.headers['x-forwarded-host'] as string) || req.headers.host; const redirectUri = `${proto}://${host}/api/auth/oidc/callback`; + const inviteToken = req.query.invite as string | undefined; - pendingStates.set(state, { createdAt: Date.now(), redirectUri }); + pendingStates.set(state, { createdAt: Date.now(), redirectUri, inviteToken }); const params = new URLSearchParams({ response_type: 'code', @@ -194,7 +195,16 @@ router.get('/callback', async (req: Request, res: Response) => { const userCount = (db.prepare('SELECT COUNT(*) as count FROM users').get() as { count: number }).count; const isFirstUser = userCount === 0; - if (!isFirstUser) { + let validInvite: any = null; + if (pending.inviteToken) { + validInvite = db.prepare('SELECT * FROM invite_tokens WHERE token = ?').get(pending.inviteToken); + if (validInvite) { + if (validInvite.max_uses > 0 && validInvite.used_count >= validInvite.max_uses) validInvite = null; + if (validInvite?.expires_at && new Date(validInvite.expires_at) < new Date()) validInvite = null; + } + } + + if (!isFirstUser && !validInvite) { const setting = db.prepare("SELECT value FROM app_settings WHERE key = 'allow_registration'").get() as { value: string } | undefined; if (setting?.value === 'false') { return res.redirect(frontendUrl('/login?oidc_error=registration_disabled')); @@ -214,6 +224,12 @@ router.get('/callback', async (req: Request, res: Response) => { 'INSERT INTO users (username, email, password_hash, role, oidc_sub, oidc_issuer) VALUES (?, ?, ?, ?, ?, ?)' ).run(username, email, hash, role, sub, config.issuer); + if (validInvite) { + db.prepare( + 'UPDATE invite_tokens SET used_count = used_count + 1 WHERE id = ? AND (max_uses = 0 OR used_count < max_uses)' + ).run(validInvite.id); + } + user = { id: Number(result.lastInsertRowid), username, email, role } as User; } From d04629605e6ed7e15846c911d02344fb66b9b83d Mon Sep 17 00:00:00 2001 From: fgbona Date: Sun, 29 Mar 2026 19:39:05 -0300 Subject: [PATCH 02/63] feat(audit): admin audit log Audit log - Add audit_log table (migration + schema) with index on created_at. - Add auditLog service (writeAudit, getClientIp) and record events for backups (create, restore, upload-restore, delete, auto-settings), admin actions (users, OIDC, invites, system update, demo baseline, bag tracking, packing template delete, addons), and auth (app settings, MFA enable/disable). - Add GET /api/admin/audit-log with pagination; fix invite insert row id lookup. - Add AuditLogPanel and Admin tab; adminApi.auditLog. - Add admin.tabs.audit and admin.audit.* strings in all locale files. Note: Rebase feature branches so new DB migrations stay after existing ones (e.g. file_links) when merging upstream. --- client/src/api/client.ts | 2 + client/src/components/Admin/AuditLogPanel.tsx | 166 ++++++++++++++++++ client/src/i18n/translations/ar.ts | 13 ++ client/src/i18n/translations/br.ts | 13 ++ client/src/i18n/translations/de.ts | 16 +- client/src/i18n/translations/en.ts | 15 +- client/src/i18n/translations/es.ts | 14 ++ client/src/i18n/translations/fr.ts | 14 ++ client/src/i18n/translations/nl.ts | 14 ++ client/src/i18n/translations/ru.ts | 14 ++ client/src/i18n/translations/zh.ts | 14 ++ client/src/pages/AdminPage.tsx | 4 + server/src/db/migrations.ts | 14 ++ server/src/db/schema.ts | 11 ++ server/src/routes/admin.ts | 147 ++++++++++++++-- server/src/routes/auth.ts | 12 ++ server/src/routes/backup.ts | 53 +++++- server/src/services/auditLog.ts | 30 ++++ 18 files changed, 548 insertions(+), 18 deletions(-) create mode 100644 client/src/components/Admin/AuditLogPanel.tsx create mode 100644 server/src/services/auditLog.ts diff --git a/client/src/api/client.ts b/client/src/api/client.ts index 6726140..41bbcaf 100644 --- a/client/src/api/client.ts +++ b/client/src/api/client.ts @@ -163,6 +163,8 @@ export const adminApi = { listInvites: () => apiClient.get('/admin/invites').then(r => r.data), createInvite: (data: { max_uses: number; expires_in_days?: number }) => apiClient.post('/admin/invites', data).then(r => r.data), deleteInvite: (id: number) => apiClient.delete(`/admin/invites/${id}`).then(r => r.data), + auditLog: (params?: { limit?: number; offset?: number }) => + apiClient.get('/admin/audit-log', { params }).then(r => r.data), } export const addonsApi = { diff --git a/client/src/components/Admin/AuditLogPanel.tsx b/client/src/components/Admin/AuditLogPanel.tsx new file mode 100644 index 0000000..f36d69e --- /dev/null +++ b/client/src/components/Admin/AuditLogPanel.tsx @@ -0,0 +1,166 @@ +import React, { useCallback, useEffect, useState } from 'react' +import { adminApi } from '../../api/client' +import { useTranslation } from '../../i18n' +import { RefreshCw, ClipboardList } from 'lucide-react' + +interface AuditEntry { + id: number + created_at: string + user_id: number | null + username: string | null + user_email: string | null + action: string + resource: string | null + details: Record | null + ip: string | null +} + +export default function AuditLogPanel(): React.ReactElement { + const { t, locale } = useTranslation() + const [entries, setEntries] = useState([]) + const [total, setTotal] = useState(0) + const [offset, setOffset] = useState(0) + const [loading, setLoading] = useState(true) + const limit = 100 + + const loadFirstPage = useCallback(async () => { + setLoading(true) + try { + const data = await adminApi.auditLog({ limit, offset: 0 }) as { + entries: AuditEntry[] + total: number + } + setEntries(data.entries || []) + setTotal(data.total ?? 0) + setOffset(0) + } catch { + setEntries([]) + setTotal(0) + setOffset(0) + } finally { + setLoading(false) + } + }, []) + + const loadMore = useCallback(async () => { + const nextOffset = offset + limit + setLoading(true) + try { + const data = await adminApi.auditLog({ limit, offset: nextOffset }) as { + entries: AuditEntry[] + total: number + } + setEntries((prev) => [...prev, ...(data.entries || [])]) + setTotal(data.total ?? 0) + setOffset(nextOffset) + } catch { + /* keep existing */ + } finally { + setLoading(false) + } + }, [offset]) + + useEffect(() => { + loadFirstPage() + }, [loadFirstPage]) + + const fmtTime = (iso: string) => { + try { + return new Date(iso).toLocaleString(locale, { + dateStyle: 'short', + timeStyle: 'medium', + }) + } catch { + return iso + } + } + + const fmtDetails = (d: Record | null) => { + if (!d || Object.keys(d).length === 0) return '—' + try { + return JSON.stringify(d) + } catch { + return '—' + } + } + + const userLabel = (e: AuditEntry) => { + if (e.username) return e.username + if (e.user_email) return e.user_email + if (e.user_id != null) return `#${e.user_id}` + return '—' + } + + return ( +
+
+
+

+ + {t('admin.tabs.audit')} +

+

{t('admin.audit.subtitle')}

+
+ +
+ +

+ {t('admin.audit.showing', { count: entries.length, total })} +

+ + {loading && entries.length === 0 ? ( +
{t('common.loading')}
+ ) : entries.length === 0 ? ( +
{t('admin.audit.empty')}
+ ) : ( +
+ + + + + + + + + + + + + {entries.map((e) => ( + + + + + + + + + ))} + +
{t('admin.audit.col.time')}{t('admin.audit.col.user')}{t('admin.audit.col.action')}{t('admin.audit.col.resource')}{t('admin.audit.col.ip')}{t('admin.audit.col.details')}
{fmtTime(e.created_at)}{userLabel(e)}{e.action}{e.resource || '—'}{e.ip || '—'}{fmtDetails(e.details)}
+
+ )} + + {entries.length < total && ( + + )} +
+ ) +} diff --git a/client/src/i18n/translations/ar.ts b/client/src/i18n/translations/ar.ts index e4d5070..dda3574 100644 --- a/client/src/i18n/translations/ar.ts +++ b/client/src/i18n/translations/ar.ts @@ -276,6 +276,7 @@ const ar: Record = { 'admin.tabs.users': 'المستخدمون', 'admin.tabs.categories': 'الفئات', 'admin.tabs.backup': 'النسخ الاحتياطي', + 'admin.tabs.audit': 'سجل التدقيق', 'admin.tabs.settings': 'الإعدادات', 'admin.tabs.config': 'الإعدادات', 'admin.tabs.templates': 'قوالب التعبئة', @@ -419,6 +420,18 @@ const ar: Record = { 'admin.weather.locationHint': 'يعتمد الطقس على أول مكان بإحداثيات في كل يوم. إذا لم يكن هناك مكان مخصص ليوم ما، يُستخدم أي مكان من قائمة الأماكن كمرجع.', // GitHub + 'admin.audit.subtitle': 'أحداث الأمان والإدارة (النسخ الاحتياطية، المستخدمون، المصادقة الثنائية، الإعدادات).', + 'admin.audit.empty': 'لا توجد سجلات تدقيق بعد.', + 'admin.audit.refresh': 'تحديث', + 'admin.audit.loadMore': 'تحميل المزيد', + 'admin.audit.showing': 'تم تحميل {count} · الإجمالي {total}', + 'admin.audit.col.time': 'الوقت', + 'admin.audit.col.user': 'المستخدم', + 'admin.audit.col.action': 'الإجراء', + 'admin.audit.col.resource': 'المورد', + 'admin.audit.col.ip': 'عنوان IP', + 'admin.audit.col.details': 'التفاصيل', + 'admin.github.title': 'سجل الإصدارات', 'admin.github.subtitle': 'آخر التحديثات من {repo}', 'admin.github.latest': 'الأحدث', diff --git a/client/src/i18n/translations/br.ts b/client/src/i18n/translations/br.ts index 969e8a0..5047a61 100644 --- a/client/src/i18n/translations/br.ts +++ b/client/src/i18n/translations/br.ts @@ -271,6 +271,7 @@ const br: Record = { 'admin.tabs.users': 'Usuários', 'admin.tabs.categories': 'Categorias', 'admin.tabs.backup': 'Backup', + 'admin.tabs.audit': 'Registro de auditoria', 'admin.stats.users': 'Usuários', 'admin.stats.trips': 'Viagens', 'admin.stats.places': 'Lugares', @@ -413,6 +414,18 @@ const br: Record = { // GitHub 'admin.tabs.github': 'GitHub', + + 'admin.audit.subtitle': 'Eventos sensíveis de segurança e administração (backups, usuários, MFA, configurações).', + 'admin.audit.empty': 'Nenhum registro de auditoria ainda.', + 'admin.audit.refresh': 'Atualizar', + 'admin.audit.loadMore': 'Carregar mais', + 'admin.audit.showing': '{count} carregados · {total} no total', + 'admin.audit.col.time': 'Data/hora', + 'admin.audit.col.user': 'Usuário', + 'admin.audit.col.action': 'Ação', + 'admin.audit.col.resource': 'Recurso', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': 'Detalhes', 'admin.github.title': 'Histórico de versões', 'admin.github.subtitle': 'Últimas atualizações de {repo}', 'admin.github.latest': 'Mais recente', diff --git a/client/src/i18n/translations/de.ts b/client/src/i18n/translations/de.ts index 840a4f2..3f0a2f8 100644 --- a/client/src/i18n/translations/de.ts +++ b/client/src/i18n/translations/de.ts @@ -271,6 +271,7 @@ const de: Record = { 'admin.tabs.users': 'Benutzer', 'admin.tabs.categories': 'Kategorien', 'admin.tabs.backup': 'Backup', + 'admin.tabs.audit': 'Audit-Protokoll', 'admin.stats.users': 'Benutzer', 'admin.stats.trips': 'Reisen', 'admin.stats.places': 'Orte', @@ -374,8 +375,6 @@ const de: Record = { 'admin.tabs.addons': 'Addons', 'admin.addons.title': 'Addons', 'admin.addons.subtitle': 'Aktiviere oder deaktiviere Funktionen, um TREK nach deinen Wünschen anzupassen.', - 'admin.addons.catalog.memories.name': 'Erinnerungen', - 'admin.addons.catalog.memories.description': 'Geteilte Fotoalben für jede Reise', 'admin.addons.catalog.packing.name': 'Packliste', 'admin.addons.catalog.packing.description': 'Checklisten zum Kofferpacken für jede Reise', 'admin.addons.catalog.budget.name': 'Budget', @@ -415,6 +414,19 @@ const de: Record = { // GitHub 'admin.tabs.github': 'GitHub', + + 'admin.audit.subtitle': 'Sicherheitsrelevante und administrative Ereignisse (Backups, Benutzer, MFA, Einstellungen).', + 'admin.audit.empty': 'Noch keine Audit-Einträge.', + 'admin.audit.refresh': 'Aktualisieren', + 'admin.audit.loadMore': 'Mehr laden', + 'admin.audit.showing': '{count} geladen · {total} gesamt', + 'admin.audit.col.time': 'Zeit', + 'admin.audit.col.user': 'Benutzer', + 'admin.audit.col.action': 'Aktion', + 'admin.audit.col.resource': 'Ressource', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': 'Details', + 'admin.github.title': 'Update-Verlauf', 'admin.github.subtitle': 'Neueste Updates von {repo}', 'admin.github.latest': 'Aktuell', diff --git a/client/src/i18n/translations/en.ts b/client/src/i18n/translations/en.ts index 18d79ac..ee5f058 100644 --- a/client/src/i18n/translations/en.ts +++ b/client/src/i18n/translations/en.ts @@ -271,6 +271,7 @@ const en: Record = { 'admin.tabs.users': 'Users', 'admin.tabs.categories': 'Categories', 'admin.tabs.backup': 'Backup', + 'admin.tabs.audit': 'Audit log', 'admin.stats.users': 'Users', 'admin.stats.trips': 'Trips', 'admin.stats.places': 'Places', @@ -374,8 +375,6 @@ const en: Record = { 'admin.tabs.addons': 'Addons', 'admin.addons.title': 'Addons', 'admin.addons.subtitle': 'Enable or disable features to customize your TREK experience.', - 'admin.addons.catalog.memories.name': 'Memories', - 'admin.addons.catalog.memories.description': 'Shared photo albums for each trip', 'admin.addons.catalog.packing.name': 'Packing', 'admin.addons.catalog.packing.description': 'Checklists to prepare your luggage for each trip', 'admin.addons.catalog.budget.name': 'Budget', @@ -415,6 +414,18 @@ const en: Record = { // GitHub 'admin.tabs.github': 'GitHub', + + 'admin.audit.subtitle': 'Security-sensitive and administration events (backups, users, MFA, settings).', + 'admin.audit.empty': 'No audit entries yet.', + 'admin.audit.refresh': 'Refresh', + 'admin.audit.loadMore': 'Load more', + 'admin.audit.showing': '{count} loaded · {total} total', + 'admin.audit.col.time': 'Time', + 'admin.audit.col.user': 'User', + 'admin.audit.col.action': 'Action', + 'admin.audit.col.resource': 'Resource', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': 'Details', 'admin.github.title': 'Release History', 'admin.github.subtitle': 'Latest updates from {repo}', 'admin.github.latest': 'Latest', diff --git a/client/src/i18n/translations/es.ts b/client/src/i18n/translations/es.ts index 3cb293f..34f6979 100644 --- a/client/src/i18n/translations/es.ts +++ b/client/src/i18n/translations/es.ts @@ -269,6 +269,7 @@ const es: Record = { 'admin.tabs.users': 'Usuarios', 'admin.tabs.categories': 'Categorías', 'admin.tabs.backup': 'Copia de seguridad', + 'admin.tabs.audit': 'Registro de auditoría', 'admin.stats.users': 'Usuarios', 'admin.stats.trips': 'Viajes', 'admin.stats.places': 'Lugares', @@ -393,6 +394,19 @@ const es: Record = { // GitHub 'admin.tabs.github': 'GitHub', + + 'admin.audit.subtitle': 'Eventos sensibles de seguridad y administración (copias de seguridad, usuarios, MFA, ajustes).', + 'admin.audit.empty': 'Aún no hay entradas de auditoría.', + 'admin.audit.refresh': 'Actualizar', + 'admin.audit.loadMore': 'Cargar más', + 'admin.audit.showing': '{count} cargados · {total} en total', + 'admin.audit.col.time': 'Fecha y hora', + 'admin.audit.col.user': 'Usuario', + 'admin.audit.col.action': 'Acción', + 'admin.audit.col.resource': 'Recurso', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': 'Detalles', + 'admin.github.title': 'Historial de versiones', 'admin.github.subtitle': 'Últimas novedades de {repo}', 'admin.github.latest': 'Última', diff --git a/client/src/i18n/translations/fr.ts b/client/src/i18n/translations/fr.ts index 28a7462..fef5c43 100644 --- a/client/src/i18n/translations/fr.ts +++ b/client/src/i18n/translations/fr.ts @@ -271,6 +271,7 @@ const fr: Record = { 'admin.tabs.users': 'Utilisateurs', 'admin.tabs.categories': 'Catégories', 'admin.tabs.backup': 'Sauvegarde', + 'admin.tabs.audit': 'Journal d\'audit', 'admin.stats.users': 'Utilisateurs', 'admin.stats.trips': 'Voyages', 'admin.stats.places': 'Lieux', @@ -412,6 +413,19 @@ const fr: Record = { // GitHub 'admin.tabs.github': 'GitHub', + + 'admin.audit.subtitle': 'Événements liés à la sécurité et à l\'administration (sauvegardes, utilisateurs, MFA, paramètres).', + 'admin.audit.empty': 'Aucune entrée d\'audit pour le moment.', + 'admin.audit.refresh': 'Actualiser', + 'admin.audit.loadMore': 'Charger plus', + 'admin.audit.showing': '{count} chargés · {total} au total', + 'admin.audit.col.time': 'Date et heure', + 'admin.audit.col.user': 'Utilisateur', + 'admin.audit.col.action': 'Action', + 'admin.audit.col.resource': 'Ressource', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': 'Détails', + 'admin.github.title': 'Historique des versions', 'admin.github.subtitle': 'Dernières mises à jour de {repo}', 'admin.github.latest': 'Dernière', diff --git a/client/src/i18n/translations/nl.ts b/client/src/i18n/translations/nl.ts index add8dd6..8e35a4e 100644 --- a/client/src/i18n/translations/nl.ts +++ b/client/src/i18n/translations/nl.ts @@ -271,6 +271,7 @@ const nl: Record = { 'admin.tabs.users': 'Gebruikers', 'admin.tabs.categories': 'Categorieën', 'admin.tabs.backup': 'Back-up', + 'admin.tabs.audit': 'Auditlog', 'admin.stats.users': 'Gebruikers', 'admin.stats.trips': 'Reizen', 'admin.stats.places': 'Plaatsen', @@ -412,6 +413,19 @@ const nl: Record = { // GitHub 'admin.tabs.github': 'GitHub', + + 'admin.audit.subtitle': 'Beveiligingsgevoelige en beheerdersgebeurtenissen (back-ups, gebruikers, MFA, instellingen).', + 'admin.audit.empty': 'Nog geen auditregistraties.', + 'admin.audit.refresh': 'Vernieuwen', + 'admin.audit.loadMore': 'Meer laden', + 'admin.audit.showing': '{count} geladen · {total} totaal', + 'admin.audit.col.time': 'Tijd', + 'admin.audit.col.user': 'Gebruiker', + 'admin.audit.col.action': 'Actie', + 'admin.audit.col.resource': 'Bron', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': 'Details', + 'admin.github.title': 'Release-geschiedenis', 'admin.github.subtitle': 'Laatste updates van {repo}', 'admin.github.latest': 'Nieuwste', diff --git a/client/src/i18n/translations/ru.ts b/client/src/i18n/translations/ru.ts index 039f8dc..660bb29 100644 --- a/client/src/i18n/translations/ru.ts +++ b/client/src/i18n/translations/ru.ts @@ -271,6 +271,7 @@ const ru: Record = { 'admin.tabs.users': 'Пользователи', 'admin.tabs.categories': 'Категории', 'admin.tabs.backup': 'Резервная копия', + 'admin.tabs.audit': 'Журнал аудита', 'admin.stats.users': 'Пользователи', 'admin.stats.trips': 'Поездки', 'admin.stats.places': 'Места', @@ -412,6 +413,19 @@ const ru: Record = { // GitHub 'admin.tabs.github': 'GitHub', + + 'admin.audit.subtitle': 'События, связанные с безопасностью и администрированием (резервные копии, пользователи, MFA, настройки).', + 'admin.audit.empty': 'Записей аудита пока нет.', + 'admin.audit.refresh': 'Обновить', + 'admin.audit.loadMore': 'Загрузить ещё', + 'admin.audit.showing': 'Загружено: {count} · всего {total}', + 'admin.audit.col.time': 'Время', + 'admin.audit.col.user': 'Пользователь', + 'admin.audit.col.action': 'Действие', + 'admin.audit.col.resource': 'Объект', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': 'Подробности', + 'admin.github.title': 'История релизов', 'admin.github.subtitle': 'Последние обновления из {repo}', 'admin.github.latest': 'Последний', diff --git a/client/src/i18n/translations/zh.ts b/client/src/i18n/translations/zh.ts index 6da7988..7be0f3d 100644 --- a/client/src/i18n/translations/zh.ts +++ b/client/src/i18n/translations/zh.ts @@ -271,6 +271,7 @@ const zh: Record = { 'admin.tabs.users': '用户', 'admin.tabs.categories': '分类', 'admin.tabs.backup': '备份', + 'admin.tabs.audit': '审计日志', 'admin.stats.users': '用户', 'admin.stats.trips': '旅行', 'admin.stats.places': '地点', @@ -412,6 +413,19 @@ const zh: Record = { // GitHub 'admin.tabs.github': 'GitHub', + + 'admin.audit.subtitle': '安全与管理员操作记录(备份、用户、MFA、设置)。', + 'admin.audit.empty': '暂无审计记录。', + 'admin.audit.refresh': '刷新', + 'admin.audit.loadMore': '加载更多', + 'admin.audit.showing': '已加载 {count} 条 · 共 {total} 条', + 'admin.audit.col.time': '时间', + 'admin.audit.col.user': '用户', + 'admin.audit.col.action': '操作', + 'admin.audit.col.resource': '资源', + 'admin.audit.col.ip': 'IP', + 'admin.audit.col.details': '详情', + 'admin.github.title': '版本历史', 'admin.github.subtitle': '{repo} 的最新更新', 'admin.github.latest': '最新', diff --git a/client/src/pages/AdminPage.tsx b/client/src/pages/AdminPage.tsx index b63306f..5e2b007 100644 --- a/client/src/pages/AdminPage.tsx +++ b/client/src/pages/AdminPage.tsx @@ -13,6 +13,7 @@ import BackupPanel from '../components/Admin/BackupPanel' import GitHubPanel from '../components/Admin/GitHubPanel' import AddonManager from '../components/Admin/AddonManager' import PackingTemplateManager from '../components/Admin/PackingTemplateManager' +import AuditLogPanel from '../components/Admin/AuditLogPanel' import { Users, Map, Briefcase, Shield, Trash2, Edit2, Camera, FileText, Eye, EyeOff, Save, CheckCircle, XCircle, Loader2, UserPlus, ArrowUpCircle, ExternalLink, Download, AlertTriangle, RefreshCw, GitBranch, Sun, Link2, Copy, Plus } from 'lucide-react' import CustomSelect from '../components/shared/CustomSelect' @@ -61,6 +62,7 @@ export default function AdminPage(): React.ReactElement { { id: 'addons', label: t('admin.tabs.addons') }, { id: 'settings', label: t('admin.tabs.settings') }, { id: 'backup', label: t('admin.tabs.backup') }, + { id: 'audit', label: t('admin.tabs.audit') }, { id: 'github', label: t('admin.tabs.github') }, ] @@ -923,6 +925,8 @@ export default function AdminPage(): React.ReactElement { {activeTab === 'backup' && } + {activeTab === 'audit' && } + {activeTab === 'github' && } diff --git a/server/src/db/migrations.ts b/server/src/db/migrations.ts index 55078fd..7d59ef5 100644 --- a/server/src/db/migrations.ts +++ b/server/src/db/migrations.ts @@ -321,6 +321,20 @@ function runMigrations(db: Database.Database): void { UNIQUE(file_id, place_id) )`); }, + () => { + db.exec(` + CREATE TABLE IF NOT EXISTS audit_log ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + created_at DATETIME DEFAULT CURRENT_TIMESTAMP, + user_id INTEGER REFERENCES users(id) ON DELETE SET NULL, + action TEXT NOT NULL, + resource TEXT, + details TEXT, + ip TEXT + ); + CREATE INDEX IF NOT EXISTS idx_audit_log_created ON audit_log(created_at DESC); + `); + }, ]; if (currentVersion < migrations.length) { diff --git a/server/src/db/schema.ts b/server/src/db/schema.ts index 425a914..c3ebe23 100644 --- a/server/src/db/schema.ts +++ b/server/src/db/schema.ts @@ -380,6 +380,17 @@ function createTables(db: Database.Database): void { UNIQUE(assignment_id, user_id) ); CREATE INDEX IF NOT EXISTS idx_assignment_participants_assignment ON assignment_participants(assignment_id); + + CREATE TABLE IF NOT EXISTS audit_log ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + created_at DATETIME DEFAULT CURRENT_TIMESTAMP, + user_id INTEGER REFERENCES users(id) ON DELETE SET NULL, + action TEXT NOT NULL, + resource TEXT, + details TEXT, + ip TEXT + ); + CREATE INDEX IF NOT EXISTS idx_audit_log_created ON audit_log(created_at DESC); `); } diff --git a/server/src/routes/admin.ts b/server/src/routes/admin.ts index c7aaf2a..7879c78 100644 --- a/server/src/routes/admin.ts +++ b/server/src/routes/admin.ts @@ -7,6 +7,7 @@ import fs from 'fs'; import { db } from '../db/database'; import { authenticate, adminOnly } from '../middleware/auth'; import { AuthRequest, User, Addon } from '../types'; +import { writeAudit, getClientIp } from '../services/auditLog'; const router = express.Router(); @@ -52,6 +53,14 @@ router.post('/users', (req: Request, res: Response) => { 'SELECT id, username, email, role, created_at, updated_at FROM users WHERE id = ?' ).get(result.lastInsertRowid); + const authReq = req as AuthRequest; + writeAudit({ + userId: authReq.user.id, + action: 'admin.user_create', + resource: String(result.lastInsertRowid), + ip: getClientIp(req), + details: { username: username.trim(), email: email.trim(), role: role || 'user' }, + }); res.status(201).json({ user }); }); @@ -90,6 +99,19 @@ router.put('/users/:id', (req: Request, res: Response) => { 'SELECT id, username, email, role, created_at, updated_at FROM users WHERE id = ?' ).get(req.params.id); + const authReq = req as AuthRequest; + const changed: string[] = []; + if (username) changed.push('username'); + if (email) changed.push('email'); + if (role) changed.push('role'); + if (password) changed.push('password'); + writeAudit({ + userId: authReq.user.id, + action: 'admin.user_update', + resource: String(req.params.id), + ip: getClientIp(req), + details: { fields: changed }, + }); res.json({ user: updated }); }); @@ -103,6 +125,12 @@ router.delete('/users/:id', (req: Request, res: Response) => { if (!user) return res.status(404).json({ error: 'User not found' }); db.prepare('DELETE FROM users WHERE id = ?').run(req.params.id); + writeAudit({ + userId: authReq.user.id, + action: 'admin.user_delete', + resource: String(req.params.id), + ip: getClientIp(req), + }); res.json({ success: true }); }); @@ -115,6 +143,48 @@ router.get('/stats', (_req: Request, res: Response) => { res.json({ totalUsers, totalTrips, totalPlaces, totalFiles }); }); +router.get('/audit-log', (req: Request, res: Response) => { + const limitRaw = parseInt(String(req.query.limit || '100'), 10); + const offsetRaw = parseInt(String(req.query.offset || '0'), 10); + const limit = Math.min(Math.max(Number.isFinite(limitRaw) ? limitRaw : 100, 1), 500); + const offset = Math.max(Number.isFinite(offsetRaw) ? offsetRaw : 0, 0); + type Row = { + id: number; + created_at: string; + user_id: number | null; + username: string | null; + user_email: string | null; + action: string; + resource: string | null; + details: string | null; + ip: string | null; + }; + const rows = db.prepare(` + SELECT a.id, a.created_at, a.user_id, u.username, u.email as user_email, a.action, a.resource, a.details, a.ip + FROM audit_log a + LEFT JOIN users u ON u.id = a.user_id + ORDER BY a.id DESC + LIMIT ? OFFSET ? + `).all(limit, offset) as Row[]; + const total = (db.prepare('SELECT COUNT(*) as c FROM audit_log').get() as { c: number }).c; + res.json({ + entries: rows.map((r) => { + let details: Record | null = null; + if (r.details) { + try { + details = JSON.parse(r.details) as Record; + } catch { + details = { _parse_error: true }; + } + } + return { ...r, details }; + }), + total, + limit, + offset, + }); +}); + router.get('/oidc', (_req: Request, res: Response) => { const get = (key: string) => (db.prepare("SELECT value FROM app_settings WHERE key = ?").get(key) as { value: string } | undefined)?.value || ''; const secret = get('oidc_client_secret'); @@ -135,16 +205,25 @@ router.put('/oidc', (req: Request, res: Response) => { if (client_secret !== undefined) set('oidc_client_secret', client_secret); set('oidc_display_name', display_name); set('oidc_only', oidc_only ? 'true' : 'false'); + const authReq = req as AuthRequest; + writeAudit({ + userId: authReq.user.id, + action: 'admin.oidc_update', + ip: getClientIp(req), + details: { oidc_only: !!oidc_only, issuer_set: !!issuer }, + }); res.json({ success: true }); }); -router.post('/save-demo-baseline', (_req: Request, res: Response) => { +router.post('/save-demo-baseline', (req: Request, res: Response) => { if (process.env.DEMO_MODE !== 'true') { return res.status(404).json({ error: 'Not found' }); } try { const { saveBaseline } = require('../demo/demo-reset'); saveBaseline(); + const authReq = req as AuthRequest; + writeAudit({ userId: authReq.user.id, action: 'admin.demo_baseline_save', ip: getClientIp(req) }); res.json({ success: true, message: 'Demo baseline saved. Hourly resets will restore to this state.' }); } catch (err: unknown) { console.error(err); @@ -201,7 +280,7 @@ router.get('/version-check', async (_req: Request, res: Response) => { } }); -router.post('/update', async (_req: Request, res: Response) => { +router.post('/update', async (req: Request, res: Response) => { const rootDir = path.resolve(__dirname, '../../..'); const serverDir = path.resolve(__dirname, '../..'); const clientDir = path.join(rootDir, 'client'); @@ -224,6 +303,13 @@ router.post('/update', async (_req: Request, res: Response) => { const { version: newVersion } = require('../../package.json'); steps.push({ step: 'version', version: newVersion }); + const authReq = req as AuthRequest; + writeAudit({ + userId: authReq.user.id, + action: 'admin.system_update', + resource: newVersion, + ip: getClientIp(req), + }); res.json({ success: true, steps, restarting: true }); setTimeout(() => { @@ -260,24 +346,39 @@ router.post('/invites', (req: Request, res: Response) => { ? new Date(Date.now() + parseInt(expires_in_days) * 86400000).toISOString() : null; - db.prepare( + const ins = db.prepare( 'INSERT INTO invite_tokens (token, max_uses, expires_at, created_by) VALUES (?, ?, ?, ?)' ).run(token, uses, expiresAt, authReq.user.id); + const inviteId = Number(ins.lastInsertRowid); const invite = db.prepare(` SELECT i.*, u.username as created_by_name FROM invite_tokens i JOIN users u ON i.created_by = u.id - WHERE i.id = last_insert_rowid() - `).get(); + WHERE i.id = ? + `).get(inviteId); + writeAudit({ + userId: authReq.user.id, + action: 'admin.invite_create', + resource: String(inviteId), + ip: getClientIp(req), + details: { max_uses: uses, expires_in_days: expires_in_days ?? null }, + }); res.status(201).json({ invite }); }); -router.delete('/invites/:id', (_req: Request, res: Response) => { - const invite = db.prepare('SELECT id FROM invite_tokens WHERE id = ?').get(_req.params.id); +router.delete('/invites/:id', (req: Request, res: Response) => { + const invite = db.prepare('SELECT id FROM invite_tokens WHERE id = ?').get(req.params.id); if (!invite) return res.status(404).json({ error: 'Invite not found' }); - db.prepare('DELETE FROM invite_tokens WHERE id = ?').run(_req.params.id); + db.prepare('DELETE FROM invite_tokens WHERE id = ?').run(req.params.id); + const authReq = req as AuthRequest; + writeAudit({ + userId: authReq.user.id, + action: 'admin.invite_delete', + resource: String(req.params.id), + ip: getClientIp(req), + }); res.json({ success: true }); }); @@ -291,6 +392,13 @@ router.get('/bag-tracking', (_req: Request, res: Response) => { router.put('/bag-tracking', (req: Request, res: Response) => { const { enabled } = req.body; db.prepare("INSERT OR REPLACE INTO app_settings (key, value) VALUES ('bag_tracking_enabled', ?)").run(enabled ? 'true' : 'false'); + const authReq = req as AuthRequest; + writeAudit({ + userId: authReq.user.id, + action: 'admin.bag_tracking', + ip: getClientIp(req), + details: { enabled: !!enabled }, + }); res.json({ enabled: !!enabled }); }); @@ -337,10 +445,19 @@ router.put('/packing-templates/:id', (req: Request, res: Response) => { res.json({ template: db.prepare('SELECT * FROM packing_templates WHERE id = ?').get(req.params.id) }); }); -router.delete('/packing-templates/:id', (_req: Request, res: Response) => { - const template = db.prepare('SELECT * FROM packing_templates WHERE id = ?').get(_req.params.id); +router.delete('/packing-templates/:id', (req: Request, res: Response) => { + const template = db.prepare('SELECT * FROM packing_templates WHERE id = ?').get(req.params.id); if (!template) return res.status(404).json({ error: 'Template not found' }); - db.prepare('DELETE FROM packing_templates WHERE id = ?').run(_req.params.id); + db.prepare('DELETE FROM packing_templates WHERE id = ?').run(req.params.id); + const authReq = req as AuthRequest; + const t = template as { name?: string }; + writeAudit({ + userId: authReq.user.id, + action: 'admin.packing_template_delete', + resource: String(req.params.id), + ip: getClientIp(req), + details: { name: t.name }, + }); res.json({ success: true }); }); @@ -408,6 +525,14 @@ router.put('/addons/:id', (req: Request, res: Response) => { if (enabled !== undefined) db.prepare('UPDATE addons SET enabled = ? WHERE id = ?').run(enabled ? 1 : 0, req.params.id); if (config !== undefined) db.prepare('UPDATE addons SET config = ? WHERE id = ?').run(JSON.stringify(config), req.params.id); const updated = db.prepare('SELECT * FROM addons WHERE id = ?').get(req.params.id) as Addon; + const authReq = req as AuthRequest; + writeAudit({ + userId: authReq.user.id, + action: 'admin.addon_update', + resource: String(req.params.id), + ip: getClientIp(req), + details: { enabled: enabled !== undefined ? !!enabled : undefined, config_changed: config !== undefined }, + }); res.json({ addon: { ...updated, enabled: !!updated.enabled, config: JSON.parse(updated.config || '{}') } }); }); diff --git a/server/src/routes/auth.ts b/server/src/routes/auth.ts index b5518ef..f752269 100644 --- a/server/src/routes/auth.ts +++ b/server/src/routes/auth.ts @@ -13,6 +13,7 @@ import { authenticate, demoUploadBlock } from '../middleware/auth'; import { JWT_SECRET } from '../config'; import { encryptMfaSecret, decryptMfaSecret } from '../services/mfaCrypto'; import { AuthRequest, User } from '../types'; +import { writeAudit, getClientIp } from '../services/auditLog'; authenticator.options = { window: 1 }; @@ -518,6 +519,15 @@ router.put('/app-settings', authenticate, (req: Request, res: Response) => { if (allowed_file_types !== undefined) { db.prepare("INSERT OR REPLACE INTO app_settings (key, value) VALUES ('allowed_file_types', ?)").run(String(allowed_file_types)); } + writeAudit({ + userId: authReq.user.id, + action: 'settings.app_update', + ip: getClientIp(req), + details: { + allow_registration: allow_registration !== undefined ? Boolean(allow_registration) : undefined, + allowed_file_types_changed: allowed_file_types !== undefined, + }, + }); res.json({ success: true }); }); @@ -673,6 +683,7 @@ router.post('/mfa/enable', authenticate, (req: Request, res: Response) => { authReq.user.id ); mfaSetupPending.delete(authReq.user.id); + writeAudit({ userId: authReq.user.id, action: 'user.mfa_enable', ip: getClientIp(req) }); res.json({ success: true, mfa_enabled: true }); }); @@ -702,6 +713,7 @@ router.post('/mfa/disable', authenticate, rateLimiter(5, RATE_LIMIT_WINDOW), (re authReq.user.id ); mfaSetupPending.delete(authReq.user.id); + writeAudit({ userId: authReq.user.id, action: 'user.mfa_disable', ip: getClientIp(req) }); res.json({ success: true, mfa_enabled: false }); }); diff --git a/server/src/routes/backup.ts b/server/src/routes/backup.ts index e18190d..06a7ead 100644 --- a/server/src/routes/backup.ts +++ b/server/src/routes/backup.ts @@ -7,6 +7,10 @@ import fs from 'fs'; import { authenticate, adminOnly } from '../middleware/auth'; import * as scheduler from '../scheduler'; import { db, closeDb, reinitialize } from '../db/database'; +import { AuthRequest } from '../types'; +import { writeAudit, getClientIp } from '../services/auditLog'; + +type RestoreAuditInfo = { userId: number; ip: string | null; source: 'backup.restore' | 'backup.upload_restore'; label: string }; const router = express.Router(); @@ -103,6 +107,14 @@ router.post('/create', backupRateLimiter(3, BACKUP_RATE_WINDOW), async (_req: Re }); const stat = fs.statSync(outputPath); + const authReq = _req as AuthRequest; + writeAudit({ + userId: authReq.user.id, + action: 'backup.create', + resource: filename, + ip: getClientIp(_req), + details: { size: stat.size }, + }); res.json({ success: true, backup: { @@ -134,7 +146,7 @@ router.get('/download/:filename', (req: Request, res: Response) => { res.download(filePath, filename); }); -async function restoreFromZip(zipPath: string, res: Response) { +async function restoreFromZip(zipPath: string, res: Response, audit?: RestoreAuditInfo) { const extractDir = path.join(dataDir, `restore-${Date.now()}`); try { await fs.createReadStream(zipPath) @@ -174,6 +186,14 @@ async function restoreFromZip(zipPath: string, res: Response) { fs.rmSync(extractDir, { recursive: true, force: true }); + if (audit) { + writeAudit({ + userId: audit.userId, + action: audit.source, + resource: audit.label, + ip: audit.ip, + }); + } res.json({ success: true }); } catch (err: unknown) { console.error('Restore error:', err); @@ -191,7 +211,13 @@ router.post('/restore/:filename', async (req: Request, res: Response) => { if (!fs.existsSync(zipPath)) { return res.status(404).json({ error: 'Backup not found' }); } - await restoreFromZip(zipPath, res); + const authReq = req as AuthRequest; + await restoreFromZip(zipPath, res, { + userId: authReq.user.id, + ip: getClientIp(req), + source: 'backup.restore', + label: filename, + }); }); const uploadTmp = multer({ @@ -206,7 +232,14 @@ const uploadTmp = multer({ router.post('/upload-restore', uploadTmp.single('backup'), async (req: Request, res: Response) => { if (!req.file) return res.status(400).json({ error: 'No file uploaded' }); const zipPath = req.file.path; - await restoreFromZip(zipPath, res); + const authReq = req as AuthRequest; + const origName = req.file.originalname || 'upload.zip'; + await restoreFromZip(zipPath, res, { + userId: authReq.user.id, + ip: getClientIp(req), + source: 'backup.upload_restore', + label: origName, + }); if (fs.existsSync(zipPath)) fs.unlinkSync(zipPath); }); @@ -248,6 +281,13 @@ router.put('/auto-settings', (req: Request, res: Response) => { const settings = parseAutoBackupBody((req.body || {}) as Record); scheduler.saveSettings(settings); scheduler.start(); + const authReq = req as AuthRequest; + writeAudit({ + userId: authReq.user.id, + action: 'backup.auto_settings', + ip: getClientIp(req), + details: { enabled: settings.enabled, interval: settings.interval, keep_days: settings.keep_days }, + }); res.json({ settings }); } catch (err: unknown) { console.error('[backup] PUT auto-settings:', err); @@ -272,6 +312,13 @@ router.delete('/:filename', (req: Request, res: Response) => { } fs.unlinkSync(filePath); + const authReq = req as AuthRequest; + writeAudit({ + userId: authReq.user.id, + action: 'backup.delete', + resource: filename, + ip: getClientIp(req), + }); res.json({ success: true }); }); diff --git a/server/src/services/auditLog.ts b/server/src/services/auditLog.ts new file mode 100644 index 0000000..ed78ad5 --- /dev/null +++ b/server/src/services/auditLog.ts @@ -0,0 +1,30 @@ +import { Request } from 'express'; +import { db } from '../db/database'; + +export function getClientIp(req: Request): string | null { + const xff = req.headers['x-forwarded-for']; + if (typeof xff === 'string') { + const first = xff.split(',')[0]?.trim(); + return first || null; + } + if (Array.isArray(xff) && xff[0]) return String(xff[0]).trim() || null; + return req.socket?.remoteAddress || null; +} + +/** Best-effort; never throws — failures are logged only. */ +export function writeAudit(entry: { + userId: number | null; + action: string; + resource?: string | null; + details?: Record; + ip?: string | null; +}): void { + try { + const detailsJson = entry.details && Object.keys(entry.details).length > 0 ? JSON.stringify(entry.details) : null; + db.prepare( + `INSERT INTO audit_log (user_id, action, resource, details, ip) VALUES (?, ?, ?, ?, ?)` + ).run(entry.userId, entry.action, entry.resource ?? null, detailsJson, entry.ip ?? null); + } catch (e) { + console.error('[audit] write failed:', e instanceof Error ? e.message : e); + } +} From 11b85a2d70fa34e6b2a5cef78361fc8ce0e4ed5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rnyi=20M=C3=A1rk?= Date: Mon, 30 Mar 2026 00:43:42 +0200 Subject: [PATCH 03/63] feat: add Hungarian language support --- client/src/i18n/TranslationContext.tsx | 8 +- client/src/i18n/translations/hu.ts | 1236 ++++++++++++++++++++++++ 2 files changed, 1241 insertions(+), 3 deletions(-) create mode 100644 client/src/i18n/translations/hu.ts diff --git a/client/src/i18n/TranslationContext.tsx b/client/src/i18n/TranslationContext.tsx index 64dd34c..27402dd 100644 --- a/client/src/i18n/TranslationContext.tsx +++ b/client/src/i18n/TranslationContext.tsx @@ -4,6 +4,7 @@ import de from './translations/de' import en from './translations/en' import es from './translations/es' import fr from './translations/fr' +import hu from './translations/hu' import ru from './translations/ru' import zh from './translations/zh' import nl from './translations/nl' @@ -17,6 +18,7 @@ export const SUPPORTED_LANGUAGES = [ { value: 'en', label: 'English' }, { value: 'es', label: 'Español' }, { value: 'fr', label: 'Français' }, + { value: 'hu', label: 'Magyar' }, { value: 'nl', label: 'Nederlands' }, { value: 'br', label: 'Português (Brasil)' }, { value: 'ru', label: 'Русский' }, @@ -24,8 +26,8 @@ export const SUPPORTED_LANGUAGES = [ { value: 'ar', label: 'العربية' }, ] as const -const translations: Record = { de, en, es, fr, ru, zh, nl, ar, br } -const LOCALES: Record = { de: 'de-DE', en: 'en-US', es: 'es-ES', fr: 'fr-FR', ru: 'ru-RU', zh: 'zh-CN', nl: 'nl-NL', ar: 'ar-SA', br: 'pt-BR' } +const translations: Record = { de, en, es, fr, hu, ru, zh, nl, ar, br } +const LOCALES: Record = { de: 'de-DE', en: 'en-US', es: 'es-ES', fr: 'fr-FR', hu: 'hu-HU', ru: 'ru-RU', zh: 'zh-CN', nl: 'nl-NL', ar: 'ar-SA', br: 'pt-BR' } const RTL_LANGUAGES = new Set(['ar']) export function getLocaleForLanguage(language: string): string { @@ -34,7 +36,7 @@ export function getLocaleForLanguage(language: string): string { export function getIntlLanguage(language: string): string { if (language === 'br') return 'pt-BR' - return ['de', 'es', 'fr', 'ru', 'zh', 'nl', 'ar'].includes(language) ? language : 'en' + return ['de', 'es', 'fr', 'hu', 'ru', 'zh', 'nl', 'ar'].includes(language) ? language : 'en' } export function isRtlLanguage(language: string): boolean { diff --git a/client/src/i18n/translations/hu.ts b/client/src/i18n/translations/hu.ts new file mode 100644 index 0000000..2b9f188 --- /dev/null +++ b/client/src/i18n/translations/hu.ts @@ -0,0 +1,1236 @@ +const hu: Record = { + // Általános + 'common.save': 'Mentés', + 'common.cancel': 'Mégse', + 'common.delete': 'Törlés', + 'common.edit': 'Szerkesztés', + 'common.add': 'Hozzáadás', + 'common.loading': 'Betöltés...', + 'common.error': 'Hiba', + 'common.back': 'Vissza', + 'common.all': 'Összes', + 'common.close': 'Bezárás', + 'common.open': 'Megnyitás', + 'common.upload': 'Feltöltés', + 'common.search': 'Keresés', + 'common.confirm': 'Megerősítés', + 'common.ok': 'OK', + 'common.yes': 'Igen', + 'common.no': 'Nem', + 'common.or': 'vagy', + 'common.none': 'Nincs', + 'common.date': 'Dátum', + 'common.rename': 'Átnevezés', + 'common.name': 'Név', + 'common.email': 'E-mail', + 'common.password': 'Jelszó', + 'common.saving': 'Mentés...', + 'common.update': 'Frissítés', + 'common.change': 'Módosítás', + 'common.uploading': 'Feltöltés…', + 'common.backToPlanning': 'Vissza a tervezéshez', + 'common.reset': 'Visszaállítás', + + // Navbar + 'nav.trip': 'Utazás', + 'nav.share': 'Megosztás', + 'nav.settings': 'Beállítások', + 'nav.admin': 'Admin', + 'nav.logout': 'Kijelentkezés', + 'nav.lightMode': 'Világos mód', + 'nav.darkMode': 'Sötét mód', + 'nav.autoMode': 'Automatikus mód', + 'nav.administrator': 'Adminisztrátor', + + // Irányítópult + 'dashboard.title': 'Utazásaim', + 'dashboard.subtitle.loading': 'Utazások betöltése...', + 'dashboard.subtitle.trips': '{count} utazás ({archived} archivált)', + 'dashboard.subtitle.empty': 'Indítsd el az első utazásodat', + 'dashboard.subtitle.activeOne': '{count} aktív utazás', + 'dashboard.subtitle.activeMany': '{count} aktív utazás', + 'dashboard.subtitle.archivedSuffix': ' · {count} archivált', + 'dashboard.newTrip': 'Új utazás', + 'dashboard.gridView': 'Rácsnézet', + 'dashboard.listView': 'Listanézet', + 'dashboard.currency': 'Pénznem', + 'dashboard.timezone': 'Időzónák', + 'dashboard.localTime': 'Helyi', + 'dashboard.timezoneCustomTitle': 'Egyéni időzóna', + 'dashboard.timezoneCustomLabelPlaceholder': 'Címke (opcionális)', + 'dashboard.timezoneCustomTzPlaceholder': 'pl. America/New_York', + 'dashboard.timezoneCustomAdd': 'Hozzáadás', + 'dashboard.timezoneCustomErrorEmpty': 'Adj meg egy időzóna-azonosítót', + 'dashboard.timezoneCustomErrorInvalid': 'Érvénytelen időzóna. Használj Europe/Berlin formátumot', + 'dashboard.timezoneCustomErrorDuplicate': 'Már hozzáadva', + 'dashboard.emptyTitle': 'Még nincsenek utazások', + 'dashboard.emptyText': 'Hozd létre az első utazásodat, és kezdj el tervezni helyeket, napi programokat és csomagolási listákat.', + 'dashboard.emptyButton': 'Első utazás létrehozása', + 'dashboard.nextTrip': 'Következő utazás', + 'dashboard.shared': 'Megosztott', + 'dashboard.sharedBy': 'Megosztotta: {name}', + 'dashboard.days': 'nap', + 'dashboard.places': 'hely', + 'dashboard.archive': 'Archiválás', + 'dashboard.restore': 'Visszaállítás', + 'dashboard.archived': 'Archivált', + 'dashboard.status.ongoing': 'Folyamatban', + 'dashboard.status.today': 'Ma', + 'dashboard.status.tomorrow': 'Holnap', + 'dashboard.status.past': 'Múlt', + 'dashboard.status.daysLeft': 'Még {count} nap', + 'dashboard.toast.loadError': 'Nem sikerült betölteni az utazásokat', + 'dashboard.toast.created': 'Utazás sikeresen létrehozva!', + 'dashboard.toast.createError': 'Nem sikerült létrehozni', + 'dashboard.toast.updated': 'Utazás frissítve!', + 'dashboard.toast.updateError': 'Nem sikerült frissíteni', + 'dashboard.toast.deleted': 'Utazás törölve', + 'dashboard.toast.deleteError': 'Nem sikerült törölni', + 'dashboard.toast.archived': 'Utazás archiválva', + 'dashboard.toast.archiveError': 'Nem sikerült archiválni', + 'dashboard.toast.restored': 'Utazás visszaállítva', + 'dashboard.toast.restoreError': 'Nem sikerült visszaállítani', + 'dashboard.toast.copied': 'Utazás másolva!', + 'dashboard.toast.copyError': 'Nem sikerült másolni az utazást', + 'dashboard.copyTrip': 'Másolás', + 'dashboard.confirm.delete': '"{title}" utazás törlése? Minden hely és terv véglegesen törlődik.', + 'dashboard.editTrip': 'Utazás szerkesztése', + 'dashboard.createTrip': 'Új utazás létrehozása', + 'dashboard.tripTitle': 'Cím', + 'dashboard.tripTitlePlaceholder': 'pl. Nyár Japánban', + 'dashboard.tripDescription': 'Leírás', + 'dashboard.tripDescriptionPlaceholder': 'Miről szól ez az utazás?', + 'dashboard.startDate': 'Kezdő dátum', + 'dashboard.endDate': 'Záró dátum', + 'dashboard.noDateHint': 'Nincs dátum megadva — 7 alapértelmezett nap jön létre. Ezt bármikor módosíthatod.', + 'dashboard.coverImage': 'Borítókép', + 'dashboard.addCoverImage': 'Borítókép hozzáadása', + 'dashboard.addMembers': 'Útitársak', + 'dashboard.addMember': 'Tag hozzáadása', + 'dashboard.coverSaved': 'Borítókép mentve', + 'dashboard.coverUploadError': 'Feltöltés sikertelen', + 'dashboard.coverRemoveError': 'Eltávolítás sikertelen', + 'dashboard.titleRequired': 'A cím megadása kötelező', + 'dashboard.endDateError': 'A záró dátumnak a kezdő dátum után kell lennie', + + // Beállítások + 'settings.title': 'Beállítások', + 'settings.subtitle': 'Személyes beállítások konfigurálása', + 'settings.map': 'Térkép', + 'settings.mapTemplate': 'Térkép sablon', + 'settings.mapTemplatePlaceholder.select': 'Sablon kiválasztása...', + 'settings.mapDefaultHint': 'Hagyd üresen az OpenStreetMap használatához (alapértelmezett)', + 'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', + 'settings.mapHint': 'URL sablon a térképcsempékhez', + 'settings.latitude': 'Szélességi fok', + 'settings.longitude': 'Hosszúsági fok', + 'settings.saveMap': 'Térkép mentése', + 'settings.apiKeys': 'API kulcsok', + 'settings.mapsKey': 'Google Maps API kulcs', + 'settings.mapsKeyHint': 'Helykereséséhez. Places API (New) szükséges. Létrehozás: console.cloud.google.com', + 'settings.weatherKey': 'OpenWeatherMap API kulcs', + 'settings.weatherKeyHint': 'Időjárás adatokhoz. Ingyenes: openweathermap.org/api', + 'settings.keyPlaceholder': 'Kulcs megadása...', + 'settings.configured': 'Konfigurálva', + 'settings.saveKeys': 'Kulcsok mentése', + 'settings.display': 'Megjelenítés', + 'settings.colorMode': 'Színmód', + 'settings.light': 'Világos', + 'settings.dark': 'Sötét', + 'settings.auto': 'Automatikus', + 'settings.language': 'Nyelv', + 'settings.temperature': 'Hőmérséklet egység', + 'settings.timeFormat': 'Időformátum', + 'settings.routeCalculation': 'Útvonalszámítás', + 'settings.on': 'Be', + 'settings.off': 'Ki', + 'settings.account': 'Fiók', + 'settings.username': 'Felhasználónév', + 'settings.email': 'E-mail', + 'settings.role': 'Szerepkör', + 'settings.roleAdmin': 'Adminisztrátor', + 'settings.oidcLinked': 'Összekapcsolva:', + 'settings.changePassword': 'Jelszó módosítása', + 'settings.currentPassword': 'Jelenlegi jelszó', + 'settings.newPassword': 'Új jelszó', + 'settings.confirmPassword': 'Új jelszó megerősítése', + 'settings.updatePassword': 'Jelszó frissítése', + 'settings.passwordRequired': 'Kérjük, add meg a jelenlegi és az új jelszót', + 'settings.currentPasswordRequired': 'A jelenlegi jelszó megadása kötelező', + 'settings.passwordTooShort': 'A jelszónak legalább 8 karakter hosszúnak kell lennie', + 'settings.passwordWeak': 'A jelszónak tartalmaznia kell nagybetűt, kisbetűt és számot', + 'settings.passwordMismatch': 'A jelszavak nem egyeznek', + 'settings.passwordChanged': 'Jelszó sikeresen módosítva', + 'settings.deleteAccount': 'Törlés', + 'settings.deleteAccountTitle': 'Biztosan törölni szeretnéd a fiókodat?', + 'settings.deleteAccountWarning': 'A fiókod és minden utazásod, helyed és fájlod véglegesen törlődik. Ez a művelet nem vonható vissza.', + 'settings.deleteAccountConfirm': 'Végleges törlés', + 'settings.deleteBlockedTitle': 'Törlés nem lehetséges', + 'settings.deleteBlockedMessage': 'Te vagy az egyetlen adminisztrátor. Nevezz ki egy másik felhasználót adminnak, mielőtt törölnéd a fiókodat.', + 'settings.roleUser': 'Felhasználó', + 'settings.saveProfile': 'Mentés', + 'settings.toast.mapSaved': 'Térképbeállítások mentve', + 'settings.toast.keysSaved': 'API kulcsok mentve', + 'settings.toast.displaySaved': 'Megjelenítési beállítások mentve', + 'settings.toast.profileSaved': 'Profil frissítve', + 'settings.uploadAvatar': 'Profilkép feltöltése', + 'settings.removeAvatar': 'Profilkép eltávolítása', + 'settings.avatarUploaded': 'Profilkép frissítve', + 'settings.avatarRemoved': 'Profilkép eltávolítva', + 'settings.avatarError': 'Feltöltés sikertelen', + 'settings.mfa.title': 'Kétfaktoros hitelesítés (2FA)', + 'settings.mfa.description': 'Egy második lépést ad a bejelentkezéshez e-mail és jelszó használatakor. Használj hitelesítő alkalmazást (Google Authenticator, Authy stb.).', + 'settings.mfa.enabled': '2FA engedélyezve van a fiókodban.', + 'settings.mfa.disabled': '2FA nincs engedélyezve.', + 'settings.mfa.setup': 'Hitelesítő beállítása', + 'settings.mfa.scanQr': 'Olvasd be ezt a QR-kódot az alkalmazásoddal, vagy add meg manuálisan a titkos kulcsot.', + 'settings.mfa.secretLabel': 'Titkos kulcs (kézi megadás)', + 'settings.mfa.codePlaceholder': '6 jegyű kód', + 'settings.mfa.enable': '2FA engedélyezése', + 'settings.mfa.cancelSetup': 'Mégse', + 'settings.mfa.disableTitle': '2FA kikapcsolása', + 'settings.mfa.disableHint': 'Add meg a fiókod jelszavát és a hitelesítő alkalmazás aktuális kódját.', + 'settings.mfa.disable': '2FA kikapcsolása', + 'settings.mfa.toastEnabled': 'Kétfaktoros hitelesítés engedélyezve', + 'settings.mfa.toastDisabled': 'Kétfaktoros hitelesítés kikapcsolva', + 'settings.mfa.demoBlocked': 'Demo módban nem érhető el', + + // Bejelentkezés + 'login.error': 'Bejelentkezés sikertelen. Kérjük, ellenőrizd a megadott adatokat.', + 'login.tagline': 'Az utazásaid.\nA terved.', + 'login.description': 'Tervezz utazásokat közösen interaktív térképekkel, költségvetéssel és valós idejű szinkronizálással.', + 'login.features.maps': 'Interaktív térképek', + 'login.features.mapsDesc': 'Google Places, útvonalak és csoportosítás', + 'login.features.realtime': 'Valós idejű szinkron', + 'login.features.realtimeDesc': 'Közös tervezés WebSocket-en keresztül', + 'login.features.budget': 'Költségvetés-követés', + 'login.features.budgetDesc': 'Kategóriák, diagramok és személyenkénti költségek', + 'login.features.collab': 'Együttműködés', + 'login.features.collabDesc': 'Többfelhasználós, megosztott utazásokkal', + 'login.features.packing': 'Csomagolási listák', + 'login.features.packingDesc': 'Kategóriák és haladás', + 'login.features.bookings': 'Foglalások', + 'login.features.bookingsDesc': 'Repülők, szállodák, éttermek és még több', + 'login.features.files': 'Dokumentumok', + 'login.features.filesDesc': 'Fájlok feltöltése és kezelése', + 'login.features.routes': 'Útvonal-optimalizálás', + 'login.features.routesDesc': 'Automatikus optimalizálás és Google Maps export', + 'login.selfHosted': 'Saját üzemeltetés \u00B7 Nyílt forráskód \u00B7 Az adataid nálad maradnak', + 'login.title': 'Bejelentkezés', + 'login.subtitle': 'Üdv újra', + 'login.signingIn': 'Bejelentkezés…', + 'login.signIn': 'Bejelentkezés', + 'login.createAdmin': 'Admin fiók létrehozása', + 'login.createAdminHint': 'Hozd létre az első admin fiókot a TREK-hez.', + 'login.createAccount': 'Fiók létrehozása', + 'login.createAccountHint': 'Új fiók regisztrálása.', + 'login.creating': 'Létrehozás…', + 'login.noAccount': 'Nincs még fiókod?', + 'login.hasAccount': 'Már van fiókod?', + 'login.register': 'Regisztráció', + 'login.emailPlaceholder': 'email@cimed.hu', + 'login.username': 'Felhasználónév', + 'login.oidc.registrationDisabled': 'A regisztráció le van tiltva. Lépj kapcsolatba az adminisztrátorral.', + 'login.oidc.noEmail': 'Nem érkezett e-mail a szolgáltatótól.', + 'login.oidc.tokenFailed': 'Hitelesítés sikertelen.', + 'login.oidc.invalidState': 'Érvénytelen munkamenet. Kérjük, próbáld újra.', + 'login.demoFailed': 'Demo bejelentkezés sikertelen', + 'login.oidcSignIn': 'Bejelentkezés ezzel: {name}', + 'login.oidcOnly': 'A jelszavas hitelesítés le van tiltva. Kérjük, jelentkezz be az SSO szolgáltatódon keresztül.', + 'login.demoHint': 'Próbáld ki a demót — regisztráció nélkül', + 'login.mfaTitle': 'Kétfaktoros hitelesítés', + 'login.mfaSubtitle': 'Add meg a 6 jegyű kódot a hitelesítő alkalmazásból.', + 'login.mfaCodeLabel': 'Ellenőrző kód', + 'login.mfaCodeRequired': 'Add meg a kódot a hitelesítő alkalmazásból.', + 'login.mfaHint': 'Nyisd meg a Google Authenticator, Authy vagy más TOTP alkalmazást.', + 'login.mfaBack': '← Vissza a bejelentkezéshez', + 'login.mfaVerify': 'Ellenőrzés', + + // Regisztráció + 'register.passwordMismatch': 'A jelszavak nem egyeznek', + 'register.passwordTooShort': 'A jelszónak legalább 6 karakter hosszúnak kell lennie', + 'register.failed': 'Regisztráció sikertelen', + 'register.getStarted': 'Kezdjük', + 'register.subtitle': 'Hozz létre egy fiókot, és kezdd el megtervezni álomutazásaidat.', + 'register.feature1': 'Korlátlan utazási tervek', + 'register.feature2': 'Interaktív térképnézet', + 'register.feature3': 'Helyek és kategóriák kezelése', + 'register.feature4': 'Foglalások nyomon követése', + 'register.feature5': 'Csomagolási listák készítése', + 'register.feature6': 'Fényképek és fájlok tárolása', + 'register.createAccount': 'Fiók létrehozása', + 'register.startPlanning': 'Kezdd el az utazástervezést', + 'register.minChars': 'Min. 6 karakter', + 'register.confirmPassword': 'Jelszó megerősítése', + 'register.repeatPassword': 'Jelszó ismétlése', + 'register.registering': 'Regisztráció...', + 'register.register': 'Regisztráció', + 'register.hasAccount': 'Már van fiókod?', + 'register.signIn': 'Bejelentkezés', + + // Admin + 'admin.title': 'Adminisztráció', + 'admin.subtitle': 'Felhasználókezelés és rendszerbeállítások', + 'admin.tabs.users': 'Felhasználók', + 'admin.tabs.categories': 'Kategóriák', + 'admin.tabs.backup': 'Biztonsági mentés', + 'admin.stats.users': 'Felhasználók', + 'admin.stats.trips': 'Utazások', + 'admin.stats.places': 'Helyek', + 'admin.stats.photos': 'Fotók', + 'admin.stats.files': 'Fájlok', + 'admin.table.user': 'Felhasználó', + 'admin.table.email': 'E-mail', + 'admin.table.role': 'Szerepkör', + 'admin.table.created': 'Létrehozva', + 'admin.table.lastLogin': 'Utolsó belépés', + 'admin.table.actions': 'Műveletek', + 'admin.you': '(Te)', + 'admin.editUser': 'Felhasználó szerkesztése', + 'admin.newPassword': 'Új jelszó', + 'admin.newPasswordHint': 'Hagyd üresen a jelenlegi jelszó megtartásához', + 'admin.deleteUser': '"{name}" felhasználó törlése? Minden utazás véglegesen törlődik.', + 'admin.deleteUserTitle': 'Felhasználó törlése', + 'admin.newPasswordPlaceholder': 'Új jelszó megadása…', + 'admin.toast.loadError': 'Nem sikerült betölteni az admin adatokat', + 'admin.toast.userUpdated': 'Felhasználó frissítve', + 'admin.toast.updateError': 'Nem sikerült frissíteni', + 'admin.toast.userDeleted': 'Felhasználó törölve', + 'admin.toast.deleteError': 'Nem sikerült törölni', + 'admin.toast.cannotDeleteSelf': 'Saját fiók nem törölhető', + 'admin.toast.userCreated': 'Felhasználó létrehozva', + 'admin.toast.createError': 'Nem sikerült létrehozni a felhasználót', + 'admin.toast.fieldsRequired': 'Felhasználónév, e-mail és jelszó megadása kötelező', + 'admin.createUser': 'Felhasználó létrehozása', + 'admin.invite.title': 'Meghívó linkek', + 'admin.invite.subtitle': 'Egyszer használatos regisztrációs linkek létrehozása', + 'admin.invite.create': 'Link létrehozása', + 'admin.invite.createAndCopy': 'Létrehozás és másolás', + 'admin.invite.empty': 'Még nincsenek meghívó linkek', + 'admin.invite.maxUses': 'Max. használat', + 'admin.invite.expiry': 'Lejárat', + 'admin.invite.uses': 'felhasználva', + 'admin.invite.expiresAt': 'lejár', + 'admin.invite.createdBy': 'készítette', + 'admin.invite.active': 'Aktív', + 'admin.invite.expired': 'Lejárt', + 'admin.invite.usedUp': 'Elhasználva', + 'admin.invite.copied': 'Meghívó link vágólapra másolva', + 'admin.invite.copyLink': 'Link másolása', + 'admin.invite.deleted': 'Meghívó link törölve', + 'admin.invite.createError': 'Nem sikerült létrehozni a meghívó linket', + 'admin.invite.deleteError': 'Nem sikerült törölni a meghívó linket', + 'admin.tabs.settings': 'Beállítások', + 'admin.allowRegistration': 'Regisztráció engedélyezése', + 'admin.allowRegistrationHint': 'Új felhasználók regisztrálhatják magukat', + 'admin.apiKeys': 'API kulcsok', + 'admin.apiKeysHint': 'Opcionális. Bővített helyadatokat tesz lehetővé, például fotókat és időjárást.', + 'admin.mapsKey': 'Google Maps API kulcs', + 'admin.mapsKeyHint': 'Helykereséshez szükséges. Létrehozás: console.cloud.google.com', + 'admin.mapsKeyHintLong': 'API kulcs nélkül az OpenStreetMap szolgál helykeresésre. Google API kulccsal képek, értékelések és nyitvatartás is betölthetők. Létrehozás: console.cloud.google.com.', + 'admin.recommended': 'Ajánlott', + 'admin.weatherKey': 'OpenWeatherMap API kulcs', + 'admin.weatherKeyHint': 'Időjárás adatokhoz. Ingyenes: openweathermap.org', + 'admin.validateKey': 'Teszt', + 'admin.keyValid': 'Csatlakozva', + 'admin.keyInvalid': 'Érvénytelen', + 'admin.keySaved': 'API kulcsok mentve', + 'admin.oidcTitle': 'Egyszeri bejelentkezés (OIDC)', + 'admin.oidcSubtitle': 'Bejelentkezés külső szolgáltatókon keresztül, pl. Google, Apple, Authentik vagy Keycloak.', + 'admin.oidcDisplayName': 'Megjelenítendő név', + 'admin.oidcIssuer': 'Issuer URL', + 'admin.oidcIssuerHint': 'A szolgáltató OpenID Connect Issuer URL-je. pl. https://accounts.google.com', + 'admin.oidcSaved': 'OIDC konfiguráció mentve', + 'admin.oidcOnlyMode': 'Jelszavas hitelesítés letiltása', + 'admin.oidcOnlyModeHint': 'Ha engedélyezve van, csak SSO bejelentkezés lehetséges. A jelszavas bejelentkezés és regisztráció le van tiltva.', + + // Fájltípusok + 'admin.fileTypes': 'Engedélyezett fájltípusok', + 'admin.fileTypesHint': 'Állítsd be, milyen fájltípusokat tölthetnek fel a felhasználók.', + 'admin.fileTypesFormat': 'Vesszővel elválasztott kiterjesztések (pl. jpg,png,pdf,doc). Használj *-ot az összes típus engedélyezéséhez.', + 'admin.fileTypesSaved': 'Fájltípus-beállítások mentve', + + // Csomagolási sablonok és poggyászkövetés + 'admin.bagTracking.title': 'Poggyászkövetés', + 'admin.bagTracking.subtitle': 'Súly- és táskahozzárendelés engedélyezése csomagolási tételeknél', + 'admin.tabs.config': 'Konfiguráció', + 'admin.tabs.templates': 'Csomagolási sablonok', + 'admin.packingTemplates.title': 'Csomagolási sablonok', + 'admin.packingTemplates.subtitle': 'Újrafelhasználható csomagolási listák létrehozása utazásaidhoz', + 'admin.packingTemplates.create': 'Új sablon', + 'admin.packingTemplates.namePlaceholder': 'Sablon neve (pl. Tengerparti nyaralás)', + 'admin.packingTemplates.empty': 'Még nincsenek sablonok', + 'admin.packingTemplates.items': 'tétel', + 'admin.packingTemplates.categories': 'kategória', + 'admin.packingTemplates.itemName': 'Tétel neve', + 'admin.packingTemplates.itemCategory': 'Kategória', + 'admin.packingTemplates.categoryName': 'Kategória neve (pl. Ruházat)', + 'admin.packingTemplates.addCategory': 'Kategória hozzáadása', + 'admin.packingTemplates.created': 'Sablon létrehozva', + 'admin.packingTemplates.deleted': 'Sablon törölve', + 'admin.packingTemplates.loadError': 'Nem sikerült betölteni a sablonokat', + 'admin.packingTemplates.createError': 'Nem sikerült létrehozni a sablont', + 'admin.packingTemplates.deleteError': 'Nem sikerült törölni a sablont', + 'admin.packingTemplates.saveError': 'Nem sikerült menteni', + + // Bővítmények + 'admin.tabs.addons': 'Bővítmények', + 'admin.addons.title': 'Bővítmények', + 'admin.addons.subtitle': 'Funkciók engedélyezése vagy letiltása a TREK testreszabásához.', + 'admin.addons.catalog.memories.name': 'Emlékek', + 'admin.addons.catalog.memories.description': 'Megosztott fotóalbumok minden utazáshoz', + 'admin.addons.catalog.packing.name': 'Csomagolás', + 'admin.addons.catalog.packing.description': 'Ellenőrzőlisták a poggyász előkészítéséhez minden utazáshoz', + 'admin.addons.catalog.budget.name': 'Költségvetés', + 'admin.addons.catalog.budget.description': 'Kiadások nyomon követése és az utazási költségvetés tervezése', + 'admin.addons.catalog.documents.name': 'Dokumentumok', + 'admin.addons.catalog.documents.description': 'Úti dokumentumok tárolása és kezelése', + 'admin.addons.catalog.vacay.name': 'Vacay', + 'admin.addons.catalog.vacay.description': 'Személyes szabadságtervező naptárnézettel', + 'admin.addons.catalog.atlas.name': 'Atlasz', + 'admin.addons.catalog.atlas.description': 'Világtérkép meglátogatott országokkal és utazási statisztikákkal', + 'admin.addons.catalog.collab.name': 'Együttműködés', + 'admin.addons.catalog.collab.description': 'Valós idejű jegyzetek, szavazások és csevegés az utazás tervezéséhez', + 'admin.addons.subtitleBefore': 'Funkciók engedélyezése vagy letiltása a ', + 'admin.addons.subtitleAfter': ' testreszabásához.', + 'admin.addons.enabled': 'Engedélyezve', + 'admin.addons.disabled': 'Letiltva', + 'admin.addons.type.trip': 'Utazás', + 'admin.addons.type.global': 'Globális', + 'admin.addons.tripHint': 'Fülként érhető el minden utazáson belül', + 'admin.addons.globalHint': 'Önálló szekcióként elérhető a fő navigációban', + 'admin.addons.toast.updated': 'Bővítmény frissítve', + 'admin.addons.toast.error': 'Nem sikerült frissíteni a bővítményt', + 'admin.addons.noAddons': 'Nincsenek elérhető bővítmények', + // Időjárás információ + 'admin.weather.title': 'Időjárás adatok', + 'admin.weather.badge': '2026. március 24. óta', + 'admin.weather.description': 'A TREK az Open-Meteo-t használja időjárás-adatforrásként. Az Open-Meteo egy ingyenes, nyílt forráskódú időjárás-szolgáltatás — nincs szükség API kulcsra.', + 'admin.weather.forecast': '16 napos előrejelzés', + 'admin.weather.forecastDesc': 'Korábban 5 nap volt (OpenWeatherMap)', + 'admin.weather.climate': 'Történelmi klímaadatok', + 'admin.weather.climateDesc': 'Az elmúlt 85 év átlagai a 16 napos előrejelzésen túli napokhoz', + 'admin.weather.requests': '10 000 kérés / nap', + 'admin.weather.requestsDesc': 'Ingyenes, nincs szükség API kulcsra', + 'admin.weather.locationHint': 'Az időjárás az adott nap első koordinátákkal rendelkező helye alapján készül. Ha nincs hely hozzárendelve a naphoz, a helylista bármelyik helye szolgál referenciául.', + + // GitHub + 'admin.tabs.github': 'GitHub', + 'admin.github.title': 'Frissítési előzmények', + 'admin.github.subtitle': 'Legújabb frissítések: {repo}', + 'admin.github.latest': 'Legújabb', + 'admin.github.prerelease': 'Előzetes kiadás', + 'admin.github.showDetails': 'Részletek megjelenítése', + 'admin.github.hideDetails': 'Részletek elrejtése', + 'admin.github.loadMore': 'Továbbiak betöltése', + 'admin.github.loading': 'Betöltés...', + 'admin.github.error': 'Nem sikerült betölteni a kiadásokat', + 'admin.github.by': 'készítette', + 'admin.github.support': 'Segít fenntartani a TREK fejlesztését', + + 'admin.update.available': 'Frissítés elérhető', + 'admin.update.text': 'A TREK {version} elérhető. Jelenleg a {current} verziót használod.', + 'admin.update.button': 'Megtekintés a GitHubon', + 'admin.update.install': 'Frissítés telepítése', + 'admin.update.confirmTitle': 'Frissítés telepítése?', + 'admin.update.confirmText': 'A TREK frissítésre kerül {current} verzióról {version} verzióra. A szerver ezután automatikusan újraindul.', + 'admin.update.dataInfo': 'Minden adat (utazások, felhasználók, API kulcsok, feltöltések, Vacay, Atlas, költségvetések) megmarad.', + 'admin.update.warning': 'Az alkalmazás az újraindítás alatt rövid ideig nem lesz elérhető.', + 'admin.update.confirm': 'Frissítés most', + 'admin.update.installing': 'Frissítés…', + 'admin.update.success': 'Frissítés telepítve! A szerver újraindul…', + 'admin.update.failed': 'Frissítés sikertelen', + 'admin.update.backupHint': 'Javasoljuk, hogy frissítés előtt készíts biztonsági mentést.', + 'admin.update.backupLink': 'Biztonsági mentéshez', + 'admin.update.howTo': 'Frissítési útmutató', + 'admin.update.dockerText': 'A TREK példányod Dockerben fut. A {version} verzióra frissítéshez futtasd a következő parancsokat a szervereden:', + 'admin.update.reloadHint': 'Kérjük, töltsd újra az oldalt néhány másodperc múlva.', + + // Vacay bővítmény + 'vacay.subtitle': 'Szabadságnapok tervezése és kezelése', + 'vacay.settings': 'Beállítások', + 'vacay.year': 'Év', + 'vacay.addYear': 'Év hozzáadása', + 'vacay.removeYear': 'Év eltávolítása', + 'vacay.removeYearConfirm': '{year} eltávolítása?', + 'vacay.removeYearHint': 'Az adott év összes szabadság-bejegyzése és céges szabadnapja véglegesen törlődik.', + 'vacay.remove': 'Eltávolítás', + 'vacay.persons': 'Személyek', + 'vacay.noPersons': 'Nincsenek személyek hozzáadva', + 'vacay.addPerson': 'Személy hozzáadása', + 'vacay.editPerson': 'Személy szerkesztése', + 'vacay.removePerson': 'Személy eltávolítása', + 'vacay.removePersonConfirm': '{name} eltávolítása?', + 'vacay.removePersonHint': 'A személy összes szabadság-bejegyzése véglegesen törlődik.', + 'vacay.personName': 'Név', + 'vacay.personNamePlaceholder': 'Név megadása', + 'vacay.color': 'Szín', + 'vacay.add': 'Hozzáadás', + 'vacay.legend': 'Jelmagyarázat', + 'vacay.publicHoliday': 'Ünnepnap', + 'vacay.companyHoliday': 'Céges szabadnap', + 'vacay.weekend': 'Hétvége', + 'vacay.modeVacation': 'Szabadság', + 'vacay.modeCompany': 'Céges szabadnap', + 'vacay.entitlement': 'Szabadságkeret', + 'vacay.entitlementDays': 'nap', + 'vacay.used': 'Felhasznált', + 'vacay.remaining': 'Maradt', + 'vacay.carriedOver': '{year}-ból/ből', + 'vacay.blockWeekends': 'Hétvégék zárolása', + 'vacay.blockWeekendsHint': 'Szabadság-bejegyzések megakadályozása szombaton és vasárnap', + 'vacay.publicHolidays': 'Ünnepnapok', + 'vacay.publicHolidaysHint': 'Ünnepnapok megjelölése a naptárban', + 'vacay.selectCountry': 'Ország kiválasztása', + 'vacay.selectRegion': 'Régió kiválasztása (opcionális)', + 'vacay.addCalendar': 'Naptár hozzáadása', + 'vacay.calendarLabel': 'Címke (opcionális)', + 'vacay.calendarColor': 'Szín', + 'vacay.noCalendars': 'Még nincsenek ünnepnap-naptárak hozzáadva', + 'vacay.weekendDays': 'Hétvégi napok', + 'vacay.mon': 'H', + 'vacay.tue': 'K', + 'vacay.wed': 'Sze', + 'vacay.thu': 'Cs', + 'vacay.fri': 'P', + 'vacay.sat': 'Szo', + 'vacay.sun': 'V', + 'vacay.companyHolidays': 'Céges szabadnapok', + 'vacay.companyHolidaysHint': 'Céges szintű szabadnapok megjelölésének engedélyezése', + 'vacay.companyHolidaysNoDeduct': 'A céges szabadnapok nem számítanak bele a szabadságkeretbe.', + 'vacay.carryOver': 'Szabadság átvitele', + 'vacay.carryOverHint': 'Megmaradt szabadságnapok automatikus átvitele a következő évre', + 'vacay.sharing': 'Megosztás', + 'vacay.sharingHint': 'Szabadságterved megosztása más TREK felhasználókkal', + 'vacay.owner': 'Tulajdonos', + 'vacay.shareEmailPlaceholder': 'TREK felhasználó e-mail címe', + 'vacay.shareSuccess': 'Terv sikeresen megosztva', + 'vacay.shareError': 'Nem sikerült megosztani a tervet', + 'vacay.dissolve': 'Összevonás feloldása', + 'vacay.dissolveHint': 'Naptárak újbóli szétválasztása. A bejegyzéseid megmaradnak.', + 'vacay.dissolveAction': 'Feloldás', + 'vacay.dissolved': 'Naptár szétválasztva', + 'vacay.fusedWith': 'Összevonva:', + 'vacay.you': 'te', + 'vacay.noData': 'Nincs adat', + 'vacay.changeColor': 'Szín módosítása', + 'vacay.inviteUser': 'Felhasználó meghívása', + 'vacay.inviteHint': 'Hívj meg egy másik TREK felhasználót közös szabadságnaptár megosztásához.', + 'vacay.selectUser': 'Felhasználó kiválasztása', + 'vacay.sendInvite': 'Meghívó küldése', + 'vacay.inviteSent': 'Meghívó elküldve', + 'vacay.inviteError': 'Nem sikerült elküldeni a meghívót', + 'vacay.pending': 'függőben', + 'vacay.noUsersAvailable': 'Nincsenek elérhető felhasználók', + 'vacay.accept': 'Elfogadás', + 'vacay.decline': 'Elutasítás', + 'vacay.acceptFusion': 'Elfogadás és összevonás', + 'vacay.inviteTitle': 'Összevonási kérelem', + 'vacay.inviteWantsToFuse': 'szeretne megosztani veled egy szabadságnaptárat.', + 'vacay.fuseInfo1': 'Mindketten látjátok az összes szabadság-bejegyzést egy közös naptárban.', + 'vacay.fuseInfo2': 'Mindkét fél létrehozhat és szerkeszthet bejegyzéseket a másik számára.', + 'vacay.fuseInfo3': 'Mindkét fél törölhet bejegyzéseket és módosíthatja a szabadságkeretet.', + 'vacay.fuseInfo4': 'A beállítások, mint ünnepnapok és céges szabadnapok, közösen érvényesek.', + 'vacay.fuseInfo5': 'Az összevonás bármikor feloldható bármelyik fél által. A bejegyzések megmaradnak.', + 'nav.myTrips': 'Utazásaim', + + // Atlas bővítmény + 'atlas.subtitle': 'Utazási lábnyomod a világban', + 'atlas.countries': 'Országok', + 'atlas.trips': 'Utazások', + 'atlas.places': 'Helyek', + 'atlas.unmark': 'Eltávolítás', + 'atlas.confirmMark': 'Megjelölöd ezt az országot meglátogatottként?', + 'atlas.confirmUnmark': 'Eltávolítod ezt az országot a meglátogatottak listájáról?', + 'atlas.markVisited': 'Megjelölés meglátogatottként', + 'atlas.markVisitedHint': 'Ország hozzáadása a meglátogatottak listájához', + 'atlas.addToBucket': 'Hozzáadás a bakancslistához', + 'atlas.addToBucketHint': 'Mentés meglátogatni kívánt helyként', + 'atlas.bucketWhen': 'Mikor tervezed meglátogatni?', + 'atlas.statsTab': 'Statisztikák', + 'atlas.bucketTab': 'Bakancslista', + 'atlas.addBucket': 'Hozzáadás a bakancslistához', + 'atlas.bucketNamePlaceholder': 'Hely vagy úti cél...', + 'atlas.bucketNotesPlaceholder': 'Jegyzetek (opcionális)', + 'atlas.bucketEmpty': 'A bakancslistád üres', + 'atlas.bucketEmptyHint': 'Adj hozzá helyeket, ahová álmodsz eljutni', + 'atlas.days': 'Napok', + 'atlas.visitedCountries': 'Meglátogatott országok', + 'atlas.cities': 'Városok', + 'atlas.noData': 'Még nincsenek utazási adatok', + 'atlas.noDataHint': 'Hozz létre egy utazást és adj hozzá helyeket a világtérképhez', + 'atlas.lastTrip': 'Utolsó utazás', + 'atlas.nextTrip': 'Következő utazás', + 'atlas.daysLeft': 'nap van hátra', + 'atlas.streak': 'Sorozat', + 'atlas.year': 'év', + 'atlas.years': 'év', + 'atlas.yearInRow': 'egymást követő év', + 'atlas.yearsInRow': 'egymást követő év', + 'atlas.tripIn': 'utazás itt:', + 'atlas.tripsIn': 'utazás itt:', + 'atlas.since': 'óta', + 'atlas.europe': 'Európa', + 'atlas.asia': 'Ázsia', + 'atlas.northAmerica': 'É-Amerika', + 'atlas.southAmerica': 'D-Amerika', + 'atlas.africa': 'Afrika', + 'atlas.oceania': 'Óceánia', + 'atlas.other': 'Egyéb', + 'atlas.firstVisit': 'Első utazás', + 'atlas.lastVisitLabel': 'Utolsó utazás', + 'atlas.tripSingular': 'Utazás', + 'atlas.tripPlural': 'Utazások', + 'atlas.placeVisited': 'Meglátogatott hely', + 'atlas.placesVisited': 'Meglátogatott helyek', + + // Utazástervező + 'trip.tabs.plan': 'Terv', + 'trip.tabs.reservations': 'Foglalások', + 'trip.tabs.reservationsShort': 'Foglalás', + 'trip.tabs.packing': 'Csomagolási lista', + 'trip.tabs.packingShort': 'Csomag', + 'trip.tabs.budget': 'Költségvetés', + 'trip.tabs.files': 'Fájlok', + 'trip.loading': 'Utazás betöltése...', + 'trip.mobilePlan': 'Tervezés', + 'trip.mobilePlaces': 'Helyek', + 'trip.toast.placeUpdated': 'Hely frissítve', + 'trip.toast.placeAdded': 'Hely hozzáadva', + 'trip.toast.placeDeleted': 'Hely törölve', + 'trip.toast.selectDay': 'Kérjük, először válassz egy napot', + 'trip.toast.assignedToDay': 'Hely hozzárendelve a naphoz', + 'trip.toast.reorderError': 'Nem sikerült átrendezni', + 'trip.toast.reservationUpdated': 'Foglalás frissítve', + 'trip.toast.reservationAdded': 'Foglalás hozzáadva', + 'trip.toast.deleted': 'Törölve', + 'trip.confirm.deletePlace': 'Biztosan törölni szeretnéd ezt a helyet?', + + // Napi terv oldalsáv + 'dayplan.emptyDay': 'Nincs tervezett hely erre a napra', + 'dayplan.addNote': 'Jegyzet hozzáadása', + 'dayplan.editNote': 'Jegyzet szerkesztése', + 'dayplan.noteAdd': 'Jegyzet hozzáadása', + 'dayplan.noteEdit': 'Jegyzet szerkesztése', + 'dayplan.noteTitle': 'Jegyzet', + 'dayplan.noteSubtitle': 'Napi jegyzet', + 'dayplan.totalCost': 'Összköltség', + 'dayplan.days': 'nap', + 'dayplan.dayN': '{n}. nap', + 'dayplan.calculating': 'Számítás...', + 'dayplan.route': 'Útvonal', + 'dayplan.optimize': 'Optimalizálás', + 'dayplan.optimized': 'Útvonal optimalizálva', + 'dayplan.routeError': 'Nem sikerült kiszámítani az útvonalat', + 'dayplan.toast.needTwoPlaces': 'Legalább két hely szükséges az útvonal-optimalizáláshoz', + 'dayplan.toast.routeOptimized': 'Útvonal optimalizálva', + 'dayplan.toast.noGeoPlaces': 'Nem találhatók koordinátákkal rendelkező helyek az útvonalszámításhoz', + 'dayplan.confirmed': 'Megerősítve', + 'dayplan.pendingRes': 'Függőben', + 'dayplan.pdf': 'PDF', + 'dayplan.pdfTooltip': 'Napi terv exportálása PDF-be', + 'dayplan.pdfError': 'Nem sikerült a PDF exportálás', + + // Helyek oldalsáv + 'places.addPlace': 'Hely/Tevékenység hozzáadása', + 'places.assignToDay': 'Melyik naphoz adod?', + 'places.all': 'Összes', + 'places.unplanned': 'Nem tervezett', + 'places.search': 'Helyek keresése...', + 'places.allCategories': 'Összes kategória', + 'places.count': '{count} hely', + 'places.countSingular': '1 hely', + 'places.allPlanned': 'Minden hely be van tervezve', + 'places.noneFound': 'Nem találhatók helyek', + 'places.editPlace': 'Hely szerkesztése', + 'places.formName': 'Név', + 'places.formNamePlaceholder': 'pl. Eiffel-torony', + 'places.formDescription': 'Leírás', + 'places.formDescriptionPlaceholder': 'Rövid leírás...', + 'places.formAddress': 'Cím', + 'places.formAddressPlaceholder': 'Utca, Város, Ország', + 'places.formLat': 'Szélességi fok (pl. 48.8566)', + 'places.formLng': 'Hosszúsági fok (pl. 2.3522)', + 'places.formCategory': 'Kategória', + 'places.noCategory': 'Nincs kategória', + 'places.categoryNamePlaceholder': 'Kategória neve', + 'places.formTime': 'Időpont', + 'places.startTime': 'Kezdés', + 'places.endTime': 'Befejezés', + 'places.endTimeBeforeStart': 'A befejezési idő a kezdési idő előtt van', + 'places.timeCollision': 'Időbeli átfedés:', + 'places.formWebsite': 'Weboldal', + 'places.formNotesPlaceholder': 'Személyes jegyzetek...', + 'places.formReservation': 'Foglalás', + 'places.reservationNotesPlaceholder': 'Foglalási jegyzetek, visszaigazolási szám...', + 'places.mapsSearchPlaceholder': 'Helyek keresése...', + 'places.mapsSearchError': 'Helykeresés sikertelen.', + 'places.osmHint': 'OpenStreetMap keresés aktív (képek, nyitvatartás és értékelések nélkül). Bővített adatokhoz add meg a Google API kulcsot a beállításokban.', + 'places.osmActive': 'Keresés OpenStreetMap-en keresztül (képek, értékelések és nyitvatartás nélkül). Bővített adatokhoz add meg a Google API kulcsot a beállításokban.', + 'places.categoryCreateError': 'Nem sikerült létrehozni a kategóriát', + 'places.nameRequired': 'Kérjük, adj meg egy nevet', + 'places.saveError': 'Nem sikerült menteni', + // Hely részletek + 'inspector.opened': 'Nyitva', + 'inspector.closed': 'Zárva', + 'inspector.openingHours': 'Nyitvatartás', + 'inspector.showHours': 'Nyitvatartás megjelenítése', + 'inspector.files': 'Fájlok', + 'inspector.filesCount': '{count} fájl', + 'inspector.removeFromDay': 'Eltávolítás a napról', + 'inspector.addToDay': 'Hozzáadás a naphoz', + 'inspector.confirmedRes': 'Megerősített foglalás', + 'inspector.pendingRes': 'Függőben lévő foglalás', + 'inspector.google': 'Megnyitás a Google Térképben', + 'inspector.website': 'Weboldal megnyitása', + 'inspector.addRes': 'Foglalás', + 'inspector.editRes': 'Foglalás szerkesztése', + 'inspector.participants': 'Résztvevők', + + // Foglalások + 'reservations.title': 'Foglalások', + 'reservations.empty': 'Még nincsenek foglalások', + 'reservations.emptyHint': 'Adj hozzá foglalásokat repülőkhöz, szállodákhoz és egyebekhez', + 'reservations.add': 'Foglalás hozzáadása', + 'reservations.addManual': 'Kézi foglalás', + 'reservations.placeHint': 'Tipp: A foglalásokat legjobb közvetlenül egy helyről létrehozni, hogy összekapcsolódjon a napi tervvel.', + 'reservations.confirmed': 'Megerősítve', + 'reservations.pending': 'Függőben', + 'reservations.summary': '{confirmed} megerősítve, {pending} függőben', + 'reservations.fromPlan': 'Tervből', + 'reservations.showFiles': 'Fájlok megjelenítése', + 'reservations.editTitle': 'Foglalás szerkesztése', + 'reservations.status': 'Állapot', + 'reservations.datetime': 'Dátum és idő', + 'reservations.startTime': 'Kezdési idő', + 'reservations.endTime': 'Befejezési idő', + 'reservations.date': 'Dátum', + 'reservations.time': 'Időpont', + 'reservations.timeAlt': 'Időpont (alternatív, pl. 19:30)', + 'reservations.linkExisting': 'Meglévő fájl csatolása', + 'reservations.notes': 'Jegyzetek', + 'reservations.notesPlaceholder': 'További jegyzetek...', + 'reservations.meta.airline': 'Légitársaság', + 'reservations.meta.flightNumber': 'Járatszám', + 'reservations.meta.from': 'Honnan', + 'reservations.meta.to': 'Hová', + 'reservations.meta.trainNumber': 'Vonatszám', + 'reservations.meta.platform': 'Vágány', + 'reservations.meta.seat': 'Ülés', + 'reservations.meta.checkIn': 'Bejelentkezés', + 'reservations.meta.checkOut': 'Kijelentkezés', + 'reservations.meta.linkAccommodation': 'Szállás', + 'reservations.meta.pickAccommodation': 'Szállás hozzárendelése', + 'reservations.meta.noAccommodation': 'Nincs', + 'reservations.meta.hotelPlace': 'Szálloda', + 'reservations.meta.pickHotel': 'Szálloda kiválasztása', + 'reservations.meta.fromDay': 'Ettől', + 'reservations.meta.toDay': 'Eddig', + 'reservations.meta.selectDay': 'Nap kiválasztása', + 'reservations.type.flight': 'Repülő', + 'reservations.type.hotel': 'Szálloda', + 'reservations.type.restaurant': 'Étterem', + 'reservations.type.train': 'Vonat', + 'reservations.type.car': 'Autóbérlés', + 'reservations.type.cruise': 'Hajóút', + 'reservations.type.event': 'Esemény', + 'reservations.type.tour': 'Túra', + 'reservations.type.other': 'Egyéb', + 'reservations.confirm.delete': 'Biztosan törölni szeretnéd a(z) "{name}" foglalást?', + 'reservations.toast.updated': 'Foglalás frissítve', + 'reservations.toast.removed': 'Foglalás törölve', + 'reservations.toast.fileUploaded': 'Fájl feltöltve', + 'reservations.toast.uploadError': 'Feltöltés sikertelen', + 'reservations.newTitle': 'Új foglalás', + 'reservations.bookingType': 'Foglalás típusa', + 'reservations.titleLabel': 'Cím', + 'reservations.titlePlaceholder': 'pl. Lufthansa LH123, Hotel Adlon, ...', + 'reservations.locationAddress': 'Helyszín / Cím', + 'reservations.locationPlaceholder': 'Cím, Repülőtér, Szálloda...', + 'reservations.confirmationCode': 'Foglalási kód', + 'reservations.confirmationPlaceholder': 'pl. ABC12345', + 'reservations.day': 'Nap', + 'reservations.noDay': 'Nincs nap', + 'reservations.place': 'Hely', + 'reservations.noPlace': 'Nincs hely', + 'reservations.pendingSave': 'mentés…', + 'reservations.uploading': 'Feltöltés...', + 'reservations.attachFile': 'Fájl csatolása', + 'reservations.toast.saveError': 'Nem sikerült menteni', + 'reservations.toast.updateError': 'Nem sikerült frissíteni', + 'reservations.toast.deleteError': 'Nem sikerült törölni', + 'reservations.confirm.remove': '"{name}" foglalás eltávolítása?', + 'reservations.linkAssignment': 'Összekapcsolás napi tervvel', + 'reservations.pickAssignment': 'Válassz hozzárendelést a tervedből...', + 'reservations.noAssignment': 'Nincs összekapcsolás (önálló)', + + // Költségvetés + 'budget.title': 'Költségvetés', + 'budget.emptyTitle': 'Még nincs költségvetés létrehozva', + 'budget.emptyText': 'Hozz létre kategóriákat és bejegyzéseket az utazási költségvetés tervezéséhez', + 'budget.emptyPlaceholder': 'Kategória neve...', + 'budget.createCategory': 'Kategória létrehozása', + 'budget.category': 'Kategória', + 'budget.categoryName': 'Kategória neve', + 'budget.table.name': 'Név', + 'budget.table.total': 'Összesen', + 'budget.table.persons': 'Személyek', + 'budget.table.days': 'nap', + 'budget.table.perPerson': 'Személyenként', + 'budget.table.perDay': 'Naponta', + 'budget.table.perPersonDay': 'Fő / Nap', + 'budget.table.note': 'Megjegyzés', + 'budget.newEntry': 'Új bejegyzés', + 'budget.defaultEntry': 'Új bejegyzés', + 'budget.defaultCategory': 'Új kategória', + 'budget.total': 'Összesen', + 'budget.totalBudget': 'Teljes költségvetés', + 'budget.byCategory': 'Kategóriánként', + 'budget.editTooltip': 'Kattints a szerkesztéshez', + 'budget.confirm.deleteCategory': 'Biztosan törölni szeretnéd a(z) "{name}" kategóriát {count} bejegyzéssel?', + 'budget.deleteCategory': 'Kategória törlése', + 'budget.perPerson': 'Személyenként', + 'budget.paid': 'Fizetve', + 'budget.open': 'Nyitott', + 'budget.noMembers': 'Nincsenek résztvevők hozzárendelve', + + // Fájlok + 'files.title': 'Fájlok', + 'files.count': '{count} fájl', + 'files.countSingular': '1 fájl', + 'files.uploaded': '{count} feltöltve', + 'files.uploadError': 'Feltöltés sikertelen', + 'files.dropzone': 'Húzd ide a fájlokat', + 'files.dropzoneHint': 'vagy kattints a böngészéshez', + 'files.allowedTypes': 'Képek, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Max 50 MB', + 'files.uploading': 'Feltöltés...', + 'files.filterAll': 'Összes', + 'files.filterPdf': 'PDF-ek', + 'files.filterImages': 'Képek', + 'files.filterDocs': 'Dokumentumok', + 'files.filterCollab': 'Közös jegyzetek', + 'files.sourceCollab': 'Közös jegyzetekből', + 'files.empty': 'Még nincsenek fájlok', + 'files.emptyHint': 'Tölts fel fájlokat az utazásodhoz', + 'files.openTab': 'Megnyitás új lapon', + 'files.confirm.delete': 'Biztosan törölni szeretnéd ezt a fájlt?', + 'files.toast.deleted': 'Fájl törölve', + 'files.toast.deleteError': 'Nem sikerült törölni a fájlt', + 'files.sourcePlan': 'Napi terv', + 'files.sourceBooking': 'Foglalás', + 'files.attach': 'Csatolás', + 'files.pasteHint': 'Képeket a vágólapról is beillesztheted (Ctrl+V)', + 'files.trash': 'Kuka', + 'files.trashEmpty': 'A kuka üres', + 'files.emptyTrash': 'Kuka ürítése', + 'files.restore': 'Visszaállítás', + 'files.star': 'Csillag', + 'files.unstar': 'Csillag eltávolítása', + 'files.assign': 'Hozzárendelés', + 'files.assignTitle': 'Fájl hozzárendelése', + 'files.assignPlace': 'Hely', + 'files.assignBooking': 'Foglalás', + 'files.unassigned': 'Nincs hozzárendelve', + 'files.unlink': 'Kapcsolat eltávolítása', + 'files.toast.trashed': 'Kukába helyezve', + 'files.toast.restored': 'Fájl visszaállítva', + 'files.toast.trashEmptied': 'Kuka kiürítve', + 'files.toast.assigned': 'Fájl hozzárendelve', + 'files.toast.assignError': 'Hozzárendelés sikertelen', + 'files.toast.restoreError': 'Visszaállítás sikertelen', + 'files.confirm.permanentDelete': 'Véglegesen törlöd ezt a fájlt? Ez nem vonható vissza.', + 'files.confirm.emptyTrash': 'Véglegesen törlöd az összes kukába helyezett fájlt? Ez nem vonható vissza.', + 'files.noteLabel': 'Megjegyzés', + 'files.notePlaceholder': 'Megjegyzés hozzáadása...', + + // Csomagolás + 'packing.title': 'Csomagolási lista', + 'packing.empty': 'A csomagolási lista üres', + 'packing.progress': '{packed} / {total} becsomagolva ({percent}%)', + 'packing.clearChecked': '{count} kipipált eltávolítása', + 'packing.clearCheckedShort': '{count} eltávolítása', + 'packing.suggestions': 'Javaslatok', + 'packing.suggestionsTitle': 'Javaslatok hozzáadása', + 'packing.allSuggested': 'Minden javaslat hozzáadva', + 'packing.allPacked': 'Minden be van csomagolva!', + 'packing.addPlaceholder': 'Új tárgy hozzáadása...', + 'packing.categoryPlaceholder': 'Kategória...', + 'packing.filterAll': 'Összes', + 'packing.filterOpen': 'Nyitott', + 'packing.filterDone': 'Kész', + 'packing.emptyTitle': 'A csomagolási lista üres', + 'packing.emptyHint': 'Adj hozzá tárgyakat vagy használd a javaslatokat', + 'packing.emptyFiltered': 'Nincs elem ebben a szűrőben', + 'packing.menuRename': 'Átnevezés', + 'packing.menuCheckAll': 'Összes kipipálása', + 'packing.menuUncheckAll': 'Összes jelölés törlése', + 'packing.menuDeleteCat': 'Kategória törlése', + 'packing.assignUser': 'Felhasználó hozzárendelése', + 'packing.noMembers': 'Nincsenek utazási tagok', + 'packing.addItem': 'Tétel hozzáadása', + 'packing.addItemPlaceholder': 'Tétel neve...', + 'packing.addCategory': 'Kategória hozzáadása', + 'packing.newCategoryPlaceholder': 'Kategória neve (pl. Ruházat)', + 'packing.applyTemplate': 'Sablon alkalmazása', + 'packing.template': 'Sablon', + 'packing.templateApplied': '{count} tétel hozzáadva a sablonból', + 'packing.templateError': 'Nem sikerült alkalmazni a sablont', + 'packing.bags': 'Táskák', + 'packing.noBag': 'Nincs hozzárendelve', + 'packing.totalWeight': 'Összsúly', + 'packing.bagName': 'Táska neve...', + 'packing.addBag': 'Táska hozzáadása', + 'packing.changeCategory': 'Kategória módosítása', + 'packing.confirm.clearChecked': 'Biztosan el szeretnéd távolítani a(z) {count} kipipált tárgyat?', + 'packing.confirm.deleteCat': 'Biztosan törölni szeretnéd a(z) "{name}" kategóriát {count} tárggyal?', + 'packing.defaultCategory': 'Egyéb', + 'packing.toast.saveError': 'Nem sikerült menteni', + 'packing.toast.deleteError': 'Nem sikerült törölni', + 'packing.toast.renameError': 'Nem sikerült átnevezni', + 'packing.toast.addError': 'Nem sikerült hozzáadni', + + // Csomagolási javaslatok + 'packing.suggestions.items': [ + { name: 'Útlevél', category: 'Dokumentumok' }, + { name: 'Személyi igazolvány', category: 'Dokumentumok' }, + { name: 'Utazási biztosítás', category: 'Dokumentumok' }, + { name: 'Repülőjegyek', category: 'Dokumentumok' }, + { name: 'Bankkártya', category: 'Pénzügyek' }, + { name: 'Készpénz', category: 'Pénzügyek' }, + { name: 'Vízum', category: 'Dokumentumok' }, + { name: 'Pólók', category: 'Ruházat' }, + { name: 'Nadrágok', category: 'Ruházat' }, + { name: 'Fehérnemű', category: 'Ruházat' }, + { name: 'Zoknik', category: 'Ruházat' }, + { name: 'Kabát', category: 'Ruházat' }, + { name: 'Hálóruha', category: 'Ruházat' }, + { name: 'Fürdőruha', category: 'Ruházat' }, + { name: 'Esőkabát', category: 'Ruházat' }, + { name: 'Kényelmes cipő', category: 'Ruházat' }, + { name: 'Fogkefe', category: 'Tisztálkodás' }, + { name: 'Fogkrém', category: 'Tisztálkodás' }, + { name: 'Sampon', category: 'Tisztálkodás' }, + { name: 'Dezodor', category: 'Tisztálkodás' }, + { name: 'Naptej', category: 'Tisztálkodás' }, + { name: 'Borotva', category: 'Tisztálkodás' }, + { name: 'Töltő', category: 'Elektronika' }, + { name: 'Powerbank', category: 'Elektronika' }, + { name: 'Fejhallgató', category: 'Elektronika' }, + { name: 'Úti adapter', category: 'Elektronika' }, + { name: 'Fényképezőgép', category: 'Elektronika' }, + { name: 'Fájdalomcsillapító', category: 'Egészség' }, + { name: 'Ragtapasz', category: 'Egészség' }, + { name: 'Fertőtlenítőszer', category: 'Egészség' }, + ], + + // Tagok / Megosztás + 'members.shareTrip': 'Utazás megosztása', + 'members.inviteUser': 'Felhasználó meghívása', + 'members.selectUser': 'Felhasználó kiválasztása…', + 'members.invite': 'Meghívás', + 'members.allHaveAccess': 'Minden felhasználónak már van hozzáférése.', + 'members.access': 'Hozzáférés', + 'members.person': 'személy', + 'members.persons': 'személy', + 'members.you': 'te', + 'members.owner': 'Tulajdonos', + 'members.leaveTrip': 'Utazás elhagyása', + 'members.removeAccess': 'Hozzáférés eltávolítása', + 'members.confirmLeave': 'Elhagyod az utazást? Elveszíted a hozzáférést.', + 'members.confirmRemove': 'Eltávolítod a hozzáférést ettől a felhasználótól?', + 'members.loadError': 'Nem sikerült betölteni a tagokat', + 'members.added': 'hozzáadva', + 'members.addError': 'Nem sikerült hozzáadni', + 'members.removed': 'Tag eltávolítva', + 'members.removeError': 'Nem sikerült eltávolítani', + + // Kategóriák (Admin) + 'categories.title': 'Kategóriák', + 'categories.subtitle': 'Helyek kategóriáinak kezelése', + 'categories.new': 'Új kategória', + 'categories.empty': 'Még nincsenek kategóriák', + 'categories.namePlaceholder': 'Kategória neve', + 'categories.icon': 'Ikon', + 'categories.color': 'Szín', + 'categories.customColor': 'Egyéni szín kiválasztása', + 'categories.preview': 'Előnézet', + 'categories.defaultName': 'Kategória', + 'categories.update': 'Frissítés', + 'categories.create': 'Létrehozás', + 'categories.confirm.delete': 'Kategória törlése? Az ebben a kategóriában lévő helyek nem törlődnek.', + 'categories.toast.loadError': 'Nem sikerült betölteni a kategóriákat', + 'categories.toast.nameRequired': 'Kérjük, adj meg egy nevet', + 'categories.toast.updated': 'Kategória frissítve', + 'categories.toast.created': 'Kategória létrehozva', + 'categories.toast.saveError': 'Nem sikerült menteni', + 'categories.toast.deleted': 'Kategória törölve', + 'categories.toast.deleteError': 'Nem sikerült törölni', + + // Biztonsági mentés (Admin) + 'backup.title': 'Adatmentés', + 'backup.subtitle': 'Adatbázis és minden feltöltött fájl', + 'backup.refresh': 'Frissítés', + 'backup.upload': 'Mentés feltöltése', + 'backup.uploading': 'Feltöltés…', + 'backup.create': 'Mentés készítése', + 'backup.creating': 'Készítés…', + 'backup.empty': 'Még nincsenek mentések', + 'backup.createFirst': 'Első mentés készítése', + 'backup.download': 'Letöltés', + 'backup.restore': 'Visszaállítás', + 'backup.confirm.restore': '"{name}" mentés visszaállítása?\n\nMinden jelenlegi adat a mentéssel lesz helyettesítve.', + 'backup.confirm.uploadRestore': '"{name}" mentésfájl feltöltése és visszaállítása?\n\nMinden jelenlegi adat felülíródik.', + 'backup.confirm.delete': '"{name}" mentés törlése?', + 'backup.toast.loadError': 'Nem sikerült betölteni a mentéseket', + 'backup.toast.created': 'Mentés sikeresen létrehozva', + 'backup.toast.createError': 'Nem sikerült létrehozni a mentést', + 'backup.toast.restored': 'Mentés visszaállítva. Az oldal újratöltődik…', + 'backup.toast.restoreError': 'Nem sikerült visszaállítani', + 'backup.toast.uploadError': 'Nem sikerült feltölteni', + 'backup.toast.deleted': 'Mentés törölve', + 'backup.toast.deleteError': 'Nem sikerült törölni', + 'backup.toast.downloadError': 'Letöltés sikertelen', + 'backup.toast.settingsSaved': 'Automatikus mentés beállításai mentve', + 'backup.toast.settingsError': 'Nem sikerült menteni a beállításokat', + 'backup.auto.title': 'Automatikus mentés', + 'backup.auto.subtitle': 'Automatikus mentés ütemezés szerint', + 'backup.auto.enable': 'Automatikus mentés engedélyezése', + 'backup.auto.enableHint': 'A mentések automatikusan készülnek a választott ütemezés szerint', + 'backup.auto.interval': 'Időköz', + 'backup.auto.keepLabel': 'Régi mentések törlése ennyi idő után', + 'backup.interval.hourly': 'Óránként', + 'backup.interval.daily': 'Naponta', + 'backup.interval.weekly': 'Hetente', + 'backup.interval.monthly': 'Havonta', + 'backup.keep.1day': '1 nap', + 'backup.keep.3days': '3 nap', + 'backup.keep.7days': '7 nap', + 'backup.keep.14days': '14 nap', + 'backup.keep.30days': '30 nap', + 'backup.keep.forever': 'Örökre megőrzés', + + // Fotók + 'photos.allDays': 'Minden nap', + 'photos.noPhotos': 'Még nincsenek fotók', + 'photos.uploadHint': 'Töltsd fel az úti fotóidat', + 'photos.clickToSelect': 'vagy kattints a kiválasztáshoz', + 'photos.linkPlace': 'Hely társítása', + 'photos.noPlace': 'Nincs hely', + 'photos.uploadN': '{n} fotó feltöltése', + + // Mentés visszaállítása modal + 'backup.restoreConfirmTitle': 'Mentés visszaállítása?', + 'backup.restoreWarning': 'Minden jelenlegi adat (utazások, helyek, felhasználók, feltöltések) véglegesen lecserélődik a mentéssel. Ez a művelet nem vonható vissza.', + 'backup.restoreTip': 'Tipp: Készíts mentést a jelenlegi állapotról a visszaállítás előtt.', + 'backup.restoreConfirm': 'Igen, visszaállítás', + + // PDF + 'pdf.travelPlan': 'Utazási terv', + 'pdf.planned': 'Tervezett', + 'pdf.costLabel': 'Költség', + 'pdf.preview': 'PDF előnézet', + 'pdf.saveAsPdf': 'Mentés PDF-ként', + + // Tervező + 'planner.places': 'Helyek', + 'planner.bookings': 'Foglalások', + 'planner.packingList': 'Csomagolási lista', + 'planner.documents': 'Dokumentumok', + 'planner.dayPlan': 'Napi terv', + 'planner.reservations': 'Foglalások', + 'planner.minTwoPlaces': 'Legalább 2 koordinátákkal rendelkező hely szükséges', + 'planner.noGeoPlaces': 'Nincsenek koordinátákkal rendelkező helyek', + 'planner.routeCalculated': 'Útvonal kiszámítva', + 'planner.routeCalcFailed': 'Nem sikerült kiszámítani az útvonalat', + 'planner.routeError': 'Hiba az útvonalszámítás során', + 'planner.routeOptimized': 'Útvonal optimalizálva', + 'planner.reservationUpdated': 'Foglalás frissítve', + 'planner.reservationAdded': 'Foglalás hozzáadva', + 'planner.confirmDeleteReservation': 'Foglalás törlése?', + 'planner.reservationDeleted': 'Foglalás törölve', + 'planner.days': 'nap', + 'planner.allPlaces': 'Összes hely', + 'planner.totalPlaces': 'Összesen {n} hely', + 'planner.noDaysPlanned': 'Még nincsenek napok tervezve', + 'planner.editTrip': 'Utazás szerkesztése \u2192', + 'planner.placeOne': '1 hely', + 'planner.placeN': '{n} hely', + 'planner.addNote': 'Jegyzet hozzáadása', + 'planner.noEntries': 'Nincsenek bejegyzések erre a napra', + 'planner.addPlace': 'Hely/tevékenység hozzáadása', + 'planner.addPlaceShort': '+ Hely/tevékenység hozzáadása', + 'planner.resPending': 'Foglalás függőben · ', + 'planner.resConfirmed': 'Foglalás megerősítve · ', + 'planner.notePlaceholder': 'Jegyzet\u2026', + 'planner.noteTimePlaceholder': 'Időpont (opcionális)', + 'planner.noteExamplePlaceholder': 'pl. S3 14:30-kor a főpályaudvarról, komp a 7. mólóról, ebédszünet\u2026', + 'planner.totalCost': 'Összköltség', + 'planner.searchPlaces': 'Helyek keresése\u2026', + 'planner.allCategories': 'Összes kategória', + 'planner.noPlacesFound': 'Nem találhatók helyek', + 'planner.addFirstPlace': 'Első hely hozzáadása', + 'planner.noReservations': 'Nincsenek foglalások', + 'planner.addFirstReservation': 'Első foglalás hozzáadása', + 'planner.new': 'Új', + 'planner.addToDay': '+ Nap', + 'planner.calculating': 'Számítás\u2026', + 'planner.route': 'Útvonal', + 'planner.optimize': 'Optimalizálás', + 'planner.openGoogleMaps': 'Megnyitás a Google Térképben', + 'planner.selectDayHint': 'Válassz egy napot a bal oldali listából a napi terv megtekintéséhez', + 'planner.noPlacesForDay': 'Még nincsenek helyek erre a napra', + 'planner.addPlacesLink': 'Helyek hozzáadása \u2192', + 'planner.minTotal': 'perc összesen', + 'planner.noReservation': 'Nincs foglalás', + 'planner.removeFromDay': 'Eltávolítás a napról', + 'planner.addToThisDay': 'Hozzáadás a naphoz', + 'planner.overview': 'Áttekintés', + 'planner.noDays': 'Még nincsenek napok', + 'planner.editTripToAddDays': 'Szerkeszd az utazást napok hozzáadásához', + 'planner.dayCount': '{n} nap', + 'planner.clickToUnlock': 'Kattints a feloldáshoz', + 'planner.keepPosition': 'Pozíció megtartása útvonal-optimalizálás során', + 'planner.dayDetails': 'Nap részletei', + 'planner.dayN': '{n}. nap', + + // Irányítópult statisztikák + 'stats.countries': 'Országok', + 'stats.cities': 'Városok', + 'stats.trips': 'Utazások', + 'stats.places': 'Helyek', + 'stats.worldProgress': 'Világ felfedezése', + 'stats.visited': 'meglátogatott', + 'stats.remaining': 'hátralévő', + 'stats.visitedCountries': 'Meglátogatott országok', + + // Nap részletei panel + 'day.precipProb': 'Csapadékvalószínűség', + 'day.precipitation': 'Csapadék', + 'day.wind': 'Szél', + 'day.sunrise': 'Napkelte', + 'day.sunset': 'Napnyugta', + 'day.hourlyForecast': 'Óránkénti előrejelzés', + 'day.climateHint': 'Történelmi átlagok — valós előrejelzés a dátum előtti 16 napon belül érhető el.', + 'day.noWeather': 'Nem állnak rendelkezésre időjárási adatok. Adj hozzá egy helyet koordinátákkal.', + 'day.overview': 'Napi áttekintés', + 'day.accommodation': 'Szállás', + 'day.addAccommodation': 'Szállás hozzáadása', + 'day.hotelDayRange': 'Alkalmazás napokra', + 'day.noPlacesForHotel': 'Először adj hozzá helyeket az utazásodhoz', + 'day.allDays': 'Összes', + 'day.checkIn': 'Bejelentkezés', + 'day.checkOut': 'Kijelentkezés', + 'day.confirmation': 'Visszaigazolás', + 'day.editAccommodation': 'Szállás szerkesztése', + 'day.reservations': 'Foglalások', + + // Collab bővítmény + 'collab.tabs.chat': 'Csevegés', + 'collab.tabs.notes': 'Jegyzetek', + 'collab.tabs.polls': 'Szavazások', + 'collab.whatsNext.title': 'Mi következik', + 'collab.whatsNext.today': 'Ma', + 'collab.whatsNext.tomorrow': 'Holnap', + 'collab.whatsNext.empty': 'Nincsenek közelgő tevékenységek', + 'collab.whatsNext.until': '-ig', + 'collab.whatsNext.emptyHint': 'Az időponttal rendelkező tevékenységek itt jelennek meg', + 'collab.chat.send': 'Küldés', + 'collab.chat.placeholder': 'Üzenet írása...', + 'collab.chat.empty': 'Kezdd el a beszélgetést', + 'collab.chat.emptyHint': 'Az üzenetek az utazás minden tagjával meg vannak osztva', + 'collab.chat.emptyDesc': 'Oszd meg ötleteidet, terveidet és híreidet az utazócsoportoddal', + 'collab.chat.today': 'Ma', + 'collab.chat.yesterday': 'Tegnap', + 'collab.chat.deletedMessage': 'törölt egy üzenetet', + 'collab.chat.loadMore': 'Korábbi üzenetek betöltése', + 'collab.chat.justNow': 'éppen most', + 'collab.chat.minutesAgo': '{n} perce', + 'collab.chat.hoursAgo': '{n} órája', + 'collab.notes.title': 'Jegyzetek', + 'collab.notes.new': 'Új jegyzet', + 'collab.notes.empty': 'Még nincsenek jegyzetek', + 'collab.notes.emptyHint': 'Rögzítsd az ötleteidet és terveidet', + 'collab.notes.all': 'Összes', + 'collab.notes.titlePlaceholder': 'Jegyzet címe', + 'collab.notes.contentPlaceholder': 'Írj valamit...', + 'collab.notes.categoryPlaceholder': 'Kategória', + 'collab.notes.newCategory': 'Új kategória...', + 'collab.notes.category': 'Kategória', + 'collab.notes.noCategory': 'Nincs kategória', + 'collab.notes.color': 'Szín', + 'collab.notes.save': 'Mentés', + 'collab.notes.cancel': 'Mégse', + 'collab.notes.edit': 'Szerkesztés', + 'collab.notes.delete': 'Törlés', + 'collab.notes.pin': 'Kitűzés', + 'collab.notes.unpin': 'Kitűzés eltávolítása', + 'collab.notes.daysAgo': '{n} napja', + 'collab.notes.categorySettings': 'Kategóriák kezelése', + 'collab.notes.create': 'Létrehozás', + 'collab.notes.website': 'Weboldal', + 'collab.notes.websitePlaceholder': 'https://...', + 'collab.notes.attachFiles': 'Fájlok csatolása', + 'collab.notes.noCategoriesYet': 'Még nincsenek kategóriák', + 'collab.notes.emptyDesc': 'Hozz létre egy jegyzetet a kezdéshez', + 'collab.polls.title': 'Szavazások', + 'collab.polls.new': 'Új szavazás', + 'collab.polls.empty': 'Még nincsenek szavazások', + 'collab.polls.emptyHint': 'Kérdezd meg a csoportot és szavazzatok együtt', + 'collab.polls.question': 'Kérdés', + 'collab.polls.questionPlaceholder': 'Mit csináljunk?', + 'collab.polls.addOption': 'Opció hozzáadása', + 'collab.polls.optionPlaceholder': '{n}. opció', + 'collab.polls.create': 'Szavazás létrehozása', + 'collab.polls.close': 'Lezárás', + 'collab.polls.closed': 'Lezárva', + 'collab.polls.votes': '{n} szavazat', + 'collab.polls.vote': '{n} szavazat', + 'collab.polls.multipleChoice': 'Többszörös választás', + 'collab.polls.multiChoice': 'Többszörös választás', + 'collab.polls.deadline': 'Határidő', + 'collab.polls.option': 'Opció', + 'collab.polls.options': 'Opciók', + 'collab.polls.delete': 'Törlés', + 'collab.polls.closedSection': 'Lezárva', + + // Emlékek / Immich + 'memories.title': 'Fotók', + 'memories.notConnected': 'Immich nincs csatlakoztatva', + 'memories.notConnectedHint': 'Csatlakoztasd az Immich példányodat a Beállításokban, hogy itt lásd az utazási fotóidat.', + 'memories.noDates': 'Adj hozzá dátumokat az utazáshoz a fotók betöltéséhez.', + 'memories.noPhotos': 'Nem találhatók fotók', + 'memories.noPhotosHint': 'Nem találhatók fotók az Immichben erre az utazási időszakra.', + 'memories.photosFound': 'fotó', + 'memories.fromOthers': 'másoktól', + 'memories.sharePhotos': 'Fotók megosztása', + 'memories.sharing': 'Megosztás', + 'memories.reviewTitle': 'Nézd át a fotóidat', + 'memories.reviewHint': 'Kattints a fotókra a megosztásból való kizáráshoz.', + 'memories.shareCount': '{count} fotó megosztása', + 'memories.immichUrl': 'Immich szerver URL', + 'memories.immichApiKey': 'API kulcs', + 'memories.testConnection': 'Kapcsolat tesztelése', + 'memories.connected': 'Csatlakoztatva', + 'memories.disconnected': 'Nincs csatlakoztatva', + 'memories.connectionSuccess': 'Csatlakozva az Immichhez', + 'memories.connectionError': 'Nem sikerült csatlakozni az Immichhez', + 'memories.saved': 'Immich beállítások mentve', + 'memories.addPhotos': 'Fotók hozzáadása', + 'memories.selectPhotos': 'Fotók kiválasztása az Immichből', + 'memories.selectHint': 'Koppints a fotókra a kijelölésükhöz.', + 'memories.selected': 'kijelölve', + 'memories.addSelected': '{count} fotó hozzáadása', + 'memories.alreadyAdded': 'Hozzáadva', + 'memories.private': 'Privát', + 'memories.stopSharing': 'Megosztás leállítása', + 'memories.oldest': 'Legrégebbi elöl', + 'memories.newest': 'Legújabb elöl', + 'memories.allLocations': 'Összes helyszín', + 'memories.tripDates': 'Utazás dátumai', + 'memories.allPhotos': 'Összes fotó', + 'memories.confirmShareTitle': 'Megosztás az utazótársakkal?', + 'memories.confirmShareHint': '{count} fotó lesz látható az utazás összes tagja számára. Később egyenként is priváttá teheted őket.', + 'memories.confirmShareButton': 'Fotók megosztása', +} + +export default hu From 9a81baa809dc27bfe11f4afa39b4b56490cd8222 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rnyi=20M=C3=A1rk?= Date: Mon, 30 Mar 2026 00:44:28 +0200 Subject: [PATCH 04/63] feat: add leftWidth/rightWidth layout props to DayDetailPanel --- client/src/components/Planner/DayDetailPanel.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/client/src/components/Planner/DayDetailPanel.tsx b/client/src/components/Planner/DayDetailPanel.tsx index d36cba9..5449a57 100644 --- a/client/src/components/Planner/DayDetailPanel.tsx +++ b/client/src/components/Planner/DayDetailPanel.tsx @@ -50,9 +50,11 @@ interface DayDetailPanelProps { lng: number | null onClose: () => void onAccommodationChange: () => void + leftWidth?: number + rightWidth?: number } -export default function DayDetailPanel({ day, days, places, categories = [], tripId, assignments, reservations = [], lat, lng, onClose, onAccommodationChange }: DayDetailPanelProps) { +export default function DayDetailPanel({ day, days, places, categories = [], tripId, assignments, reservations = [], lat, lng, onClose, onAccommodationChange, leftWidth = 0, rightWidth = 0 }: DayDetailPanelProps) { const { t, language, locale } = useTranslation() const isFahrenheit = useSettingsStore(s => s.settings.temperature_unit) === 'fahrenheit' const is12h = useSettingsStore(s => s.settings.time_format) === '12h' From 1e20f024d5c8527b6261edca62b4649f68abc546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rnyi=20M=C3=A1rk?= Date: Mon, 30 Mar 2026 00:46:06 +0200 Subject: [PATCH 05/63] use leftWidth/rightWidth to center panel between sidebars --- client/src/components/Planner/DayDetailPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/components/Planner/DayDetailPanel.tsx b/client/src/components/Planner/DayDetailPanel.tsx index 5449a57..f78b27d 100644 --- a/client/src/components/Planner/DayDetailPanel.tsx +++ b/client/src/components/Planner/DayDetailPanel.tsx @@ -148,7 +148,7 @@ export default function DayDetailPanel({ day, days, places, categories = [], tri const font = { fontFamily: "-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif" } return ( -
+
Date: Mon, 30 Mar 2026 00:52:41 +0200 Subject: [PATCH 06/63] pass leftWidth/rightWidth from TripPlannerPage to DayDetailPanel --- client/src/pages/TripPlannerPage.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/client/src/pages/TripPlannerPage.tsx b/client/src/pages/TripPlannerPage.tsx index de659f8..6a9c4d7 100644 --- a/client/src/pages/TripPlannerPage.tsx +++ b/client/src/pages/TripPlannerPage.tsx @@ -542,6 +542,8 @@ export default function TripPlannerPage(): React.ReactElement | null { lng={geoPlace?.lng} onClose={() => setShowDayDetail(null)} onAccommodationChange={loadAccommodations} + leftWidth={leftCollapsed ? 0 : leftWidth} + rightWidth={rightCollapsed ? 0 : rightWidth} /> ) })()} From 377422a9d568d7d89a170df6fc2d0d0012384b70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rnyi=20M=C3=A1rk?= Date: Mon, 30 Mar 2026 00:59:02 +0200 Subject: [PATCH 07/63] add race condition detection for invite token usage --- server/src/routes/oidc.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/src/routes/oidc.ts b/server/src/routes/oidc.ts index 0118df9..99493a4 100644 --- a/server/src/routes/oidc.ts +++ b/server/src/routes/oidc.ts @@ -225,9 +225,12 @@ router.get('/callback', async (req: Request, res: Response) => { ).run(username, email, hash, role, sub, config.issuer); if (validInvite) { - db.prepare( + const updated = db.prepare( 'UPDATE invite_tokens SET used_count = used_count + 1 WHERE id = ? AND (max_uses = 0 OR used_count < max_uses)' ).run(validInvite.id); + if (updated.changes === 0) { + console.warn(`[OIDC] Invite token ${pending.inviteToken?.slice(0, 8)}... exceeded max_uses (race condition)`); + } } user = { id: Number(result.lastInsertRowid), username, email, role } as User; From 90301e62ce5bcfe82ae2c924771a7bfe3108b3f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rnyi=20M=C3=A1rk?= Date: Mon, 30 Mar 2026 01:07:11 +0200 Subject: [PATCH 08/63] fix type signature, sync keys with upstream, fix atlas.tripIn translation --- client/src/i18n/translations/hu.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/client/src/i18n/translations/hu.ts b/client/src/i18n/translations/hu.ts index 2b9f188..0931a49 100644 --- a/client/src/i18n/translations/hu.ts +++ b/client/src/i18n/translations/hu.ts @@ -1,4 +1,4 @@ -const hu: Record = { +const hu: Record = { // Általános 'common.save': 'Mentés', 'common.cancel': 'Mégse', @@ -90,9 +90,6 @@ const hu: Record = { 'dashboard.toast.archiveError': 'Nem sikerült archiválni', 'dashboard.toast.restored': 'Utazás visszaállítva', 'dashboard.toast.restoreError': 'Nem sikerült visszaállítani', - 'dashboard.toast.copied': 'Utazás másolva!', - 'dashboard.toast.copyError': 'Nem sikerült másolni az utazást', - 'dashboard.copyTrip': 'Másolás', 'dashboard.confirm.delete': '"{title}" utazás törlése? Minden hely és terv véglegesen törlődik.', 'dashboard.editTrip': 'Utazás szerkesztése', 'dashboard.createTrip': 'Új utazás létrehozása', @@ -391,6 +388,8 @@ const hu: Record = { 'admin.addons.catalog.atlas.description': 'Világtérkép meglátogatott országokkal és utazási statisztikákkal', 'admin.addons.catalog.collab.name': 'Együttműködés', 'admin.addons.catalog.collab.description': 'Valós idejű jegyzetek, szavazások és csevegés az utazás tervezéséhez', + 'admin.addons.catalog.memories.name': 'Fotók (Immich)', + 'admin.addons.catalog.memories.description': 'Utazási fotók megosztása az Immich példányon keresztül', 'admin.addons.subtitleBefore': 'Funkciók engedélyezése vagy letiltása a ', 'admin.addons.subtitleAfter': ' testreszabásához.', 'admin.addons.enabled': 'Engedélyezve', @@ -567,8 +566,8 @@ const hu: Record = { 'atlas.years': 'év', 'atlas.yearInRow': 'egymást követő év', 'atlas.yearsInRow': 'egymást követő év', - 'atlas.tripIn': 'utazás itt:', - 'atlas.tripsIn': 'utazás itt:', + 'atlas.tripIn': 'utazás', + 'atlas.tripsIn': 'utazás', 'atlas.since': 'óta', 'atlas.europe': 'Európa', 'atlas.asia': 'Ázsia', From 37873dd9384d5c30a5c87183c18e9f252ebb9bcb Mon Sep 17 00:00:00 2001 From: jubnl Date: Mon, 30 Mar 2026 03:53:45 +0200 Subject: [PATCH 09/63] feat: mcp server --- client/package-lock.json | 4 +- client/src/api/client.ts | 7 + client/src/components/Admin/AddonManager.tsx | 31 +- .../components/Admin/AdminMcpTokensPanel.tsx | 120 +++ client/src/components/Layout/Navbar.tsx | 22 +- client/src/i18n/translations/ar.ts | 43 + client/src/i18n/translations/de.ts | 45 + client/src/i18n/translations/en.ts | 43 + client/src/i18n/translations/es.ts | 45 + client/src/i18n/translations/fr.ts | 45 + client/src/i18n/translations/nl.ts | 45 + client/src/i18n/translations/ru.ts | 45 + client/src/i18n/translations/zh.ts | 45 + client/src/pages/AdminPage.tsx | 4 + client/src/pages/SettingsPage.tsx | 249 ++++- client/src/store/addonStore.ts | 35 + client/vite.config.js | 6 +- server/package-lock.json | 649 ++++++++++++- server/package.json | 6 +- server/src/db/migrations.ts | 29 + server/src/db/seeds.ts | 1 + server/src/index.ts | 5 + server/src/mcp/index.ts | 131 +++ server/src/mcp/resources.ts | 299 ++++++ server/src/mcp/tools.ts | 881 ++++++++++++++++++ server/src/routes/admin.ts | 17 + server/src/routes/auth.ts | 43 + server/tsconfig.json | 10 +- 28 files changed, 2860 insertions(+), 45 deletions(-) create mode 100644 client/src/components/Admin/AdminMcpTokensPanel.tsx create mode 100644 client/src/store/addonStore.ts create mode 100644 server/src/mcp/index.ts create mode 100644 server/src/mcp/resources.ts create mode 100644 server/src/mcp/tools.ts diff --git a/client/package-lock.json b/client/package-lock.json index 9a80671..5dc9bc0 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -1,12 +1,12 @@ { "name": "trek-client", - "version": "2.6.2", + "version": "2.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trek-client", - "version": "2.6.2", + "version": "2.7.0", "dependencies": { "@react-pdf/renderer": "^4.3.2", "axios": "^1.6.7", diff --git a/client/src/api/client.ts b/client/src/api/client.ts index 7e8f28b..be8db87 100644 --- a/client/src/api/client.ts +++ b/client/src/api/client.ts @@ -61,6 +61,11 @@ export const authApi = { changePassword: (data: { current_password: string; new_password: string }) => apiClient.put('/auth/me/password', data).then(r => r.data), deleteOwnAccount: () => apiClient.delete('/auth/me').then(r => r.data), demoLogin: () => apiClient.post('/auth/demo-login').then(r => r.data), + mcpTokens: { + list: () => apiClient.get('/auth/mcp-tokens').then(r => r.data), + create: (name: string) => apiClient.post('/auth/mcp-tokens', { name }).then(r => r.data), + delete: (id: number) => apiClient.delete(`/auth/mcp-tokens/${id}`).then(r => r.data), + }, } export const tripsApi = { @@ -163,6 +168,8 @@ export const adminApi = { listInvites: () => apiClient.get('/admin/invites').then(r => r.data), createInvite: (data: { max_uses: number; expires_in_days?: number }) => apiClient.post('/admin/invites', data).then(r => r.data), deleteInvite: (id: number) => apiClient.delete(`/admin/invites/${id}`).then(r => r.data), + mcpTokens: () => apiClient.get('/admin/mcp-tokens').then(r => r.data), + deleteMcpToken: (id: number) => apiClient.delete(`/admin/mcp-tokens/${id}`).then(r => r.data), } export const addonsApi = { diff --git a/client/src/components/Admin/AddonManager.tsx b/client/src/components/Admin/AddonManager.tsx index ad9e539..3050258 100644 --- a/client/src/components/Admin/AddonManager.tsx +++ b/client/src/components/Admin/AddonManager.tsx @@ -2,11 +2,12 @@ import { useEffect, useState } from 'react' import { adminApi } from '../../api/client' import { useTranslation } from '../../i18n' import { useSettingsStore } from '../../store/settingsStore' +import { useAddonStore } from '../../store/addonStore' import { useToast } from '../shared/Toast' -import { Puzzle, ListChecks, Wallet, FileText, CalendarDays, Globe, Briefcase, Image } from 'lucide-react' +import { Puzzle, ListChecks, Wallet, FileText, CalendarDays, Globe, Briefcase, Image, Terminal, Link2 } from 'lucide-react' const ICON_MAP = { - ListChecks, Wallet, FileText, CalendarDays, Puzzle, Globe, Briefcase, Image, + ListChecks, Wallet, FileText, CalendarDays, Puzzle, Globe, Briefcase, Image, Terminal, Link2, } interface Addon { @@ -32,6 +33,7 @@ export default function AddonManager({ bagTrackingEnabled, onToggleBagTracking } const dm = useSettingsStore(s => s.settings.dark_mode) const dark = dm === true || dm === 'dark' || (dm === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) const toast = useToast() + const refreshGlobalAddons = useAddonStore(s => s.loadAddons) const [addons, setAddons] = useState([]) const [loading, setLoading] = useState(true) @@ -57,7 +59,7 @@ export default function AddonManager({ bagTrackingEnabled, onToggleBagTracking } setAddons(prev => prev.map(a => a.id === addon.id ? { ...a, enabled: newEnabled } : a)) try { await adminApi.updateAddon(addon.id, { enabled: newEnabled }) - window.dispatchEvent(new Event('addons-changed')) + refreshGlobalAddons() toast.success(t('admin.addons.toast.updated')) } catch (err: unknown) { // Rollback @@ -68,6 +70,7 @@ export default function AddonManager({ bagTrackingEnabled, onToggleBagTracking } const tripAddons = addons.filter(a => a.type === 'trip') const globalAddons = addons.filter(a => a.type === 'global') + const integrationAddons = addons.filter(a => a.type === 'integration') if (loading) { return ( @@ -144,6 +147,21 @@ export default function AddonManager({ bagTrackingEnabled, onToggleBagTracking } ))}
)} + + {/* Integration Addons */} + {integrationAddons.length > 0 && ( +
+
+ + + {t('admin.addons.type.integration')} — {t('admin.addons.integrationHint')} + +
+ {integrationAddons.map(addon => ( + + ))} +
+ )}
)}
@@ -188,11 +206,8 @@ function AddonRow({ addon, onToggle, t }: AddonRowProps) { Coming Soon )} - - {addon.type === 'global' ? t('admin.addons.type.global') : t('admin.addons.type.trip')} + + {addon.type === 'global' ? t('admin.addons.type.global') : addon.type === 'integration' ? t('admin.addons.type.integration') : t('admin.addons.type.trip')}

{label.description}

diff --git a/client/src/components/Admin/AdminMcpTokensPanel.tsx b/client/src/components/Admin/AdminMcpTokensPanel.tsx new file mode 100644 index 0000000..8a89f92 --- /dev/null +++ b/client/src/components/Admin/AdminMcpTokensPanel.tsx @@ -0,0 +1,120 @@ +import { useState, useEffect } from 'react' +import { adminApi } from '../../api/client' +import { useToast } from '../shared/Toast' +import { Key, Trash2, User, Loader2 } from 'lucide-react' +import { useTranslation } from '../../i18n' + +interface AdminMcpToken { + id: number + name: string + token_prefix: string + created_at: string + last_used_at: string | null + user_id: number + username: string +} + +export default function AdminMcpTokensPanel() { + const [tokens, setTokens] = useState([]) + const [isLoading, setIsLoading] = useState(true) + const [deleteConfirmId, setDeleteConfirmId] = useState(null) + const toast = useToast() + const { t, locale } = useTranslation() + + useEffect(() => { + setIsLoading(true) + adminApi.mcpTokens() + .then(d => setTokens(d.tokens || [])) + .catch(() => toast.error(t('admin.mcpTokens.loadError'))) + .finally(() => setIsLoading(false)) + }, []) + + const handleDelete = async (id: number) => { + try { + await adminApi.deleteMcpToken(id) + setTokens(prev => prev.filter(tk => tk.id !== id)) + setDeleteConfirmId(null) + toast.success(t('admin.mcpTokens.deleteSuccess')) + } catch { + toast.error(t('admin.mcpTokens.deleteError')) + } + } + + return ( +
+
+

{t('admin.mcpTokens.title')}

+

{t('admin.mcpTokens.subtitle')}

+
+ +
+ {isLoading ? ( +
+ +
+ ) : tokens.length === 0 ? ( +
+ +

{t('admin.mcpTokens.empty')}

+
+ ) : ( + <> +
+ {t('admin.mcpTokens.tokenName')} + {t('admin.mcpTokens.owner')} + {t('admin.mcpTokens.created')} + {t('admin.mcpTokens.lastUsed')} + +
+ {tokens.map((token, i) => ( +
+
+

{token.name}

+

{token.token_prefix}...

+
+
+ + {token.username} +
+ + {new Date(token.created_at).toLocaleDateString(locale)} + + + {token.last_used_at ? new Date(token.last_used_at).toLocaleDateString(locale) : t('admin.mcpTokens.never')} + + +
+ ))} + + )} +
+ + {deleteConfirmId !== null && ( +
{ if (e.target === e.currentTarget) setDeleteConfirmId(null) }}> +
+

{t('admin.mcpTokens.deleteTitle')}

+

{t('admin.mcpTokens.deleteMessage')}

+
+ + +
+
+
+ )} +
+ ) +} diff --git a/client/src/components/Layout/Navbar.tsx b/client/src/components/Layout/Navbar.tsx index 0e85d14..ea19596 100644 --- a/client/src/components/Layout/Navbar.tsx +++ b/client/src/components/Layout/Navbar.tsx @@ -3,8 +3,8 @@ import ReactDOM from 'react-dom' import { Link, useNavigate, useLocation } from 'react-router-dom' import { useAuthStore } from '../../store/authStore' import { useSettingsStore } from '../../store/settingsStore' +import { useAddonStore } from '../../store/addonStore' import { useTranslation } from '../../i18n' -import { addonsApi } from '../../api/client' import { Plane, LogOut, Settings, ChevronDown, Shield, ArrowLeft, Users, Moon, Sun, Monitor, CalendarDays, Briefcase, Globe } from 'lucide-react' import type { LucideIcon } from 'lucide-react' @@ -28,29 +28,21 @@ interface Addon { export default function Navbar({ tripTitle, tripId, onBack, showBack, onShare }: NavbarProps): React.ReactElement { const { user, logout } = useAuthStore() const { settings, updateSetting } = useSettingsStore() + const { addons: allAddons, loadAddons } = useAddonStore() const { t, locale } = useTranslation() const navigate = useNavigate() const location = useLocation() const [userMenuOpen, setUserMenuOpen] = useState(false) const [appVersion, setAppVersion] = useState(null) - const [globalAddons, setGlobalAddons] = useState([]) const darkMode = settings.dark_mode const dark = darkMode === true || darkMode === 'dark' || (darkMode === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) - const loadAddons = () => { - if (user) { - addonsApi.enabled().then(data => { - setGlobalAddons(data.addons.filter(a => a.type === 'global')) - }).catch(() => {}) - } - } - useEffect(loadAddons, [user, location.pathname]) - // Listen for addon changes from AddonManager + // Only show 'global' type addons in the navbar — 'integration' addons have no dedicated page + const globalAddons = allAddons.filter((a: Addon) => a.type === 'global' && a.enabled) + useEffect(() => { - const handler = () => loadAddons() - window.addEventListener('addons-changed', handler) - return () => window.removeEventListener('addons-changed', handler) - }, [user]) + if (user) loadAddons() + }, [user, location.pathname]) useEffect(() => { import('../../api/client').then(({ authApi }) => { diff --git a/client/src/i18n/translations/ar.ts b/client/src/i18n/translations/ar.ts index c216f35..4f1193c 100644 --- a/client/src/i18n/translations/ar.ts +++ b/client/src/i18n/translations/ar.ts @@ -146,6 +146,31 @@ const ar: Record = { 'settings.routeCalculation': 'حساب المسار', 'settings.on': 'تشغيل', 'settings.off': 'إيقاف', + 'settings.mcp.title': 'إعداد MCP', + 'settings.mcp.endpoint': 'نقطة نهاية MCP', + 'settings.mcp.clientConfig': 'إعداد العميل', + 'settings.mcp.clientConfigHint': 'استبدل برمز API من القائمة أدناه.', + 'settings.mcp.copy': 'نسخ', + 'settings.mcp.copied': 'تم النسخ!', + 'settings.mcp.apiTokens': 'رموز API', + 'settings.mcp.createToken': 'إنشاء رمز جديد', + 'settings.mcp.noTokens': 'لا توجد رموز بعد. أنشئ رمزاً للاتصال بعملاء MCP.', + 'settings.mcp.tokenCreatedAt': 'أُنشئ', + 'settings.mcp.tokenUsedAt': 'استُخدم', + 'settings.mcp.deleteTokenTitle': 'حذف الرمز', + 'settings.mcp.deleteTokenMessage': 'سيتوقف هذا الرمز عن العمل فوراً. أي عميل MCP يستخدمه سيفقد الوصول.', + 'settings.mcp.modal.createTitle': 'إنشاء رمز API', + 'settings.mcp.modal.tokenName': 'اسم الرمز', + 'settings.mcp.modal.tokenNamePlaceholder': 'مثال: Claude Desktop، حاسوب العمل', + 'settings.mcp.modal.creating': 'جارٍ الإنشاء…', + 'settings.mcp.modal.create': 'إنشاء الرمز', + 'settings.mcp.modal.createdTitle': 'تم إنشاء الرمز', + 'settings.mcp.modal.createdWarning': 'سيُعرض هذا الرمز مرة واحدة فقط. انسخه واحفظه الآن — لا يمكن استرداده.', + 'settings.mcp.modal.done': 'تم', + 'settings.mcp.toast.created': 'تم إنشاء الرمز', + 'settings.mcp.toast.createError': 'فشل إنشاء الرمز', + 'settings.mcp.toast.deleted': 'تم حذف الرمز', + 'settings.mcp.toast.deleteError': 'فشل حذف الرمز', 'settings.account': 'الحساب', 'settings.username': 'اسم المستخدم', 'settings.email': 'البريد الإلكتروني', @@ -280,6 +305,20 @@ const ar: Record = { 'admin.tabs.config': 'الإعدادات', 'admin.tabs.templates': 'قوالب التعبئة', 'admin.tabs.addons': 'الإضافات', + 'admin.tabs.mcpTokens': 'رموز MCP', + 'admin.mcpTokens.title': 'رموز MCP', + 'admin.mcpTokens.subtitle': 'إدارة رموز API لجميع المستخدمين', + 'admin.mcpTokens.owner': 'المالك', + 'admin.mcpTokens.tokenName': 'اسم الرمز', + 'admin.mcpTokens.created': 'تاريخ الإنشاء', + 'admin.mcpTokens.lastUsed': 'آخر استخدام', + 'admin.mcpTokens.never': 'أبداً', + 'admin.mcpTokens.empty': 'لم يتم إنشاء أي رموز MCP بعد', + 'admin.mcpTokens.deleteTitle': 'حذف الرمز', + 'admin.mcpTokens.deleteMessage': 'سيتم إلغاء هذا الرمز فوراً. سيفقد المستخدم وصوله إلى MCP عبر هذا الرمز.', + 'admin.mcpTokens.deleteSuccess': 'تم حذف الرمز', + 'admin.mcpTokens.deleteError': 'فشل حذف الرمز', + 'admin.mcpTokens.loadError': 'فشل تحميل الرموز', 'admin.tabs.github': 'GitHub', 'admin.stats.users': 'المستخدمون', 'admin.stats.trips': 'الرحلات', @@ -382,6 +421,8 @@ const ar: Record = { 'admin.addons.subtitle': 'فعّل أو عطّل الميزات لتخصيص تجربة TREK.', 'admin.addons.catalog.memories.name': 'صور (Immich)', 'admin.addons.catalog.memories.description': 'شارك صور رحلتك عبر Immich', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'بروتوكول سياق النموذج لتكامل مساعد الذكاء الاصطناعي', 'admin.addons.catalog.packing.name': 'التعبئة', 'admin.addons.catalog.packing.description': 'قوائم تحقق لإعداد أمتعتك لكل رحلة', 'admin.addons.catalog.budget.name': 'الميزانية', @@ -400,8 +441,10 @@ const ar: Record = { 'admin.addons.disabled': 'معطّل', 'admin.addons.type.trip': 'رحلة', 'admin.addons.type.global': 'عام', + 'admin.addons.type.integration': 'تكامل', 'admin.addons.tripHint': 'متاح كعلامة تبويب داخل كل رحلة', 'admin.addons.globalHint': 'متاح كقسم مستقل في التنقل الرئيسي', + 'admin.addons.integrationHint': 'خدمات الواجهة الخلفية وتكاملات API بدون صفحة مخصصة', 'admin.addons.toast.updated': 'تم تحديث الإضافة', 'admin.addons.toast.error': 'فشل تحديث الإضافة', 'admin.addons.noAddons': 'لا توجد إضافات متاحة', diff --git a/client/src/i18n/translations/de.ts b/client/src/i18n/translations/de.ts index fdc437d..393d856 100644 --- a/client/src/i18n/translations/de.ts +++ b/client/src/i18n/translations/de.ts @@ -141,6 +141,31 @@ const de: Record = { 'settings.routeCalculation': 'Routenberechnung', 'settings.on': 'An', 'settings.off': 'Aus', + 'settings.mcp.title': 'MCP-Konfiguration', + 'settings.mcp.endpoint': 'MCP-Endpunkt', + 'settings.mcp.clientConfig': 'Client-Konfiguration', + 'settings.mcp.clientConfigHint': 'Ersetze durch ein API-Token aus der Liste unten.', + 'settings.mcp.copy': 'Kopieren', + 'settings.mcp.copied': 'Kopiert!', + 'settings.mcp.apiTokens': 'API-Tokens', + 'settings.mcp.createToken': 'Neuen Token erstellen', + 'settings.mcp.noTokens': 'Noch keine Tokens. Erstelle einen, um MCP-Clients zu verbinden.', + 'settings.mcp.tokenCreatedAt': 'Erstellt', + 'settings.mcp.tokenUsedAt': 'Verwendet', + 'settings.mcp.deleteTokenTitle': 'Token löschen', + 'settings.mcp.deleteTokenMessage': 'Dieser Token wird sofort ungültig. Jeder MCP-Client, der ihn verwendet, verliert den Zugang.', + 'settings.mcp.modal.createTitle': 'API-Token erstellen', + 'settings.mcp.modal.tokenName': 'Token-Name', + 'settings.mcp.modal.tokenNamePlaceholder': 'z. B. Claude Desktop, Arbeits-Laptop', + 'settings.mcp.modal.creating': 'Wird erstellt…', + 'settings.mcp.modal.create': 'Token erstellen', + 'settings.mcp.modal.createdTitle': 'Token erstellt', + 'settings.mcp.modal.createdWarning': 'Dieser Token wird nur einmal angezeigt. Kopiere und speichere ihn jetzt — er kann nicht wiederhergestellt werden.', + 'settings.mcp.modal.done': 'Fertig', + 'settings.mcp.toast.created': 'Token erstellt', + 'settings.mcp.toast.createError': 'Token konnte nicht erstellt werden', + 'settings.mcp.toast.deleted': 'Token gelöscht', + 'settings.mcp.toast.deleteError': 'Token konnte nicht gelöscht werden', 'settings.account': 'Konto', 'settings.username': 'Benutzername', 'settings.email': 'E-Mail', @@ -390,14 +415,18 @@ const de: Record = { 'admin.addons.catalog.collab.description': 'Echtzeit-Notizen, Umfragen und Chat für die Reiseplanung', 'admin.addons.catalog.memories.name': 'Fotos (Immich)', 'admin.addons.catalog.memories.description': 'Reisefotos über deine Immich-Instanz teilen', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'Model Context Protocol für die KI-Assistenten-Integration', 'admin.addons.subtitleBefore': 'Aktiviere oder deaktiviere Funktionen, um ', 'admin.addons.subtitleAfter': ' nach deinen Wünschen anzupassen.', 'admin.addons.enabled': 'Aktiviert', 'admin.addons.disabled': 'Deaktiviert', 'admin.addons.type.trip': 'Trip', 'admin.addons.type.global': 'Global', + 'admin.addons.type.integration': 'Integration', 'admin.addons.tripHint': 'Verfügbar als Tab innerhalb jedes Trips', 'admin.addons.globalHint': 'Verfügbar als eigenständiger Bereich in der Navigation', + 'admin.addons.integrationHint': 'Backend-Dienste und API-Integrationen ohne eigene Seite', 'admin.addons.toast.updated': 'Addon aktualisiert', 'admin.addons.toast.error': 'Addon konnte nicht aktualisiert werden', 'admin.addons.noAddons': 'Keine Addons verfügbar', @@ -413,6 +442,22 @@ const de: Record = { 'admin.weather.requestsDesc': 'Kostenlos, kein API-Schlüssel erforderlich', 'admin.weather.locationHint': 'Das Wetter wird anhand des ersten Ortes mit Koordinaten im jeweiligen Tag berechnet. Ist kein Ort am Tag eingeplant, wird ein beliebiger Ort aus der Ortsliste als Referenz verwendet.', + // MCP Tokens + 'admin.tabs.mcpTokens': 'MCP-Tokens', + 'admin.mcpTokens.title': 'MCP-Tokens', + 'admin.mcpTokens.subtitle': 'API-Tokens aller Benutzer verwalten', + 'admin.mcpTokens.owner': 'Besitzer', + 'admin.mcpTokens.tokenName': 'Token-Name', + 'admin.mcpTokens.created': 'Erstellt', + 'admin.mcpTokens.lastUsed': 'Zuletzt verwendet', + 'admin.mcpTokens.never': 'Nie', + 'admin.mcpTokens.empty': 'Es wurden noch keine MCP-Tokens erstellt', + 'admin.mcpTokens.deleteTitle': 'Token löschen', + 'admin.mcpTokens.deleteMessage': 'Dieser Token wird sofort widerrufen. Der Benutzer verliert den MCP-Zugang über diesen Token.', + 'admin.mcpTokens.deleteSuccess': 'Token gelöscht', + 'admin.mcpTokens.deleteError': 'Token konnte nicht gelöscht werden', + 'admin.mcpTokens.loadError': 'Tokens konnten nicht geladen werden', + // GitHub 'admin.tabs.github': 'GitHub', 'admin.github.title': 'Update-Verlauf', diff --git a/client/src/i18n/translations/en.ts b/client/src/i18n/translations/en.ts index 4a89978..9acbb08 100644 --- a/client/src/i18n/translations/en.ts +++ b/client/src/i18n/translations/en.ts @@ -141,6 +141,31 @@ const en: Record = { 'settings.routeCalculation': 'Route Calculation', 'settings.on': 'On', 'settings.off': 'Off', + 'settings.mcp.title': 'MCP Configuration', + 'settings.mcp.endpoint': 'MCP Endpoint', + 'settings.mcp.clientConfig': 'Client Configuration', + 'settings.mcp.clientConfigHint': 'Replace with an API token from the list below.', + 'settings.mcp.copy': 'Copy', + 'settings.mcp.copied': 'Copied!', + 'settings.mcp.apiTokens': 'API Tokens', + 'settings.mcp.createToken': 'Create New Token', + 'settings.mcp.noTokens': 'No tokens yet. Create one to connect MCP clients.', + 'settings.mcp.tokenCreatedAt': 'Created', + 'settings.mcp.tokenUsedAt': 'Used', + 'settings.mcp.deleteTokenTitle': 'Delete Token', + 'settings.mcp.deleteTokenMessage': 'This token will stop working immediately. Any MCP client using it will lose access.', + 'settings.mcp.modal.createTitle': 'Create API Token', + 'settings.mcp.modal.tokenName': 'Token Name', + 'settings.mcp.modal.tokenNamePlaceholder': 'e.g. Claude Desktop, Work laptop', + 'settings.mcp.modal.creating': 'Creating…', + 'settings.mcp.modal.create': 'Create Token', + 'settings.mcp.modal.createdTitle': 'Token Created', + 'settings.mcp.modal.createdWarning': 'This token will only be shown once. Copy and store it now — it cannot be recovered.', + 'settings.mcp.modal.done': 'Done', + 'settings.mcp.toast.created': 'Token created', + 'settings.mcp.toast.createError': 'Failed to create token', + 'settings.mcp.toast.deleted': 'Token deleted', + 'settings.mcp.toast.deleteError': 'Failed to delete token', 'settings.account': 'Account', 'settings.username': 'Username', 'settings.email': 'Email', @@ -390,14 +415,18 @@ const en: Record = { 'admin.addons.catalog.collab.description': 'Real-time notes, polls, and chat for trip planning', 'admin.addons.catalog.memories.name': 'Photos (Immich)', 'admin.addons.catalog.memories.description': 'Share trip photos via your Immich instance', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'Model Context Protocol for AI assistant integration', 'admin.addons.subtitleBefore': 'Enable or disable features to customize your ', 'admin.addons.subtitleAfter': ' experience.', 'admin.addons.enabled': 'Enabled', 'admin.addons.disabled': 'Disabled', 'admin.addons.type.trip': 'Trip', 'admin.addons.type.global': 'Global', + 'admin.addons.type.integration': 'Integration', 'admin.addons.tripHint': 'Available as a tab within each trip', 'admin.addons.globalHint': 'Available as a standalone section in the main navigation', + 'admin.addons.integrationHint': 'Backend services and API integrations with no dedicated page', 'admin.addons.toast.updated': 'Addon updated', 'admin.addons.toast.error': 'Failed to update addon', 'admin.addons.noAddons': 'No addons available', @@ -414,6 +443,20 @@ const en: Record = { 'admin.weather.locationHint': 'Weather is based on the first place with coordinates in each day. If no place is assigned to a day, any place from the place list is used as a reference.', // GitHub + 'admin.tabs.mcpTokens': 'MCP Tokens', + 'admin.mcpTokens.title': 'MCP Tokens', + 'admin.mcpTokens.subtitle': 'Manage API tokens across all users', + 'admin.mcpTokens.owner': 'Owner', + 'admin.mcpTokens.tokenName': 'Token Name', + 'admin.mcpTokens.created': 'Created', + 'admin.mcpTokens.lastUsed': 'Last Used', + 'admin.mcpTokens.never': 'Never', + 'admin.mcpTokens.empty': 'No MCP tokens have been created yet', + 'admin.mcpTokens.deleteTitle': 'Delete Token', + 'admin.mcpTokens.deleteMessage': 'This will revoke the token immediately. The user will lose MCP access through this token.', + 'admin.mcpTokens.deleteSuccess': 'Token deleted', + 'admin.mcpTokens.deleteError': 'Failed to delete token', + 'admin.mcpTokens.loadError': 'Failed to load tokens', 'admin.tabs.github': 'GitHub', 'admin.github.title': 'Release History', 'admin.github.subtitle': 'Latest updates from {repo}', diff --git a/client/src/i18n/translations/es.ts b/client/src/i18n/translations/es.ts index e8448fc..938c5a0 100644 --- a/client/src/i18n/translations/es.ts +++ b/client/src/i18n/translations/es.ts @@ -142,6 +142,31 @@ const es: Record = { 'settings.routeCalculation': 'Cálculo de ruta', 'settings.on': 'Activado', 'settings.off': 'Desactivado', + 'settings.mcp.title': 'Configuración MCP', + 'settings.mcp.endpoint': 'Endpoint MCP', + 'settings.mcp.clientConfig': 'Configuración del cliente', + 'settings.mcp.clientConfigHint': 'Reemplaza con un token de la lista de abajo.', + 'settings.mcp.copy': 'Copiar', + 'settings.mcp.copied': '¡Copiado!', + 'settings.mcp.apiTokens': 'Tokens de API', + 'settings.mcp.createToken': 'Crear nuevo token', + 'settings.mcp.noTokens': 'Sin tokens aún. Crea uno para conectar clientes MCP.', + 'settings.mcp.tokenCreatedAt': 'Creado', + 'settings.mcp.tokenUsedAt': 'Usado', + 'settings.mcp.deleteTokenTitle': 'Eliminar token', + 'settings.mcp.deleteTokenMessage': 'Este token dejará de funcionar de inmediato. Cualquier cliente MCP que lo use perderá el acceso.', + 'settings.mcp.modal.createTitle': 'Crear token de API', + 'settings.mcp.modal.tokenName': 'Nombre del token', + 'settings.mcp.modal.tokenNamePlaceholder': 'p. ej. Claude Desktop, Portátil de trabajo', + 'settings.mcp.modal.creating': 'Creando…', + 'settings.mcp.modal.create': 'Crear token', + 'settings.mcp.modal.createdTitle': 'Token creado', + 'settings.mcp.modal.createdWarning': 'Este token solo se mostrará una vez. Cópialo y guárdalo ahora — no se podrá recuperar.', + 'settings.mcp.modal.done': 'Listo', + 'settings.mcp.toast.created': 'Token creado', + 'settings.mcp.toast.createError': 'Error al crear el token', + 'settings.mcp.toast.deleted': 'Token eliminado', + 'settings.mcp.toast.deleteError': 'Error al eliminar el token', 'settings.account': 'Cuenta', 'settings.username': 'Usuario', 'settings.email': 'Correo', @@ -375,8 +400,10 @@ const es: Record = { 'admin.addons.disabled': 'Desactivado', 'admin.addons.type.trip': 'Viaje', 'admin.addons.type.global': 'Global', + 'admin.addons.type.integration': 'Integración', 'admin.addons.tripHint': 'Disponible como pestaña dentro de cada viaje', 'admin.addons.globalHint': 'Disponible como sección independiente en la navegación principal', + 'admin.addons.integrationHint': 'Servicios backend e integraciones de API sin página dedicada', 'admin.addons.toast.updated': 'Complemento actualizado', 'admin.addons.toast.error': 'No se pudo actualizar el complemento', 'admin.addons.noAddons': 'No hay complementos disponibles', @@ -391,6 +418,22 @@ const es: Record = { 'admin.weather.requestsDesc': 'Gratis, sin necesidad de clave API', 'admin.weather.locationHint': 'El tiempo se basa en el primer lugar con coordenadas de cada día. Si no hay ningún lugar asignado a un día, se usa como referencia cualquier lugar de la lista.', + // MCP Tokens + 'admin.tabs.mcpTokens': 'Tokens MCP', + 'admin.mcpTokens.title': 'Tokens MCP', + 'admin.mcpTokens.subtitle': 'Gestionar tokens de API de todos los usuarios', + 'admin.mcpTokens.owner': 'Propietario', + 'admin.mcpTokens.tokenName': 'Nombre del token', + 'admin.mcpTokens.created': 'Creado', + 'admin.mcpTokens.lastUsed': 'Último uso', + 'admin.mcpTokens.never': 'Nunca', + 'admin.mcpTokens.empty': 'Aún no se han creado tokens MCP', + 'admin.mcpTokens.deleteTitle': 'Eliminar token', + 'admin.mcpTokens.deleteMessage': 'Este token se revocará inmediatamente. El usuario perderá el acceso MCP a través de este token.', + 'admin.mcpTokens.deleteSuccess': 'Token eliminado', + 'admin.mcpTokens.deleteError': 'No se pudo eliminar el token', + 'admin.mcpTokens.loadError': 'No se pudieron cargar los tokens', + // GitHub 'admin.tabs.github': 'GitHub', 'admin.github.title': 'Historial de versiones', @@ -947,6 +990,8 @@ const es: Record = { 'photos.uploadN': 'Subida de {n} foto(s)', 'admin.addons.catalog.memories.name': 'Fotos (Immich)', 'admin.addons.catalog.memories.description': 'Comparte fotos de viaje a través de tu instancia de Immich', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'Protocolo de contexto de modelo para integración con asistentes de IA', 'admin.addons.catalog.packing.name': 'Equipaje', 'admin.addons.catalog.packing.description': 'Prepara tu equipaje con listas de comprobación para cada viaje', 'admin.addons.catalog.budget.name': 'Presupuesto', diff --git a/client/src/i18n/translations/fr.ts b/client/src/i18n/translations/fr.ts index 51e95cd..158a1d3 100644 --- a/client/src/i18n/translations/fr.ts +++ b/client/src/i18n/translations/fr.ts @@ -141,6 +141,31 @@ const fr: Record = { 'settings.routeCalculation': 'Calcul d\'itinéraire', 'settings.on': 'Activé', 'settings.off': 'Désactivé', + 'settings.mcp.title': 'Configuration MCP', + 'settings.mcp.endpoint': 'Point de terminaison MCP', + 'settings.mcp.clientConfig': 'Configuration du client', + 'settings.mcp.clientConfigHint': 'Remplacez par un token API de la liste ci-dessous.', + 'settings.mcp.copy': 'Copier', + 'settings.mcp.copied': 'Copié !', + 'settings.mcp.apiTokens': 'Tokens API', + 'settings.mcp.createToken': 'Créer un token', + 'settings.mcp.noTokens': 'Aucun token pour l\'instant. Créez-en un pour connecter des clients MCP.', + 'settings.mcp.tokenCreatedAt': 'Créé', + 'settings.mcp.tokenUsedAt': 'Utilisé', + 'settings.mcp.deleteTokenTitle': 'Supprimer le token', + 'settings.mcp.deleteTokenMessage': 'Ce token cessera de fonctionner immédiatement. Tout client MCP l\'utilisant perdra l\'accès.', + 'settings.mcp.modal.createTitle': 'Créer un token API', + 'settings.mcp.modal.tokenName': 'Nom du token', + 'settings.mcp.modal.tokenNamePlaceholder': 'ex. Claude Desktop, Ordinateur pro', + 'settings.mcp.modal.creating': 'Création…', + 'settings.mcp.modal.create': 'Créer le token', + 'settings.mcp.modal.createdTitle': 'Token créé', + 'settings.mcp.modal.createdWarning': 'Ce token ne sera affiché qu\'une seule fois. Copiez-le et conservez-le maintenant — il ne pourra pas être récupéré.', + 'settings.mcp.modal.done': 'Terminé', + 'settings.mcp.toast.created': 'Token créé', + 'settings.mcp.toast.createError': 'Impossible de créer le token', + 'settings.mcp.toast.deleted': 'Token supprimé', + 'settings.mcp.toast.deleteError': 'Impossible de supprimer le token', 'settings.account': 'Compte', 'settings.username': 'Nom d\'utilisateur', 'settings.email': 'E-mail', @@ -375,6 +400,8 @@ const fr: Record = { 'admin.addons.subtitle': 'Activez ou désactivez des fonctionnalités pour personnaliser votre expérience TREK.', 'admin.addons.catalog.memories.name': 'Photos (Immich)', 'admin.addons.catalog.memories.description': 'Partagez vos photos de voyage via votre instance Immich', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'Protocole de contexte de modèle pour l\'intégration d\'assistants IA', 'admin.addons.catalog.packing.name': 'Bagages', 'admin.addons.catalog.packing.description': 'Listes de contrôle pour préparer vos bagages pour chaque voyage', 'admin.addons.catalog.budget.name': 'Budget', @@ -393,8 +420,10 @@ const fr: Record = { 'admin.addons.disabled': 'Désactivé', 'admin.addons.type.trip': 'Voyage', 'admin.addons.type.global': 'Global', + 'admin.addons.type.integration': 'Intégration', 'admin.addons.tripHint': 'Disponible comme onglet dans chaque voyage', 'admin.addons.globalHint': 'Disponible comme section autonome dans la navigation principale', + 'admin.addons.integrationHint': 'Services backend et intégrations API sans page dédiée', 'admin.addons.toast.updated': 'Extension mise à jour', 'admin.addons.toast.error': 'Échec de la mise à jour de l\'extension', 'admin.addons.noAddons': 'Aucune extension disponible', @@ -410,6 +439,22 @@ const fr: Record = { 'admin.weather.requestsDesc': 'Gratuit, aucune clé API requise', 'admin.weather.locationHint': 'La météo est basée sur le premier lieu avec des coordonnées de chaque jour. Si aucun lieu n\'est assigné à un jour, un lieu de la liste est utilisé comme référence.', + // MCP Tokens + 'admin.tabs.mcpTokens': 'Tokens MCP', + 'admin.mcpTokens.title': 'Tokens MCP', + 'admin.mcpTokens.subtitle': 'Gérer les tokens API de tous les utilisateurs', + 'admin.mcpTokens.owner': 'Propriétaire', + 'admin.mcpTokens.tokenName': 'Nom du token', + 'admin.mcpTokens.created': 'Créé', + 'admin.mcpTokens.lastUsed': 'Dernière utilisation', + 'admin.mcpTokens.never': 'Jamais', + 'admin.mcpTokens.empty': 'Aucun token MCP n\'a encore été créé', + 'admin.mcpTokens.deleteTitle': 'Supprimer le token', + 'admin.mcpTokens.deleteMessage': 'Ce token sera révoqué immédiatement. L\'utilisateur perdra l\'accès MCP via ce token.', + 'admin.mcpTokens.deleteSuccess': 'Token supprimé', + 'admin.mcpTokens.deleteError': 'Impossible de supprimer le token', + 'admin.mcpTokens.loadError': 'Impossible de charger les tokens', + // GitHub 'admin.tabs.github': 'GitHub', 'admin.github.title': 'Historique des versions', diff --git a/client/src/i18n/translations/nl.ts b/client/src/i18n/translations/nl.ts index 89407f7..8d24061 100644 --- a/client/src/i18n/translations/nl.ts +++ b/client/src/i18n/translations/nl.ts @@ -141,6 +141,31 @@ const nl: Record = { 'settings.routeCalculation': 'Routeberekening', 'settings.on': 'Aan', 'settings.off': 'Uit', + 'settings.mcp.title': 'MCP-configuratie', + 'settings.mcp.endpoint': 'MCP-eindpunt', + 'settings.mcp.clientConfig': 'Clientconfiguratie', + 'settings.mcp.clientConfigHint': 'Vervang door een API-token uit de onderstaande lijst.', + 'settings.mcp.copy': 'Kopiëren', + 'settings.mcp.copied': 'Gekopieerd!', + 'settings.mcp.apiTokens': 'API-tokens', + 'settings.mcp.createToken': 'Nieuw token aanmaken', + 'settings.mcp.noTokens': 'Nog geen tokens. Maak er een aan om MCP-clients te verbinden.', + 'settings.mcp.tokenCreatedAt': 'Aangemaakt', + 'settings.mcp.tokenUsedAt': 'Gebruikt', + 'settings.mcp.deleteTokenTitle': 'Token verwijderen', + 'settings.mcp.deleteTokenMessage': 'Dit token werkt onmiddellijk niet meer. Elke MCP-client die het gebruikt verliest de toegang.', + 'settings.mcp.modal.createTitle': 'API-token aanmaken', + 'settings.mcp.modal.tokenName': 'Tokennaam', + 'settings.mcp.modal.tokenNamePlaceholder': 'bijv. Claude Desktop, Werklaptop', + 'settings.mcp.modal.creating': 'Aanmaken…', + 'settings.mcp.modal.create': 'Token aanmaken', + 'settings.mcp.modal.createdTitle': 'Token aangemaakt', + 'settings.mcp.modal.createdWarning': 'Dit token wordt slechts één keer getoond. Kopieer en bewaar het nu — het kan niet worden hersteld.', + 'settings.mcp.modal.done': 'Klaar', + 'settings.mcp.toast.created': 'Token aangemaakt', + 'settings.mcp.toast.createError': 'Token aanmaken mislukt', + 'settings.mcp.toast.deleted': 'Token verwijderd', + 'settings.mcp.toast.deleteError': 'Token verwijderen mislukt', 'settings.account': 'Account', 'settings.username': 'Gebruikersnaam', 'settings.email': 'E-mail', @@ -375,6 +400,8 @@ const nl: Record = { 'admin.addons.subtitle': 'Schakel functies in of uit om je TREK-ervaring aan te passen.', 'admin.addons.catalog.memories.name': 'Foto\'s (Immich)', 'admin.addons.catalog.memories.description': 'Deel reisfoto\'s via je Immich-instantie', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'Model Context Protocol voor AI-assistent integratie', 'admin.addons.catalog.packing.name': 'Inpakken', 'admin.addons.catalog.packing.description': 'Checklists om je bagage voor elke reis voor te bereiden', 'admin.addons.catalog.budget.name': 'Budget', @@ -393,8 +420,10 @@ const nl: Record = { 'admin.addons.disabled': 'Uitgeschakeld', 'admin.addons.type.trip': 'Reis', 'admin.addons.type.global': 'Globaal', + 'admin.addons.type.integration': 'Integratie', 'admin.addons.tripHint': 'Beschikbaar als tabblad binnen elke reis', 'admin.addons.globalHint': 'Beschikbaar als zelfstandig onderdeel in de hoofdnavigatie', + 'admin.addons.integrationHint': 'Backenddiensten en API-integraties zonder eigen pagina', 'admin.addons.toast.updated': 'Add-on bijgewerkt', 'admin.addons.toast.error': 'Add-on bijwerken mislukt', 'admin.addons.noAddons': 'Geen add-ons beschikbaar', @@ -410,6 +439,22 @@ const nl: Record = { 'admin.weather.requestsDesc': 'Gratis, geen API-sleutel vereist', 'admin.weather.locationHint': 'Het weer is gebaseerd op de eerste plaats met coördinaten op elke dag. Als er geen plaats aan een dag is toegewezen, wordt een plaats uit de lijst als referentie gebruikt.', + // MCP Tokens + 'admin.tabs.mcpTokens': 'MCP-tokens', + 'admin.mcpTokens.title': 'MCP-tokens', + 'admin.mcpTokens.subtitle': 'API-tokens van alle gebruikers beheren', + 'admin.mcpTokens.owner': 'Eigenaar', + 'admin.mcpTokens.tokenName': 'Tokennaam', + 'admin.mcpTokens.created': 'Aangemaakt', + 'admin.mcpTokens.lastUsed': 'Laatst gebruikt', + 'admin.mcpTokens.never': 'Nooit', + 'admin.mcpTokens.empty': 'Er zijn nog geen MCP-tokens aangemaakt', + 'admin.mcpTokens.deleteTitle': 'Token verwijderen', + 'admin.mcpTokens.deleteMessage': 'Dit token wordt onmiddellijk ingetrokken. De gebruiker verliest MCP-toegang via dit token.', + 'admin.mcpTokens.deleteSuccess': 'Token verwijderd', + 'admin.mcpTokens.deleteError': 'Token kon niet worden verwijderd', + 'admin.mcpTokens.loadError': 'Tokens konden niet worden geladen', + // GitHub 'admin.tabs.github': 'GitHub', 'admin.github.title': 'Release-geschiedenis', diff --git a/client/src/i18n/translations/ru.ts b/client/src/i18n/translations/ru.ts index 75d29ba..d6cdb82 100644 --- a/client/src/i18n/translations/ru.ts +++ b/client/src/i18n/translations/ru.ts @@ -141,6 +141,31 @@ const ru: Record = { 'settings.routeCalculation': 'Расчёт маршрута', 'settings.on': 'Вкл.', 'settings.off': 'Выкл.', + 'settings.mcp.title': 'Настройка MCP', + 'settings.mcp.endpoint': 'MCP-эндпоинт', + 'settings.mcp.clientConfig': 'Конфигурация клиента', + 'settings.mcp.clientConfigHint': 'Замените на API-токен из списка ниже.', + 'settings.mcp.copy': 'Копировать', + 'settings.mcp.copied': 'Скопировано!', + 'settings.mcp.apiTokens': 'API-токены', + 'settings.mcp.createToken': 'Создать токен', + 'settings.mcp.noTokens': 'Токенов пока нет. Создайте один для подключения MCP-клиентов.', + 'settings.mcp.tokenCreatedAt': 'Создан', + 'settings.mcp.tokenUsedAt': 'Использован', + 'settings.mcp.deleteTokenTitle': 'Удалить токен', + 'settings.mcp.deleteTokenMessage': 'Этот токен перестанет работать немедленно. Любой MCP-клиент, использующий его, потеряет доступ.', + 'settings.mcp.modal.createTitle': 'Создать API-токен', + 'settings.mcp.modal.tokenName': 'Название токена', + 'settings.mcp.modal.tokenNamePlaceholder': 'напр. Claude Desktop, Рабочий ноутбук', + 'settings.mcp.modal.creating': 'Создание…', + 'settings.mcp.modal.create': 'Создать токен', + 'settings.mcp.modal.createdTitle': 'Токен создан', + 'settings.mcp.modal.createdWarning': 'Этот токен будет показан только один раз. Скопируйте и сохраните его сейчас — восстановить его будет невозможно.', + 'settings.mcp.modal.done': 'Готово', + 'settings.mcp.toast.created': 'Токен создан', + 'settings.mcp.toast.createError': 'Не удалось создать токен', + 'settings.mcp.toast.deleted': 'Токен удалён', + 'settings.mcp.toast.deleteError': 'Не удалось удалить токен', 'settings.account': 'Аккаунт', 'settings.username': 'Имя пользователя', 'settings.email': 'Эл. почта', @@ -375,6 +400,8 @@ const ru: Record = { 'admin.addons.subtitle': 'Включайте или отключайте функции для настройки TREK под себя.', 'admin.addons.catalog.memories.name': 'Фото (Immich)', 'admin.addons.catalog.memories.description': 'Делитесь фотографиями из поездок через Immich', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'Протокол контекста модели для интеграции с ИИ-ассистентами', 'admin.addons.catalog.packing.name': 'Сборы', 'admin.addons.catalog.packing.description': 'Чек-листы для подготовки багажа к каждой поездке', 'admin.addons.catalog.budget.name': 'Бюджет', @@ -393,8 +420,10 @@ const ru: Record = { 'admin.addons.disabled': 'Отключено', 'admin.addons.type.trip': 'Поездка', 'admin.addons.type.global': 'Глобально', + 'admin.addons.type.integration': 'Интеграция', 'admin.addons.tripHint': 'Доступно как вкладка внутри каждой поездки', 'admin.addons.globalHint': 'Доступно как отдельный раздел в основной навигации', + 'admin.addons.integrationHint': 'Фоновые сервисы и API-интеграции без отдельной страницы', 'admin.addons.toast.updated': 'Дополнение обновлено', 'admin.addons.toast.error': 'Не удалось обновить дополнение', 'admin.addons.noAddons': 'Нет доступных дополнений', @@ -410,6 +439,22 @@ const ru: Record = { 'admin.weather.requestsDesc': 'Бесплатно, API-ключ не требуется', 'admin.weather.locationHint': 'Погода основана на первом месте с координатами в каждом дне. Если ни одно место не назначено на день, в качестве ориентира используется любое место из списка.', + // MCP Tokens + 'admin.tabs.mcpTokens': 'MCP-токены', + 'admin.mcpTokens.title': 'MCP-токены', + 'admin.mcpTokens.subtitle': 'Управление API-токенами всех пользователей', + 'admin.mcpTokens.owner': 'Владелец', + 'admin.mcpTokens.tokenName': 'Название токена', + 'admin.mcpTokens.created': 'Создан', + 'admin.mcpTokens.lastUsed': 'Последнее использование', + 'admin.mcpTokens.never': 'Никогда', + 'admin.mcpTokens.empty': 'MCP-токены ещё не созданы', + 'admin.mcpTokens.deleteTitle': 'Удалить токен', + 'admin.mcpTokens.deleteMessage': 'Токен будет немедленно отозван. Пользователь потеряет доступ к MCP через этот токен.', + 'admin.mcpTokens.deleteSuccess': 'Токен удалён', + 'admin.mcpTokens.deleteError': 'Не удалось удалить токен', + 'admin.mcpTokens.loadError': 'Не удалось загрузить токены', + // GitHub 'admin.tabs.github': 'GitHub', 'admin.github.title': 'История релизов', diff --git a/client/src/i18n/translations/zh.ts b/client/src/i18n/translations/zh.ts index fbe1121..1069d46 100644 --- a/client/src/i18n/translations/zh.ts +++ b/client/src/i18n/translations/zh.ts @@ -141,6 +141,31 @@ const zh: Record = { 'settings.routeCalculation': '路线计算', 'settings.on': '开', 'settings.off': '关', + 'settings.mcp.title': 'MCP 配置', + 'settings.mcp.endpoint': 'MCP 端点', + 'settings.mcp.clientConfig': '客户端配置', + 'settings.mcp.clientConfigHint': '将 替换为下方列表中的 API 令牌。', + 'settings.mcp.copy': '复制', + 'settings.mcp.copied': '已复制!', + 'settings.mcp.apiTokens': 'API 令牌', + 'settings.mcp.createToken': '创建新令牌', + 'settings.mcp.noTokens': '暂无令牌,请创建一个以连接 MCP 客户端。', + 'settings.mcp.tokenCreatedAt': '创建于', + 'settings.mcp.tokenUsedAt': '使用于', + 'settings.mcp.deleteTokenTitle': '删除令牌', + 'settings.mcp.deleteTokenMessage': '此令牌将立即失效,使用它的所有 MCP 客户端将失去访问权限。', + 'settings.mcp.modal.createTitle': '创建 API 令牌', + 'settings.mcp.modal.tokenName': '令牌名称', + 'settings.mcp.modal.tokenNamePlaceholder': '例如:Claude Desktop、工作电脑', + 'settings.mcp.modal.creating': '创建中…', + 'settings.mcp.modal.create': '创建令牌', + 'settings.mcp.modal.createdTitle': '令牌已创建', + 'settings.mcp.modal.createdWarning': '此令牌只会显示一次,请立即复制并妥善保存——无法找回。', + 'settings.mcp.modal.done': '完成', + 'settings.mcp.toast.created': '令牌已创建', + 'settings.mcp.toast.createError': '创建令牌失败', + 'settings.mcp.toast.deleted': '令牌已删除', + 'settings.mcp.toast.deleteError': '删除令牌失败', 'settings.account': '账户', 'settings.username': '用户名', 'settings.email': '邮箱', @@ -375,6 +400,8 @@ const zh: Record = { 'admin.addons.subtitle': '启用或禁用功能以自定义你的 TREK 体验。', 'admin.addons.catalog.memories.name': '照片 (Immich)', 'admin.addons.catalog.memories.description': '通过 Immich 实例分享旅行照片', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': '用于 AI 助手集成的模型上下文协议', 'admin.addons.catalog.packing.name': '行李', 'admin.addons.catalog.packing.description': '每次旅行的行李准备清单', 'admin.addons.catalog.budget.name': '预算', @@ -393,8 +420,10 @@ const zh: Record = { 'admin.addons.disabled': '已禁用', 'admin.addons.type.trip': '旅行', 'admin.addons.type.global': '全局', + 'admin.addons.type.integration': '集成', 'admin.addons.tripHint': '在每次旅行中作为标签页显示', 'admin.addons.globalHint': '在主导航中作为独立板块显示', + 'admin.addons.integrationHint': '后端服务和 API 集成,无专属页面', 'admin.addons.toast.updated': '扩展已更新', 'admin.addons.toast.error': '更新扩展失败', 'admin.addons.noAddons': '暂无可用扩展', @@ -410,6 +439,22 @@ const zh: Record = { 'admin.weather.requestsDesc': '免费,无需 API 密钥', 'admin.weather.locationHint': '天气基于每天中第一个有坐标的地点。如果当天没有分配地点,则使用地点列表中的任意地点作为参考。', + // MCP Tokens + 'admin.tabs.mcpTokens': 'MCP 令牌', + 'admin.mcpTokens.title': 'MCP 令牌', + 'admin.mcpTokens.subtitle': '管理所有用户的 API 令牌', + 'admin.mcpTokens.owner': '所有者', + 'admin.mcpTokens.tokenName': '令牌名称', + 'admin.mcpTokens.created': '创建时间', + 'admin.mcpTokens.lastUsed': '最后使用', + 'admin.mcpTokens.never': '从未', + 'admin.mcpTokens.empty': '尚未创建任何 MCP 令牌', + 'admin.mcpTokens.deleteTitle': '删除令牌', + 'admin.mcpTokens.deleteMessage': '此令牌将立即被撤销。用户将失去通过此令牌的 MCP 访问权限。', + 'admin.mcpTokens.deleteSuccess': '令牌已删除', + 'admin.mcpTokens.deleteError': '删除令牌失败', + 'admin.mcpTokens.loadError': '加载令牌失败', + // GitHub 'admin.tabs.github': 'GitHub', 'admin.github.title': '版本历史', diff --git a/client/src/pages/AdminPage.tsx b/client/src/pages/AdminPage.tsx index b63306f..b307537 100644 --- a/client/src/pages/AdminPage.tsx +++ b/client/src/pages/AdminPage.tsx @@ -13,6 +13,7 @@ import BackupPanel from '../components/Admin/BackupPanel' import GitHubPanel from '../components/Admin/GitHubPanel' import AddonManager from '../components/Admin/AddonManager' import PackingTemplateManager from '../components/Admin/PackingTemplateManager' +import AdminMcpTokensPanel from '../components/Admin/AdminMcpTokensPanel' import { Users, Map, Briefcase, Shield, Trash2, Edit2, Camera, FileText, Eye, EyeOff, Save, CheckCircle, XCircle, Loader2, UserPlus, ArrowUpCircle, ExternalLink, Download, AlertTriangle, RefreshCw, GitBranch, Sun, Link2, Copy, Plus } from 'lucide-react' import CustomSelect from '../components/shared/CustomSelect' @@ -61,6 +62,7 @@ export default function AdminPage(): React.ReactElement { { id: 'addons', label: t('admin.tabs.addons') }, { id: 'settings', label: t('admin.tabs.settings') }, { id: 'backup', label: t('admin.tabs.backup') }, + { id: 'mcp-tokens', label: t('admin.tabs.mcpTokens') }, { id: 'github', label: t('admin.tabs.github') }, ] @@ -923,6 +925,8 @@ export default function AdminPage(): React.ReactElement { {activeTab === 'backup' && } + {activeTab === 'mcp-tokens' && } + {activeTab === 'github' && } diff --git a/client/src/pages/SettingsPage.tsx b/client/src/pages/SettingsPage.tsx index 7846f5e..b9ccf13 100644 --- a/client/src/pages/SettingsPage.tsx +++ b/client/src/pages/SettingsPage.tsx @@ -6,9 +6,10 @@ import { SUPPORTED_LANGUAGES, useTranslation } from '../i18n' import Navbar from '../components/Layout/Navbar' import CustomSelect from '../components/shared/CustomSelect' import { useToast } from '../components/shared/Toast' -import { Save, Map, Palette, User, Moon, Sun, Monitor, Shield, Camera, Trash2, Lock, KeyRound } from 'lucide-react' +import { Save, Map, Palette, User, Moon, Sun, Monitor, Shield, Camera, Trash2, Lock, KeyRound, Terminal, Copy, Plus, Check } from 'lucide-react' import { authApi, adminApi } from '../api/client' import apiClient from '../api/client' +import { useAddonStore } from '../store/addonStore' import type { LucideIcon } from 'lucide-react' import type { UserWithOidc } from '../types' import { getApiErrorMessage } from '../types' @@ -18,6 +19,14 @@ interface MapPreset { url: string } +interface McpToken { + id: number + name: string + token_prefix: string + created_at: string + last_used_at: string | null +} + const MAP_PRESETS: MapPreset[] = [ { name: 'OpenStreetMap', url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' }, { name: 'OpenStreetMap DE', url: 'https://tile.openstreetmap.de/{z}/{x}/{y}.png' }, @@ -51,32 +60,34 @@ export default function SettingsPage(): React.ReactElement { const [showDeleteConfirm, setShowDeleteConfirm] = useState(false) const avatarInputRef = React.useRef(null) const { settings, updateSetting, updateSettings } = useSettingsStore() + const { isEnabled: addonEnabled, loadAddons } = useAddonStore() const { t, locale } = useTranslation() const toast = useToast() const navigate = useNavigate() const [saving, setSaving] = useState>({}) - // Immich - const [memoriesEnabled, setMemoriesEnabled] = useState(false) + // Addon gating (derived from store) + const memoriesEnabled = addonEnabled('memories') + const mcpEnabled = addonEnabled('mcp') const [immichUrl, setImmichUrl] = useState('') const [immichApiKey, setImmichApiKey] = useState('') const [immichConnected, setImmichConnected] = useState(false) const [immichTesting, setImmichTesting] = useState(false) useEffect(() => { - apiClient.get('/addons').then(r => { - const mem = r.data.addons?.find((a: any) => a.id === 'memories' && a.enabled) - setMemoriesEnabled(!!mem) - if (mem) { - apiClient.get('/integrations/immich/settings').then(r2 => { - setImmichUrl(r2.data.immich_url || '') - setImmichConnected(r2.data.connected) - }).catch(() => {}) - } - }).catch(() => {}) + loadAddons() }, []) + useEffect(() => { + if (memoriesEnabled) { + apiClient.get('/integrations/immich/settings').then(r2 => { + setImmichUrl(r2.data.immich_url || '') + setImmichConnected(r2.data.connected) + }).catch(() => {}) + } + }, [memoriesEnabled]) + const handleSaveImmich = async () => { setSaving(s => ({ ...s, immich: true })) try { @@ -110,6 +121,62 @@ export default function SettingsPage(): React.ReactElement { } } + // MCP tokens + const [mcpTokens, setMcpTokens] = useState([]) + const [mcpModalOpen, setMcpModalOpen] = useState(false) + const [mcpNewName, setMcpNewName] = useState('') + const [mcpCreatedToken, setMcpCreatedToken] = useState(null) + const [mcpCreating, setMcpCreating] = useState(false) + const [mcpDeleteId, setMcpDeleteId] = useState(null) + const [copiedKey, setCopiedKey] = useState(null) + + useEffect(() => { + authApi.mcpTokens.list().then(d => setMcpTokens(d.tokens || [])).catch(() => {}) + }, []) + + const handleCreateMcpToken = async () => { + if (!mcpNewName.trim()) return + setMcpCreating(true) + try { + const d = await authApi.mcpTokens.create(mcpNewName.trim()) + setMcpCreatedToken(d.token.raw_token) + setMcpNewName('') + setMcpTokens(prev => [{ id: d.token.id, name: d.token.name, token_prefix: d.token.token_prefix, created_at: d.token.created_at, last_used_at: null }, ...prev]) + } catch { + toast.error(t('settings.mcp.toast.createError')) + } finally { + setMcpCreating(false) + } + } + + const handleDeleteMcpToken = async (id: number) => { + try { + await authApi.mcpTokens.delete(id) + setMcpTokens(prev => prev.filter(tk => tk.id !== id)) + setMcpDeleteId(null) + toast.success(t('settings.mcp.toast.deleted')) + } catch { + toast.error(t('settings.mcp.toast.deleteError')) + } + } + + const handleCopy = (text: string, key: string) => { + navigator.clipboard.writeText(text).then(() => { + setCopiedKey(key) + setTimeout(() => setCopiedKey(null), 2000) + }) + } + + const mcpEndpoint = `${window.location.origin}/mcp` + const mcpJsonConfig = JSON.stringify({ + mcpServers: { + trek: { + url: mcpEndpoint, + headers: { Authorization: 'Bearer ' } + } + } + }, null, 2) + // Map settings const [mapTileUrl, setMapTileUrl] = useState(settings.map_tile_url || '') const [defaultLat, setDefaultLat] = useState(settings.default_lat || 48.8566) @@ -480,6 +547,162 @@ export default function SettingsPage(): React.ReactElement { )} + {/* MCP Configuration — only when MCP addon is enabled */} + {mcpEnabled &&
+ {/* Endpoint URL */} +
+ +
+ + {mcpEndpoint} + + +
+
+ + {/* JSON config box */} +
+
+ + +
+
+                {mcpJsonConfig}
+              
+

{t('settings.mcp.clientConfigHint')}

+
+ + {/* Token list */} +
+
+ + +
+ + {mcpTokens.length === 0 ? ( +

+ {t('settings.mcp.noTokens')} +

+ ) : ( +
+ {mcpTokens.map((token, i) => ( +
+
+

{token.name}

+

+ {token.token_prefix}... + {t('settings.mcp.tokenCreatedAt')} {new Date(token.created_at).toLocaleDateString(locale)} + {token.last_used_at && ( + · {t('settings.mcp.tokenUsedAt')} {new Date(token.last_used_at).toLocaleDateString(locale)} + )} +

+
+ +
+ ))} +
+ )} +
+
} + + {/* Create MCP Token modal */} + {mcpModalOpen && ( +
{ if (e.target === e.currentTarget && !mcpCreatedToken) { setMcpModalOpen(false) } }}> +
+ {!mcpCreatedToken ? ( + <> +

{t('settings.mcp.modal.createTitle')}

+
+ + setMcpNewName(e.target.value)} + onKeyDown={e => e.key === 'Enter' && handleCreateMcpToken()} + placeholder={t('settings.mcp.modal.tokenNamePlaceholder')} + className="w-full px-3 py-2.5 border rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-indigo-300" + style={{ borderColor: 'var(--border-primary)', background: 'var(--bg-secondary)', color: 'var(--text-primary)' }} + autoFocus /> +
+
+ + +
+ + ) : ( + <> +

{t('settings.mcp.modal.createdTitle')}

+
+ +

{t('settings.mcp.modal.createdWarning')}

+
+
+
+                        {mcpCreatedToken}
+                      
+ +
+
+ +
+ + )} +
+
+ )} + + {/* Delete MCP Token confirm */} + {mcpDeleteId !== null && ( +
{ if (e.target === e.currentTarget) setMcpDeleteId(null) }}> +
+

{t('settings.mcp.deleteTokenTitle')}

+

{t('settings.mcp.deleteTokenMessage')}

+
+ + +
+
+
+ )} + {/* Account */}
diff --git a/client/src/store/addonStore.ts b/client/src/store/addonStore.ts new file mode 100644 index 0000000..d0fce97 --- /dev/null +++ b/client/src/store/addonStore.ts @@ -0,0 +1,35 @@ +import { create } from 'zustand' +import { addonsApi } from '../api/client' + +interface Addon { + id: string + name: string + type: string + icon: string + enabled: boolean +} + +interface AddonState { + addons: Addon[] + loaded: boolean + loadAddons: () => Promise + isEnabled: (id: string) => boolean +} + +export const useAddonStore = create((set, get) => ({ + addons: [], + loaded: false, + + loadAddons: async () => { + try { + const data = await addonsApi.enabled() + set({ addons: data.addons || [], loaded: true }) + } catch { + set({ loaded: true }) + } + }, + + isEnabled: (id: string) => { + return get().addons.some(a => a.id === id && a.enabled) + }, +})) diff --git a/client/vite.config.js b/client/vite.config.js index a2d3632..31edd4c 100644 --- a/client/vite.config.js +++ b/client/vite.config.js @@ -10,7 +10,7 @@ export default defineConfig({ workbox: { globPatterns: ['**/*.{js,css,html,svg,png,woff,woff2,ttf}'], navigateFallback: 'index.html', - navigateFallbackDenylist: [/^\/api/, /^\/uploads/], + navigateFallbackDenylist: [/^\/api/, /^\/uploads/, /^\/mcp/], runtimeCaching: [ { // Carto map tiles (default provider) @@ -100,6 +100,10 @@ export default defineConfig({ '/ws': { target: 'http://localhost:3001', ws: true, + }, + '/mcp': { + target: 'http://localhost:3001', + changeOrigin: true, } } } diff --git a/server/package-lock.json b/server/package-lock.json index dd28711..71235bf 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,13 +1,14 @@ { "name": "trek-server", - "version": "2.6.2", + "version": "2.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trek-server", - "version": "2.6.2", + "version": "2.7.0", "dependencies": { + "@modelcontextprotocol/sdk": "^1.28.0", "archiver": "^6.0.1", "bcryptjs": "^2.4.3", "better-sqlite3": "^12.8.0", @@ -25,7 +26,8 @@ "typescript": "^6.0.2", "unzipper": "^0.12.3", "uuid": "^9.0.0", - "ws": "^8.19.0" + "ws": "^8.19.0", + "zod": "^4.3.6" }, "devDependencies": { "@types/archiver": "^7.0.0", @@ -460,6 +462,358 @@ "node": ">=18" } }, + "node_modules/@hono/node-server": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.11.tgz", + "integrity": "sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==", + "license": "MIT", + "engines": { + "node": ">=18.14.1" + }, + "peerDependencies": { + "hono": "^4" + } + }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.28.0.tgz", + "integrity": "sha512-gmloF+i+flI8ouQK7MWW4mOwuMh4RePBuPFAEPC6+pdqyWOUMDOixb6qZ69owLJpz6XmyllCouc4t8YWO+E2Nw==", + "license": "MIT", + "dependencies": { + "@hono/node-server": "^1.19.9", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "hono": "^4.11.4", + "jose": "^6.1.3", + "json-schema-typed": "^8.0.2", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.25 || ^4.0", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@cfworker/json-schema": "^4.1.1", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "@cfworker/json-schema": { + "optional": true + }, + "zod": { + "optional": false + } + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/content-disposition": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/@otplib/core": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/@otplib/core/-/core-12.0.1.tgz", @@ -760,6 +1114,39 @@ "node": ">= 0.6" } }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1368,6 +1755,20 @@ "node": ">= 12.0.0" } }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1643,6 +2044,27 @@ "bare-events": "^2.7.0" } }, + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -1698,12 +2120,52 @@ "url": "https://opencollective.com/express" } }, + "node_modules/express-rate-limit": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.3.1.tgz", + "integrity": "sha512-D1dKN+cmyPWuvB+G2SREQDzPY1agpBIcTa9sJxOPMCNeH3gwzhqJRDWCXW3gg0y//+LQ/8j52JbMROWyrKdMdw==", + "license": "MIT", + "dependencies": { + "ip-address": "10.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -2006,6 +2468,15 @@ "node": ">=18.0.0" } }, + "node_modules/hono": { + "version": "4.12.9", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.9.tgz", + "integrity": "sha512-wy3T8Zm2bsEvxKZM5w21VdHDDcwVS1yUFFY6i8UobSsKfFceT7TOwhbhfKsDyx7tYQlmRM5FLpIuYvNFyjctiA==", + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, "node_modules/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", @@ -2088,6 +2559,15 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "license": "ISC" }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -2152,12 +2632,45 @@ "node": ">=0.12.0" } }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "license": "MIT" }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jose": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.2.tgz", + "integrity": "sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "license": "BSD-2-Clause" + }, "node_modules/jsonfile": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", @@ -2690,6 +3203,15 @@ "node": ">=8" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-to-regexp": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", @@ -2709,6 +3231,15 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/pngjs": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", @@ -2924,6 +3455,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -2939,6 +3479,55 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/router/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/router/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/router/node_modules/path-to-regexp": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.0.tgz", + "integrity": "sha512-PuseHIvAnz3bjrM2rGJtSgo1zjgxapTLZ7x2pjhzWwlp4SJQgK3f3iZIQwkpEnBaKz6seKBADpM4B4ySkuYypg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -3034,6 +3623,27 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "license": "ISC" }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", @@ -3514,6 +4124,21 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/which-module": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", @@ -3615,6 +4240,24 @@ "engines": { "node": ">= 12.0.0" } + }, + "node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", + "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.25.28 || ^4" + } } } } diff --git a/server/package.json b/server/package.json index 103b706..4846160 100644 --- a/server/package.json +++ b/server/package.json @@ -7,6 +7,7 @@ "dev": "tsx watch src/index.ts" }, "dependencies": { + "@modelcontextprotocol/sdk": "^1.28.0", "archiver": "^6.0.1", "bcryptjs": "^2.4.3", "better-sqlite3": "^12.8.0", @@ -17,14 +18,15 @@ "jsonwebtoken": "^9.0.2", "multer": "^2.1.1", "node-cron": "^4.2.1", + "node-fetch": "^2.7.0", "otplib": "^12.0.1", "qrcode": "^1.5.4", - "node-fetch": "^2.7.0", "tsx": "^4.21.0", "typescript": "^6.0.2", "unzipper": "^0.12.3", "uuid": "^9.0.0", - "ws": "^8.19.0" + "ws": "^8.19.0", + "zod": "^4.3.6" }, "devDependencies": { "@types/archiver": "^7.0.0", diff --git a/server/src/db/migrations.ts b/server/src/db/migrations.ts index 816288b..6d47880 100644 --- a/server/src/db/migrations.ts +++ b/server/src/db/migrations.ts @@ -307,6 +307,35 @@ function runMigrations(db: Database.Database): void { db.prepare("INSERT INTO addons (id, name, type, icon, enabled, sort_order) VALUES (?, ?, ?, ?, ?, ?)").run('memories', 'Photos', 'trip', 'Image', 0, 7); } catch {} }, + // Migration 44: MCP long-lived API tokens + () => db.exec(` + CREATE TABLE IF NOT EXISTS mcp_tokens ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, + name TEXT NOT NULL, + token_hash TEXT NOT NULL, + token_prefix TEXT NOT NULL, + created_at DATETIME DEFAULT CURRENT_TIMESTAMP, + last_used_at DATETIME + ) + `), + // Migration 45: MCP addon entry + () => { + try { + db.prepare("INSERT OR IGNORE INTO addons (id, name, description, type, icon, enabled, sort_order) VALUES (?, ?, ?, ?, ?, ?, ?)") + .run('mcp', 'MCP', 'Model Context Protocol for AI assistant integration', 'global', 'Terminal', 0, 12); + } catch {} + }, + // Migration 46: Index on mcp_tokens.token_hash for fast lookup + () => db.exec(` + CREATE INDEX IF NOT EXISTS idx_mcp_tokens_hash ON mcp_tokens(token_hash) + `), + // Migration 47: Change MCP addon type from 'global' to 'integration' + () => { + try { + db.prepare("UPDATE addons SET type = 'integration' WHERE id = 'mcp'").run(); + } catch {} + }, ]; if (currentVersion < migrations.length) { diff --git a/server/src/db/seeds.ts b/server/src/db/seeds.ts index e98b2f3..9c51ffc 100644 --- a/server/src/db/seeds.ts +++ b/server/src/db/seeds.ts @@ -33,6 +33,7 @@ function seedAddons(db: Database.Database): void { { id: 'documents', name: 'Documents', description: 'Store and manage travel documents', type: 'trip', icon: 'FileText', enabled: 1, sort_order: 2 }, { id: 'vacay', name: 'Vacay', description: 'Personal vacation day planner with calendar view', type: 'global', icon: 'CalendarDays', enabled: 1, sort_order: 10 }, { id: 'atlas', name: 'Atlas', description: 'World map of your visited countries with travel stats', type: 'global', icon: 'Globe', enabled: 1, sort_order: 11 }, + { id: 'mcp', name: 'MCP', description: 'Model Context Protocol for AI assistant integration', type: 'integration', icon: 'Terminal', enabled: 0, sort_order: 12 }, { id: 'collab', name: 'Collab', description: 'Notes, polls, and live chat for trip collaboration', type: 'trip', icon: 'Users', enabled: 1, sort_order: 6 }, ]; const insertAddon = db.prepare('INSERT OR IGNORE INTO addons (id, name, description, type, icon, enabled, sort_order) VALUES (?, ?, ?, ?, ?, ?, ?)'); diff --git a/server/src/index.ts b/server/src/index.ts index c53977f..9cb17b7 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -160,6 +160,10 @@ app.use('/api/weather', weatherRoutes); app.use('/api/settings', settingsRoutes); app.use('/api/backup', backupRoutes); +// MCP endpoint (Streamable HTTP transport, per-user auth) +import { mcpHandler, closeMcpSessions } from './mcp'; +app.all('/mcp', mcpHandler); + // Serve static files in production if (process.env.NODE_ENV === 'production') { const publicPath = path.join(__dirname, '../public'); @@ -196,6 +200,7 @@ const server = app.listen(PORT, () => { function shutdown(signal: string): void { console.log(`\n${signal} received — shutting down gracefully...`); scheduler.stop(); + closeMcpSessions(); server.close(() => { console.log('HTTP server closed'); const { closeDb } = require('./db/database'); diff --git a/server/src/mcp/index.ts b/server/src/mcp/index.ts new file mode 100644 index 0000000..dd21c81 --- /dev/null +++ b/server/src/mcp/index.ts @@ -0,0 +1,131 @@ +import { Request, Response } from 'express'; +import { randomUUID, createHash } from 'crypto'; +import jwt from 'jsonwebtoken'; +import { McpServer } from '@modelcontextprotocol/sdk/server/mcp'; +import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp'; +import { JWT_SECRET } from '../config'; +import { db } from '../db/database'; +import { User } from '../types'; +import { registerResources } from './resources'; +import { registerTools } from './tools'; + +interface McpSession { + transport: StreamableHTTPServerTransport; + userId: number; + lastActivity: number; +} + +const sessions = new Map(); + +const SESSION_TTL_MS = 60 * 60 * 1000; // 1 hour + +const sessionSweepInterval = setInterval(() => { + const cutoff = Date.now() - SESSION_TTL_MS; + for (const [sid, session] of sessions) { + if (session.lastActivity < cutoff) { + try { session.transport.close(); } catch { /* ignore */ } + sessions.delete(sid); + } + } +}, 10 * 60 * 1000); // sweep every 10 minutes + +// Prevent the interval from keeping the process alive if nothing else is running +sessionSweepInterval.unref(); + +function verifyToken(authHeader: string | undefined): User | null { + const token = authHeader && authHeader.split(' ')[1]; + if (!token) return null; + + // Long-lived MCP API token (trek_...) + if (token.startsWith('trek_')) { + const hash = createHash('sha256').update(token).digest('hex'); + const row = db.prepare(` + SELECT u.id, u.username, u.email, u.role + FROM mcp_tokens mt + JOIN users u ON mt.user_id = u.id + WHERE mt.token_hash = ? + `).get(hash) as User | undefined; + if (row) { + // Update last_used_at (fire-and-forget, non-blocking) + db.prepare('UPDATE mcp_tokens SET last_used_at = CURRENT_TIMESTAMP WHERE token_hash = ?').run(hash); + return row; + } + return null; + } + + // Short-lived JWT + try { + const decoded = jwt.verify(token, JWT_SECRET) as { id: number }; + const user = db.prepare( + 'SELECT id, username, email, role FROM users WHERE id = ?' + ).get(decoded.id) as User | undefined; + return user || null; + } catch { + return null; + } +} + +export async function mcpHandler(req: Request, res: Response): Promise { + const mcpAddon = db.prepare("SELECT enabled FROM addons WHERE id = 'mcp'").get() as { enabled: number } | undefined; + if (!mcpAddon || !mcpAddon.enabled) { + res.status(403).json({ error: 'MCP is not enabled' }); + return; + } + + const user = verifyToken(req.headers['authorization']); + if (!user) { + res.status(401).json({ error: 'Access token required' }); + return; + } + + const sessionId = req.headers['mcp-session-id'] as string | undefined; + + // Resume an existing session + if (sessionId) { + const session = sessions.get(sessionId); + if (!session) { + res.status(404).json({ error: 'Session not found' }); + return; + } + if (session.userId !== user.id) { + res.status(403).json({ error: 'Session belongs to a different user' }); + return; + } + session.lastActivity = Date.now(); + await session.transport.handleRequest(req, res, req.body); + return; + } + + // Only POST can initialize a new session + if (req.method !== 'POST') { + res.status(400).json({ error: 'Missing mcp-session-id header' }); + return; + } + + // Create a new per-user MCP server and session + const server = new McpServer({ name: 'trek', version: '1.0.0' }); + registerResources(server, user.id); + registerTools(server, user.id); + + const transport = new StreamableHTTPServerTransport({ + sessionIdGenerator: () => randomUUID(), + onsessioninitialized: (sid) => { + sessions.set(sid, { transport, userId: user.id, lastActivity: Date.now() }); + }, + onsessionclosed: (sid) => { + sessions.delete(sid); + }, + }); + + await server.connect(transport); + await transport.handleRequest(req, res, req.body); +} + +/** Close all active MCP sessions (call during graceful shutdown). */ +export function closeMcpSessions(): void { + clearInterval(sessionSweepInterval); + for (const [, session] of sessions) { + try { session.transport.close(); } catch { /* ignore */ } + } + sessions.clear(); +} diff --git a/server/src/mcp/resources.ts b/server/src/mcp/resources.ts new file mode 100644 index 0000000..74d8813 --- /dev/null +++ b/server/src/mcp/resources.ts @@ -0,0 +1,299 @@ +import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp'; +import { db, canAccessTrip } from '../db/database'; + +const TRIP_SELECT = ` + SELECT t.*, + (SELECT COUNT(*) FROM days d WHERE d.trip_id = t.id) as day_count, + (SELECT COUNT(*) FROM places p WHERE p.trip_id = t.id) as place_count, + CASE WHEN t.user_id = :userId THEN 1 ELSE 0 END as is_owner, + u.username as owner_username, + (SELECT COUNT(*) FROM trip_members tm WHERE tm.trip_id = t.id) as shared_count + FROM trips t + JOIN users u ON u.id = t.user_id +`; + +function accessDenied(uri: string) { + return { + contents: [{ + uri, + mimeType: 'application/json', + text: JSON.stringify({ error: 'Trip not found or access denied' }), + }], + }; +} + +function jsonContent(uri: string, data: unknown) { + return { + contents: [{ + uri, + mimeType: 'application/json', + text: JSON.stringify(data, null, 2), + }], + }; +} + +export function registerResources(server: McpServer, userId: number): void { + // List all accessible trips + server.registerResource( + 'trips', + 'trek://trips', + { description: 'All trips the user owns or is a member of' }, + async (uri) => { + const trips = db.prepare(` + ${TRIP_SELECT} + LEFT JOIN trip_members m ON m.trip_id = t.id AND m.user_id = :userId + WHERE (t.user_id = :userId OR m.user_id IS NOT NULL) AND t.is_archived = 0 + ORDER BY t.created_at DESC + `).all({ userId }); + return jsonContent(uri.href, trips); + } + ); + + // Single trip detail + server.registerResource( + 'trip', + new ResourceTemplate('trek://trips/{tripId}', { list: undefined }), + { description: 'A single trip with metadata and member count' }, + async (uri, { tripId }) => { + const id = Number(tripId); + if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const trip = db.prepare(` + ${TRIP_SELECT} + LEFT JOIN trip_members m ON m.trip_id = t.id AND m.user_id = :userId + WHERE t.id = :tripId AND (t.user_id = :userId OR m.user_id IS NOT NULL) + `).get({ userId, tripId: id }); + return jsonContent(uri.href, trip); + } + ); + + // Days with assigned places + server.registerResource( + 'trip-days', + new ResourceTemplate('trek://trips/{tripId}/days', { list: undefined }), + { description: 'Days of a trip with their assigned places' }, + async (uri, { tripId }) => { + const id = Number(tripId); + if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + + const days = db.prepare( + 'SELECT * FROM days WHERE trip_id = ? ORDER BY day_number ASC' + ).all(id) as { id: number; day_number: number; date: string | null; title: string | null; notes: string | null }[]; + + const dayIds = days.map(d => d.id); + const assignmentsByDay: Record = {}; + + if (dayIds.length > 0) { + const placeholders = dayIds.map(() => '?').join(','); + const assignments = db.prepare(` + SELECT da.id, da.day_id, da.order_index, da.notes as assignment_notes, + p.id as place_id, p.name, p.address, p.lat, p.lng, p.category_id, + COALESCE(da.assignment_time, p.place_time) as place_time, + c.name as category_name, c.color as category_color, c.icon as category_icon + FROM day_assignments da + JOIN places p ON da.place_id = p.id + LEFT JOIN categories c ON p.category_id = c.id + WHERE da.day_id IN (${placeholders}) + ORDER BY da.order_index ASC, da.created_at ASC + `).all(...dayIds) as (Record & { day_id: number })[]; + + for (const a of assignments) { + if (!assignmentsByDay[a.day_id]) assignmentsByDay[a.day_id] = []; + assignmentsByDay[a.day_id].push(a); + } + } + + const result = days.map(d => ({ ...d, assignments: assignmentsByDay[d.id] || [] })); + return jsonContent(uri.href, result); + } + ); + + // Places in a trip + server.registerResource( + 'trip-places', + new ResourceTemplate('trek://trips/{tripId}/places', { list: undefined }), + { description: 'All places/POIs saved in a trip' }, + async (uri, { tripId }) => { + const id = Number(tripId); + if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const places = db.prepare(` + SELECT p.*, c.name as category_name, c.color as category_color, c.icon as category_icon + FROM places p + LEFT JOIN categories c ON p.category_id = c.id + WHERE p.trip_id = ? + ORDER BY p.created_at DESC + `).all(id); + return jsonContent(uri.href, places); + } + ); + + // Budget items + server.registerResource( + 'trip-budget', + new ResourceTemplate('trek://trips/{tripId}/budget', { list: undefined }), + { description: 'Budget and expense items for a trip' }, + async (uri, { tripId }) => { + const id = Number(tripId); + if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const items = db.prepare( + 'SELECT * FROM budget_items WHERE trip_id = ? ORDER BY category ASC, created_at ASC' + ).all(id); + return jsonContent(uri.href, items); + } + ); + + // Packing checklist + server.registerResource( + 'trip-packing', + new ResourceTemplate('trek://trips/{tripId}/packing', { list: undefined }), + { description: 'Packing checklist for a trip' }, + async (uri, { tripId }) => { + const id = Number(tripId); + if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const items = db.prepare( + 'SELECT * FROM packing_items WHERE trip_id = ? ORDER BY sort_order ASC, created_at ASC' + ).all(id); + return jsonContent(uri.href, items); + } + ); + + // Reservations (flights, hotels, restaurants) + server.registerResource( + 'trip-reservations', + new ResourceTemplate('trek://trips/{tripId}/reservations', { list: undefined }), + { description: 'Reservations (flights, hotels, restaurants) for a trip' }, + async (uri, { tripId }) => { + const id = Number(tripId); + if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const reservations = db.prepare(` + SELECT r.*, d.day_number, p.name as place_name + FROM reservations r + LEFT JOIN days d ON r.day_id = d.id + LEFT JOIN places p ON r.place_id = p.id + WHERE r.trip_id = ? + ORDER BY r.reservation_time ASC, r.created_at ASC + `).all(id); + return jsonContent(uri.href, reservations); + } + ); + + // Day notes + server.registerResource( + 'day-notes', + new ResourceTemplate('trek://trips/{tripId}/days/{dayId}/notes', { list: undefined }), + { description: 'Notes for a specific day in a trip' }, + async (uri, { tripId, dayId }) => { + const tId = Number(tripId); + const dId = Number(dayId); + if (!canAccessTrip(tId, userId)) return accessDenied(uri.href); + const notes = db.prepare( + 'SELECT * FROM day_notes WHERE day_id = ? AND trip_id = ? ORDER BY sort_order ASC, created_at ASC' + ).all(dId, tId); + return jsonContent(uri.href, notes); + } + ); + + // Accommodations (hotels, rentals) per trip + server.registerResource( + 'trip-accommodations', + new ResourceTemplate('trek://trips/{tripId}/accommodations', { list: undefined }), + { description: 'Accommodations (hotels, rentals) for a trip with check-in/out details' }, + async (uri, { tripId }) => { + const id = Number(tripId); + if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const accommodations = db.prepare(` + SELECT da.*, p.name as place_name, p.address as place_address, p.lat, p.lng, + ds.day_number as start_day_number, de.day_number as end_day_number + FROM day_accommodations da + JOIN places p ON da.place_id = p.id + LEFT JOIN days ds ON da.start_day_id = ds.id + LEFT JOIN days de ON da.end_day_id = de.id + WHERE da.trip_id = ? + ORDER BY ds.day_number ASC + `).all(id); + return jsonContent(uri.href, accommodations); + } + ); + + // Trip members (owner + collaborators) + server.registerResource( + 'trip-members', + new ResourceTemplate('trek://trips/{tripId}/members', { list: undefined }), + { description: 'Owner and collaborators of a trip' }, + async (uri, { tripId }) => { + const id = Number(tripId); + if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const trip = db.prepare('SELECT user_id FROM trips WHERE id = ?').get(id) as { user_id: number } | undefined; + if (!trip) return accessDenied(uri.href); + const owner = db.prepare('SELECT id, username, avatar FROM users WHERE id = ?').get(trip.user_id) as Record | undefined; + const members = db.prepare(` + SELECT u.id, u.username, u.avatar, tm.added_at + FROM trip_members tm + JOIN users u ON tm.user_id = u.id + WHERE tm.trip_id = ? + ORDER BY tm.added_at ASC + `).all(id); + return jsonContent(uri.href, { + owner: owner ? { ...owner, role: 'owner' } : null, + members, + }); + } + ); + + // Collab notes for a trip + server.registerResource( + 'trip-collab-notes', + new ResourceTemplate('trek://trips/{tripId}/collab-notes', { list: undefined }), + { description: 'Shared collaborative notes for a trip' }, + async (uri, { tripId }) => { + const id = Number(tripId); + if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const notes = db.prepare(` + SELECT cn.*, u.username + FROM collab_notes cn + JOIN users u ON cn.user_id = u.id + WHERE cn.trip_id = ? + ORDER BY cn.pinned DESC, cn.updated_at DESC + `).all(id); + return jsonContent(uri.href, notes); + } + ); + + // All place categories (global, no trip filter) + server.registerResource( + 'categories', + 'trek://categories', + { description: 'All available place categories (id, name, color, icon) for use when creating places' }, + async (uri) => { + const categories = db.prepare( + 'SELECT id, name, color, icon FROM categories ORDER BY name ASC' + ).all(); + return jsonContent(uri.href, categories); + } + ); + + // User's bucket list + server.registerResource( + 'bucket-list', + 'trek://bucket-list', + { description: 'Your personal travel bucket list' }, + async (uri) => { + const items = db.prepare( + 'SELECT * FROM bucket_list WHERE user_id = ? ORDER BY created_at DESC' + ).all(userId); + return jsonContent(uri.href, items); + } + ); + + // User's visited countries + server.registerResource( + 'visited-countries', + 'trek://visited-countries', + { description: 'Countries you have marked as visited in Atlas' }, + async (uri) => { + const countries = db.prepare( + 'SELECT country_code, created_at FROM visited_countries WHERE user_id = ? ORDER BY created_at DESC' + ).all(userId); + return jsonContent(uri.href, countries); + } + ); +} diff --git a/server/src/mcp/tools.ts b/server/src/mcp/tools.ts new file mode 100644 index 0000000..d73701c --- /dev/null +++ b/server/src/mcp/tools.ts @@ -0,0 +1,881 @@ +import { McpServer } from '@modelcontextprotocol/sdk/server/mcp'; +import { z } from 'zod'; +import { db, canAccessTrip, isOwner } from '../db/database'; +import { broadcast } from '../websocket'; + +const MS_PER_DAY = 86400000; +const MAX_TRIP_DAYS = 90; + +function isDemoUser(userId: number): boolean { + if (process.env.DEMO_MODE !== 'true') return false; + const user = db.prepare('SELECT email FROM users WHERE id = ?').get(userId) as { email: string } | undefined; + return user?.email === 'demo@nomad.app'; +} + +function demoDenied() { + return { content: [{ type: 'text' as const, text: 'Write operations are disabled in demo mode.' }], isError: true }; +} + +function noAccess() { + return { content: [{ type: 'text' as const, text: 'Trip not found or access denied.' }], isError: true }; +} + +function ok(data: unknown) { + return { content: [{ type: 'text' as const, text: JSON.stringify(data, null, 2) }] }; +} + +/** Create days for a newly created trip (fresh insert, no existing days). */ +function createDaysForNewTrip(tripId: number | bigint, startDate: string | null, endDate: string | null): void { + const insert = db.prepare('INSERT INTO days (trip_id, day_number, date) VALUES (?, ?, ?)'); + if (startDate && endDate) { + const [sy, sm, sd] = startDate.split('-').map(Number); + const [ey, em, ed] = endDate.split('-').map(Number); + const startMs = Date.UTC(sy, sm - 1, sd); + const endMs = Date.UTC(ey, em - 1, ed); + const numDays = Math.min(Math.floor((endMs - startMs) / MS_PER_DAY) + 1, MAX_TRIP_DAYS); + for (let i = 0; i < numDays; i++) { + const d = new Date(startMs + i * MS_PER_DAY); + const date = `${d.getUTCFullYear()}-${String(d.getUTCMonth() + 1).padStart(2, '0')}-${String(d.getUTCDate()).padStart(2, '0')}`; + insert.run(tripId, i + 1, date); + } + } else { + for (let i = 0; i < 7; i++) insert.run(tripId, i + 1, null); + } +} + +export function registerTools(server: McpServer, userId: number): void { + // --- TRIPS --- + + server.registerTool( + 'create_trip', + { + description: 'Create a new trip. Returns the created trip with its generated days.', + inputSchema: { + title: z.string().min(1).max(200).describe('Trip title'), + description: z.string().max(2000).optional().describe('Trip description'), + start_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe('Start date (YYYY-MM-DD)'), + end_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe('End date (YYYY-MM-DD)'), + currency: z.string().length(3).optional().describe('Currency code (e.g. EUR, USD)'), + }, + }, + async ({ title, description, start_date, end_date, currency }) => { + if (isDemoUser(userId)) return demoDenied(); + if (start_date && end_date && new Date(end_date) < new Date(start_date)) { + return { content: [{ type: 'text' as const, text: 'End date must be after start date.' }], isError: true }; + } + const result = db.prepare( + 'INSERT INTO trips (user_id, title, description, start_date, end_date, currency) VALUES (?, ?, ?, ?, ?, ?)' + ).run(userId, title, description || null, start_date || null, end_date || null, currency || 'EUR'); + createDaysForNewTrip(result.lastInsertRowid as number, start_date || null, end_date || null); + const trip = db.prepare('SELECT * FROM trips WHERE id = ?').get(result.lastInsertRowid); + return ok({ trip }); + } + ); + + server.registerTool( + 'update_trip', + { + description: 'Update an existing trip\'s details.', + inputSchema: { + tripId: z.number().int().positive(), + title: z.string().min(1).max(200).optional(), + description: z.string().max(2000).optional(), + start_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(), + end_date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(), + currency: z.string().length(3).optional(), + }, + }, + async ({ tripId, title, description, start_date, end_date, currency }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const existing = db.prepare('SELECT * FROM trips WHERE id = ?').get(tripId) as Record & { title: string; description: string; start_date: string; end_date: string; currency: string } | undefined; + if (!existing) return noAccess(); + db.prepare( + 'UPDATE trips SET title = ?, description = ?, start_date = ?, end_date = ?, currency = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?' + ).run( + title ?? existing.title, + description !== undefined ? description : existing.description, + start_date !== undefined ? start_date : existing.start_date, + end_date !== undefined ? end_date : existing.end_date, + currency ?? existing.currency, + tripId + ); + const updated = db.prepare('SELECT * FROM trips WHERE id = ?').get(tripId); + broadcast(tripId, 'trip:updated', { trip: updated }); + return ok({ trip: updated }); + } + ); + + server.registerTool( + 'delete_trip', + { + description: 'Delete a trip. Only the trip owner can delete it.', + inputSchema: { + tripId: z.number().int().positive(), + }, + }, + async ({ tripId }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!isOwner(tripId, userId)) return noAccess(); + db.prepare('DELETE FROM trips WHERE id = ?').run(tripId); + return ok({ success: true, tripId }); + } + ); + + // --- PLACES --- + + server.registerTool( + 'create_place', + { + description: 'Add a new place/POI to a trip.', + inputSchema: { + tripId: z.number().int().positive(), + name: z.string().min(1).max(200), + description: z.string().max(2000).optional(), + lat: z.number().optional(), + lng: z.number().optional(), + address: z.string().max(500).optional(), + category_id: z.number().int().positive().optional(), + notes: z.string().max(2000).optional(), + website: z.string().max(500).optional(), + phone: z.string().max(50).optional(), + }, + }, + async ({ tripId, name, description, lat, lng, address, category_id, notes, website, phone }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const result = db.prepare(` + INSERT INTO places (trip_id, name, description, lat, lng, address, category_id, notes, website, phone, transport_mode) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `).run(tripId, name, description || null, lat ?? null, lng ?? null, address || null, category_id || null, notes || null, website || null, phone || null, 'walking'); + const place = db.prepare('SELECT * FROM places WHERE id = ?').get(result.lastInsertRowid); + broadcast(tripId, 'place:created', { place }); + return ok({ place }); + } + ); + + server.registerTool( + 'update_place', + { + description: 'Update an existing place in a trip.', + inputSchema: { + tripId: z.number().int().positive(), + placeId: z.number().int().positive(), + name: z.string().min(1).max(200).optional(), + description: z.string().max(2000).optional(), + lat: z.number().optional(), + lng: z.number().optional(), + address: z.string().max(500).optional(), + notes: z.string().max(2000).optional(), + website: z.string().max(500).optional(), + phone: z.string().max(50).optional(), + }, + }, + async ({ tripId, placeId, name, description, lat, lng, address, notes, website, phone }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const existing = db.prepare('SELECT * FROM places WHERE id = ? AND trip_id = ?').get(placeId, tripId) as Record | undefined; + if (!existing) return { content: [{ type: 'text' as const, text: 'Place not found.' }], isError: true }; + db.prepare(` + UPDATE places SET + name = ?, description = ?, lat = ?, lng = ?, address = ?, notes = ?, website = ?, phone = ?, + updated_at = CURRENT_TIMESTAMP + WHERE id = ? + `).run( + name ?? existing.name, + description !== undefined ? description : existing.description, + lat !== undefined ? lat : existing.lat, + lng !== undefined ? lng : existing.lng, + address !== undefined ? address : existing.address, + notes !== undefined ? notes : existing.notes, + website !== undefined ? website : existing.website, + phone !== undefined ? phone : existing.phone, + placeId + ); + const place = db.prepare('SELECT * FROM places WHERE id = ?').get(placeId); + broadcast(tripId, 'place:updated', { place }); + return ok({ place }); + } + ); + + server.registerTool( + 'delete_place', + { + description: 'Delete a place from a trip.', + inputSchema: { + tripId: z.number().int().positive(), + placeId: z.number().int().positive(), + }, + }, + async ({ tripId, placeId }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const place = db.prepare('SELECT id FROM places WHERE id = ? AND trip_id = ?').get(placeId, tripId); + if (!place) return { content: [{ type: 'text' as const, text: 'Place not found.' }], isError: true }; + db.prepare('DELETE FROM places WHERE id = ?').run(placeId); + broadcast(tripId, 'place:deleted', { placeId }); + return ok({ success: true }); + } + ); + + // --- ASSIGNMENTS --- + + server.registerTool( + 'assign_place_to_day', + { + description: 'Assign a place to a specific day in a trip.', + inputSchema: { + tripId: z.number().int().positive(), + dayId: z.number().int().positive(), + placeId: z.number().int().positive(), + notes: z.string().max(500).optional(), + }, + }, + async ({ tripId, dayId, placeId, notes }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const day = db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(dayId, tripId); + if (!day) return { content: [{ type: 'text' as const, text: 'Day not found.' }], isError: true }; + const place = db.prepare('SELECT id FROM places WHERE id = ? AND trip_id = ?').get(placeId, tripId); + if (!place) return { content: [{ type: 'text' as const, text: 'Place not found.' }], isError: true }; + const maxOrder = db.prepare('SELECT MAX(order_index) as max FROM day_assignments WHERE day_id = ?').get(dayId) as { max: number | null }; + const orderIndex = (maxOrder.max !== null ? maxOrder.max : -1) + 1; + const result = db.prepare( + 'INSERT INTO day_assignments (day_id, place_id, order_index, notes) VALUES (?, ?, ?, ?)' + ).run(dayId, placeId, orderIndex, notes || null); + const assignment = db.prepare(` + SELECT da.*, p.name as place_name, p.address, p.lat, p.lng + FROM day_assignments da JOIN places p ON da.place_id = p.id + WHERE da.id = ? + `).get(result.lastInsertRowid); + broadcast(tripId, 'assignment:created', { assignment }); + return ok({ assignment }); + } + ); + + server.registerTool( + 'unassign_place', + { + description: 'Remove a place assignment from a day.', + inputSchema: { + tripId: z.number().int().positive(), + dayId: z.number().int().positive(), + assignmentId: z.number().int().positive(), + }, + }, + async ({ tripId, dayId, assignmentId }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const assignment = db.prepare( + 'SELECT da.id FROM day_assignments da JOIN days d ON da.day_id = d.id WHERE da.id = ? AND da.day_id = ? AND d.trip_id = ?' + ).get(assignmentId, dayId, tripId); + if (!assignment) return { content: [{ type: 'text' as const, text: 'Assignment not found.' }], isError: true }; + db.prepare('DELETE FROM day_assignments WHERE id = ?').run(assignmentId); + broadcast(tripId, 'assignment:deleted', { assignmentId, dayId }); + return ok({ success: true }); + } + ); + + // --- BUDGET --- + + server.registerTool( + 'create_budget_item', + { + description: 'Add a budget/expense item to a trip.', + inputSchema: { + tripId: z.number().int().positive(), + name: z.string().min(1).max(200), + category: z.string().max(100).optional().describe('Budget category (e.g. Accommodation, Food, Transport)'), + total_price: z.number().nonnegative(), + note: z.string().max(500).optional(), + }, + }, + async ({ tripId, name, category, total_price, note }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const maxOrder = db.prepare('SELECT MAX(sort_order) as max FROM budget_items WHERE trip_id = ?').get(tripId) as { max: number | null }; + const sortOrder = (maxOrder.max !== null ? maxOrder.max : -1) + 1; + const result = db.prepare( + 'INSERT INTO budget_items (trip_id, category, name, total_price, note, sort_order) VALUES (?, ?, ?, ?, ?, ?)' + ).run(tripId, category || 'Other', name, total_price, note || null, sortOrder); + const item = db.prepare('SELECT * FROM budget_items WHERE id = ?').get(result.lastInsertRowid); + broadcast(tripId, 'budget:created', { item }); + return ok({ item }); + } + ); + + server.registerTool( + 'delete_budget_item', + { + description: 'Delete a budget item from a trip.', + inputSchema: { + tripId: z.number().int().positive(), + itemId: z.number().int().positive(), + }, + }, + async ({ tripId, itemId }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const item = db.prepare('SELECT id FROM budget_items WHERE id = ? AND trip_id = ?').get(itemId, tripId); + if (!item) return { content: [{ type: 'text' as const, text: 'Budget item not found.' }], isError: true }; + db.prepare('DELETE FROM budget_items WHERE id = ?').run(itemId); + broadcast(tripId, 'budget:deleted', { itemId }); + return ok({ success: true }); + } + ); + + // --- PACKING --- + + server.registerTool( + 'create_packing_item', + { + description: 'Add an item to the packing checklist for a trip.', + inputSchema: { + tripId: z.number().int().positive(), + name: z.string().min(1).max(200), + category: z.string().max(100).optional().describe('Packing category (e.g. Clothes, Electronics)'), + }, + }, + async ({ tripId, name, category }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const maxOrder = db.prepare('SELECT MAX(sort_order) as max FROM packing_items WHERE trip_id = ?').get(tripId) as { max: number | null }; + const sortOrder = (maxOrder.max !== null ? maxOrder.max : -1) + 1; + const result = db.prepare( + 'INSERT INTO packing_items (trip_id, name, checked, category, sort_order) VALUES (?, ?, ?, ?, ?)' + ).run(tripId, name, 0, category || 'General', sortOrder); + const item = db.prepare('SELECT * FROM packing_items WHERE id = ?').get(result.lastInsertRowid); + broadcast(tripId, 'packing:created', { item }); + return ok({ item }); + } + ); + + server.registerTool( + 'toggle_packing_item', + { + description: 'Check or uncheck a packing item.', + inputSchema: { + tripId: z.number().int().positive(), + itemId: z.number().int().positive(), + checked: z.boolean(), + }, + }, + async ({ tripId, itemId, checked }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const item = db.prepare('SELECT id FROM packing_items WHERE id = ? AND trip_id = ?').get(itemId, tripId); + if (!item) return { content: [{ type: 'text' as const, text: 'Packing item not found.' }], isError: true }; + db.prepare('UPDATE packing_items SET checked = ? WHERE id = ?').run(checked ? 1 : 0, itemId); + const updated = db.prepare('SELECT * FROM packing_items WHERE id = ?').get(itemId); + broadcast(tripId, 'packing:updated', { item: updated }); + return ok({ item: updated }); + } + ); + + server.registerTool( + 'delete_packing_item', + { + description: 'Remove an item from the packing checklist.', + inputSchema: { + tripId: z.number().int().positive(), + itemId: z.number().int().positive(), + }, + }, + async ({ tripId, itemId }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const item = db.prepare('SELECT id FROM packing_items WHERE id = ? AND trip_id = ?').get(itemId, tripId); + if (!item) return { content: [{ type: 'text' as const, text: 'Packing item not found.' }], isError: true }; + db.prepare('DELETE FROM packing_items WHERE id = ?').run(itemId); + broadcast(tripId, 'packing:deleted', { itemId }); + return ok({ success: true }); + } + ); + + // --- RESERVATIONS --- + + server.registerTool( + 'create_reservation', + { + description: 'Add a reservation (flight, hotel, restaurant, etc.) to a trip.', + inputSchema: { + tripId: z.number().int().positive(), + title: z.string().min(1).max(200), + type: z.enum(['flight', 'hotel', 'restaurant', 'activity', 'other']), + reservation_time: z.string().optional().describe('ISO 8601 datetime or time string'), + location: z.string().max(500).optional(), + confirmation_number: z.string().max(100).optional(), + notes: z.string().max(1000).optional(), + day_id: z.number().int().positive().optional(), + place_id: z.number().int().positive().optional(), + }, + }, + async ({ tripId, title, type, reservation_time, location, confirmation_number, notes, day_id, place_id }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const result = db.prepare(` + INSERT INTO reservations (trip_id, title, type, reservation_time, location, confirmation_number, notes, day_id, place_id, status) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `).run(tripId, title, type, reservation_time || null, location || null, confirmation_number || null, notes || null, day_id || null, place_id || null, 'confirmed'); + const reservation = db.prepare('SELECT * FROM reservations WHERE id = ?').get(result.lastInsertRowid); + broadcast(tripId, 'reservation:created', { reservation }); + return ok({ reservation }); + } + ); + + server.registerTool( + 'delete_reservation', + { + description: 'Delete a reservation from a trip.', + inputSchema: { + tripId: z.number().int().positive(), + reservationId: z.number().int().positive(), + }, + }, + async ({ tripId, reservationId }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const res = db.prepare('SELECT id FROM reservations WHERE id = ? AND trip_id = ?').get(reservationId, tripId); + if (!res) return { content: [{ type: 'text' as const, text: 'Reservation not found.' }], isError: true }; + db.prepare('DELETE FROM reservations WHERE id = ?').run(reservationId); + broadcast(tripId, 'reservation:deleted', { reservationId }); + return ok({ success: true }); + } + ); + + // --- DAYS --- + + server.registerTool( + 'update_day', + { + description: 'Set the title of a day in a trip (e.g. "Arrival in Paris", "Free day").', + inputSchema: { + tripId: z.number().int().positive(), + dayId: z.number().int().positive(), + title: z.string().max(200).nullable().describe('Day title, or null to clear it'), + }, + }, + async ({ tripId, dayId, title }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const day = db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(dayId, tripId); + if (!day) return { content: [{ type: 'text' as const, text: 'Day not found.' }], isError: true }; + db.prepare('UPDATE days SET title = ? WHERE id = ?').run(title, dayId); + const updated = db.prepare('SELECT * FROM days WHERE id = ?').get(dayId); + broadcast(tripId, 'day:updated', { day: updated }); + return ok({ day: updated }); + } + ); + + // --- RESERVATIONS (update) --- + + server.registerTool( + 'update_reservation', + { + description: 'Update an existing reservation in a trip.', + inputSchema: { + tripId: z.number().int().positive(), + reservationId: z.number().int().positive(), + title: z.string().min(1).max(200).optional(), + type: z.enum(['flight', 'hotel', 'restaurant', 'activity', 'other']).optional(), + reservation_time: z.string().optional().describe('ISO 8601 datetime or time string'), + location: z.string().max(500).optional(), + confirmation_number: z.string().max(100).optional(), + notes: z.string().max(1000).optional(), + status: z.enum(['pending', 'confirmed', 'cancelled']).optional(), + }, + }, + async ({ tripId, reservationId, title, type, reservation_time, location, confirmation_number, notes, status }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const existing = db.prepare('SELECT * FROM reservations WHERE id = ? AND trip_id = ?').get(reservationId, tripId) as Record | undefined; + if (!existing) return { content: [{ type: 'text' as const, text: 'Reservation not found.' }], isError: true }; + db.prepare(` + UPDATE reservations SET + title = ?, type = ?, reservation_time = ?, location = ?, + confirmation_number = ?, notes = ?, status = ? + WHERE id = ? + `).run( + title ?? existing.title, + type ?? existing.type, + reservation_time !== undefined ? reservation_time : existing.reservation_time, + location !== undefined ? location : existing.location, + confirmation_number !== undefined ? confirmation_number : existing.confirmation_number, + notes !== undefined ? notes : existing.notes, + status ?? existing.status, + reservationId + ); + const updated = db.prepare('SELECT * FROM reservations WHERE id = ?').get(reservationId); + broadcast(tripId, 'reservation:updated', { reservation: updated }); + return ok({ reservation: updated }); + } + ); + + // --- BUDGET (update) --- + + server.registerTool( + 'update_budget_item', + { + description: 'Update an existing budget/expense item in a trip.', + inputSchema: { + tripId: z.number().int().positive(), + itemId: z.number().int().positive(), + name: z.string().min(1).max(200).optional(), + category: z.string().max(100).optional(), + total_price: z.number().nonnegative().optional(), + persons: z.number().int().positive().nullable().optional(), + days: z.number().int().positive().nullable().optional(), + note: z.string().max(500).nullable().optional(), + }, + }, + async ({ tripId, itemId, name, category, total_price, persons, days, note }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const existing = db.prepare('SELECT * FROM budget_items WHERE id = ? AND trip_id = ?').get(itemId, tripId) as Record | undefined; + if (!existing) return { content: [{ type: 'text' as const, text: 'Budget item not found.' }], isError: true }; + db.prepare(` + UPDATE budget_items SET + name = ?, category = ?, total_price = ?, persons = ?, days = ?, note = ? + WHERE id = ? + `).run( + name ?? existing.name, + category ?? existing.category, + total_price !== undefined ? total_price : existing.total_price, + persons !== undefined ? persons : existing.persons, + days !== undefined ? days : existing.days, + note !== undefined ? note : existing.note, + itemId + ); + const updated = db.prepare('SELECT * FROM budget_items WHERE id = ?').get(itemId); + broadcast(tripId, 'budget:updated', { item: updated }); + return ok({ item: updated }); + } + ); + + // --- PACKING (update) --- + + server.registerTool( + 'update_packing_item', + { + description: 'Rename a packing item or change its category.', + inputSchema: { + tripId: z.number().int().positive(), + itemId: z.number().int().positive(), + name: z.string().min(1).max(200).optional(), + category: z.string().max(100).optional(), + }, + }, + async ({ tripId, itemId, name, category }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const existing = db.prepare('SELECT * FROM packing_items WHERE id = ? AND trip_id = ?').get(itemId, tripId) as Record | undefined; + if (!existing) return { content: [{ type: 'text' as const, text: 'Packing item not found.' }], isError: true }; + db.prepare('UPDATE packing_items SET name = ?, category = ? WHERE id = ?').run( + name ?? existing.name, + category ?? existing.category, + itemId + ); + const updated = db.prepare('SELECT * FROM packing_items WHERE id = ?').get(itemId); + broadcast(tripId, 'packing:updated', { item: updated }); + return ok({ item: updated }); + } + ); + + // --- REORDER --- + + server.registerTool( + 'reorder_day_assignments', + { + description: 'Reorder places within a day by providing the assignment IDs in the desired order.', + inputSchema: { + tripId: z.number().int().positive(), + dayId: z.number().int().positive(), + assignmentIds: z.array(z.number().int().positive()).min(1).describe('Assignment IDs in desired display order'), + }, + }, + async ({ tripId, dayId, assignmentIds }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const day = db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(dayId, tripId); + if (!day) return { content: [{ type: 'text' as const, text: 'Day not found.' }], isError: true }; + const update = db.prepare('UPDATE day_assignments SET order_index = ? WHERE id = ? AND day_id = ?'); + const updateMany = db.transaction((ids: number[]) => { + ids.forEach((id, index) => update.run(index, id, dayId)); + }); + updateMany(assignmentIds); + broadcast(tripId, 'assignment:reordered', { dayId, assignmentIds }); + return ok({ success: true, dayId, order: assignmentIds }); + } + ); + + // --- TRIP SUMMARY --- + + server.registerTool( + 'get_trip_summary', + { + description: 'Get a full denormalized summary of a trip in a single call: metadata, members, days with assignments, accommodations, budget totals, packing stats, and upcoming reservations. Use this as a context loader before planning or modifying a trip.', + inputSchema: { + tripId: z.number().int().positive(), + }, + }, + async ({ tripId }) => { + if (!canAccessTrip(tripId, userId)) return noAccess(); + + const trip = db.prepare('SELECT * FROM trips WHERE id = ?').get(tripId) as Record | undefined; + if (!trip) return noAccess(); + + // Members + const owner = db.prepare('SELECT id, username, avatar FROM users WHERE id = ?').get(trip.user_id as number); + const members = db.prepare(` + SELECT u.id, u.username, u.avatar, tm.added_at + FROM trip_members tm JOIN users u ON tm.user_id = u.id + WHERE tm.trip_id = ? + `).all(tripId); + + // Days with assignments + const days = db.prepare('SELECT * FROM days WHERE trip_id = ? ORDER BY day_number ASC').all(tripId) as (Record & { id: number })[]; + const dayIds = days.map(d => d.id); + const assignmentsByDay: Record = {}; + if (dayIds.length > 0) { + const placeholders = dayIds.map(() => '?').join(','); + const assignments = db.prepare(` + SELECT da.id, da.day_id, da.order_index, da.notes as assignment_notes, + p.id as place_id, p.name, p.address, p.lat, p.lng, + COALESCE(da.assignment_time, p.place_time) as place_time, + c.name as category_name, c.icon as category_icon + FROM day_assignments da + JOIN places p ON da.place_id = p.id + LEFT JOIN categories c ON p.category_id = c.id + WHERE da.day_id IN (${placeholders}) + ORDER BY da.order_index ASC + `).all(...dayIds) as (Record & { day_id: number })[]; + for (const a of assignments) { + if (!assignmentsByDay[a.day_id]) assignmentsByDay[a.day_id] = []; + assignmentsByDay[a.day_id].push(a); + } + } + const daysWithAssignments = days.map(d => ({ ...d, assignments: assignmentsByDay[d.id] || [] })); + + // Accommodations + const accommodations = db.prepare(` + SELECT da.*, p.name as place_name, ds.day_number as start_day_number, de.day_number as end_day_number + FROM day_accommodations da + JOIN places p ON da.place_id = p.id + LEFT JOIN days ds ON da.start_day_id = ds.id + LEFT JOIN days de ON da.end_day_id = de.id + WHERE da.trip_id = ? + ORDER BY ds.day_number ASC + `).all(tripId); + + // Budget summary + const budgetStats = db.prepare(` + SELECT COUNT(*) as item_count, COALESCE(SUM(total_price), 0) as total + FROM budget_items WHERE trip_id = ? + `).get(tripId) as { item_count: number; total: number }; + + // Packing summary + const packingStats = db.prepare(` + SELECT COUNT(*) as total, SUM(CASE WHEN checked = 1 THEN 1 ELSE 0 END) as checked + FROM packing_items WHERE trip_id = ? + `).get(tripId) as { total: number; checked: number }; + + // Upcoming reservations (all, sorted by time) + const reservations = db.prepare(` + SELECT r.*, d.day_number + FROM reservations r + LEFT JOIN days d ON r.day_id = d.id + WHERE r.trip_id = ? + ORDER BY r.reservation_time ASC, r.created_at ASC + `).all(tripId); + + return ok({ + trip, + members: { owner, collaborators: members }, + days: daysWithAssignments, + accommodations, + budget: { ...budgetStats, currency: trip.currency }, + packing: packingStats, + reservations, + }); + } + ); + + // --- BUCKET LIST --- + + server.registerTool( + 'create_bucket_list_item', + { + description: 'Add a destination to your personal travel bucket list.', + inputSchema: { + name: z.string().min(1).max(200).describe('Destination or experience name'), + lat: z.number().optional(), + lng: z.number().optional(), + country_code: z.string().length(2).toUpperCase().optional().describe('ISO 3166-1 alpha-2 country code'), + notes: z.string().max(1000).optional(), + }, + }, + async ({ name, lat, lng, country_code, notes }) => { + if (isDemoUser(userId)) return demoDenied(); + const result = db.prepare( + 'INSERT INTO bucket_list (user_id, name, lat, lng, country_code, notes) VALUES (?, ?, ?, ?, ?, ?)' + ).run(userId, name, lat ?? null, lng ?? null, country_code || null, notes || null); + const item = db.prepare('SELECT * FROM bucket_list WHERE id = ?').get(result.lastInsertRowid); + return ok({ item }); + } + ); + + server.registerTool( + 'delete_bucket_list_item', + { + description: 'Remove an item from your travel bucket list.', + inputSchema: { + itemId: z.number().int().positive(), + }, + }, + async ({ itemId }) => { + if (isDemoUser(userId)) return demoDenied(); + const item = db.prepare('SELECT id FROM bucket_list WHERE id = ? AND user_id = ?').get(itemId, userId); + if (!item) return { content: [{ type: 'text' as const, text: 'Bucket list item not found.' }], isError: true }; + db.prepare('DELETE FROM bucket_list WHERE id = ?').run(itemId); + return ok({ success: true }); + } + ); + + // --- ATLAS --- + + server.registerTool( + 'mark_country_visited', + { + description: 'Mark a country as visited in your Atlas.', + inputSchema: { + country_code: z.string().length(2).toUpperCase().describe('ISO 3166-1 alpha-2 country code (e.g. "FR", "JP")'), + }, + }, + async ({ country_code }) => { + if (isDemoUser(userId)) return demoDenied(); + db.prepare('INSERT OR IGNORE INTO visited_countries (user_id, country_code) VALUES (?, ?)').run(userId, country_code.toUpperCase()); + return ok({ success: true, country_code: country_code.toUpperCase() }); + } + ); + + server.registerTool( + 'unmark_country_visited', + { + description: 'Remove a country from your visited countries in Atlas.', + inputSchema: { + country_code: z.string().length(2).toUpperCase().describe('ISO 3166-1 alpha-2 country code'), + }, + }, + async ({ country_code }) => { + if (isDemoUser(userId)) return demoDenied(); + db.prepare('DELETE FROM visited_countries WHERE user_id = ? AND country_code = ?').run(userId, country_code.toUpperCase()); + return ok({ success: true, country_code: country_code.toUpperCase() }); + } + ); + + // --- COLLAB NOTES --- + + server.registerTool( + 'create_collab_note', + { + description: 'Create a shared collaborative note on a trip (visible to all trip members in the Collab tab).', + inputSchema: { + tripId: z.number().int().positive(), + title: z.string().min(1).max(200), + content: z.string().max(10000).optional(), + category: z.string().max(100).optional().describe('Note category (e.g. "Ideas", "To-do", "General")'), + color: z.string().regex(/^#[0-9a-fA-F]{6}$/).optional().describe('Hex color for the note card'), + }, + }, + async ({ tripId, title, content, category, color }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const result = db.prepare(` + INSERT INTO collab_notes (trip_id, user_id, title, content, category, color) + VALUES (?, ?, ?, ?, ?, ?) + `).run(tripId, userId, title, content || null, category || 'General', color || '#6366f1'); + const note = db.prepare('SELECT * FROM collab_notes WHERE id = ?').get(result.lastInsertRowid); + broadcast(tripId, 'collab:note:created', { note }); + return ok({ note }); + } + ); + + // --- DAY NOTES --- + + server.registerTool( + 'create_day_note', + { + description: 'Add a note to a specific day in a trip.', + inputSchema: { + tripId: z.number().int().positive(), + dayId: z.number().int().positive(), + text: z.string().min(1).max(500), + time: z.string().max(150).optional().describe('Time label (e.g. "09:00" or "Morning")'), + icon: z.string().optional().describe('Emoji icon for the note'), + }, + }, + async ({ tripId, dayId, text, time, icon }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const day = db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(dayId, tripId); + if (!day) return { content: [{ type: 'text' as const, text: 'Day not found.' }], isError: true }; + const result = db.prepare( + 'INSERT INTO day_notes (day_id, trip_id, text, time, icon, sort_order) VALUES (?, ?, ?, ?, ?, ?)' + ).run(dayId, tripId, text.trim(), time || null, icon || '📝', 9999); + const note = db.prepare('SELECT * FROM day_notes WHERE id = ?').get(result.lastInsertRowid); + broadcast(tripId, 'dayNote:created', { dayId, note }); + return ok({ note }); + } + ); + + server.registerTool( + 'update_day_note', + { + description: 'Edit an existing note on a specific day.', + inputSchema: { + tripId: z.number().int().positive(), + dayId: z.number().int().positive(), + noteId: z.number().int().positive(), + text: z.string().min(1).max(500).optional(), + time: z.string().max(150).nullable().optional().describe('Time label (e.g. "09:00" or "Morning"), or null to clear'), + icon: z.string().optional().describe('Emoji icon for the note'), + }, + }, + async ({ tripId, dayId, noteId, text, time, icon }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const existing = db.prepare('SELECT * FROM day_notes WHERE id = ? AND day_id = ? AND trip_id = ?').get(noteId, dayId, tripId) as Record | undefined; + if (!existing) return { content: [{ type: 'text' as const, text: 'Note not found.' }], isError: true }; + db.prepare('UPDATE day_notes SET text = ?, time = ?, icon = ? WHERE id = ?').run( + text !== undefined ? text.trim() : existing.text, + time !== undefined ? time : existing.time, + icon ?? existing.icon, + noteId + ); + const updated = db.prepare('SELECT * FROM day_notes WHERE id = ?').get(noteId); + broadcast(tripId, 'dayNote:updated', { dayId, note: updated }); + return ok({ note: updated }); + } + ); + + server.registerTool( + 'delete_day_note', + { + description: 'Delete a note from a specific day.', + inputSchema: { + tripId: z.number().int().positive(), + dayId: z.number().int().positive(), + noteId: z.number().int().positive(), + }, + }, + async ({ tripId, dayId, noteId }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const note = db.prepare('SELECT id FROM day_notes WHERE id = ? AND day_id = ? AND trip_id = ?').get(noteId, dayId, tripId); + if (!note) return { content: [{ type: 'text' as const, text: 'Note not found.' }], isError: true }; + db.prepare('DELETE FROM day_notes WHERE id = ?').run(noteId); + broadcast(tripId, 'dayNote:deleted', { noteId, dayId }); + return ok({ success: true }); + } + ); +} diff --git a/server/src/routes/admin.ts b/server/src/routes/admin.ts index c7aaf2a..ca4f30c 100644 --- a/server/src/routes/admin.ts +++ b/server/src/routes/admin.ts @@ -411,4 +411,21 @@ router.put('/addons/:id', (req: Request, res: Response) => { res.json({ addon: { ...updated, enabled: !!updated.enabled, config: JSON.parse(updated.config || '{}') } }); }); +router.get('/mcp-tokens', (req: Request, res: Response) => { + const tokens = db.prepare(` + SELECT t.id, t.name, t.token_prefix, t.created_at, t.last_used_at, t.user_id, u.username + FROM mcp_tokens t + JOIN users u ON u.id = t.user_id + ORDER BY t.created_at DESC + `).all(); + res.json({ tokens }); +}); + +router.delete('/mcp-tokens/:id', (req: Request, res: Response) => { + const token = db.prepare('SELECT id FROM mcp_tokens WHERE id = ?').get(req.params.id); + if (!token) return res.status(404).json({ error: 'Token not found' }); + db.prepare('DELETE FROM mcp_tokens WHERE id = ?').run(req.params.id); + res.json({ success: true }); +}); + export default router; diff --git a/server/src/routes/auth.ts b/server/src/routes/auth.ts index b5518ef..7b956f0 100644 --- a/server/src/routes/auth.ts +++ b/server/src/routes/auth.ts @@ -12,6 +12,7 @@ import { db } from '../db/database'; import { authenticate, demoUploadBlock } from '../middleware/auth'; import { JWT_SECRET } from '../config'; import { encryptMfaSecret, decryptMfaSecret } from '../services/mfaCrypto'; +import { randomBytes, createHash } from 'crypto'; import { AuthRequest, User } from '../types'; authenticator.options = { window: 1 }; @@ -705,4 +706,46 @@ router.post('/mfa/disable', authenticate, rateLimiter(5, RATE_LIMIT_WINDOW), (re res.json({ success: true, mfa_enabled: false }); }); +// --- MCP Token Management --- + +router.get('/mcp-tokens', authenticate, (req: Request, res: Response) => { + const authReq = req as AuthRequest; + const tokens = db.prepare( + 'SELECT id, name, token_prefix, created_at, last_used_at FROM mcp_tokens WHERE user_id = ? ORDER BY created_at DESC' + ).all(authReq.user.id); + res.json({ tokens }); +}); + +router.post('/mcp-tokens', authenticate, rateLimiter(5, RATE_LIMIT_WINDOW), (req: Request, res: Response) => { + const authReq = req as AuthRequest; + const { name } = req.body; + if (!name?.trim()) return res.status(400).json({ error: 'Token name is required' }); + + const tokenCount = (db.prepare('SELECT COUNT(*) as count FROM mcp_tokens WHERE user_id = ?').get(authReq.user.id) as { count: number }).count; + if (tokenCount >= 10) return res.status(400).json({ error: 'Maximum of 10 tokens per user reached' }); + + const rawToken = 'trek_' + randomBytes(24).toString('hex'); + const tokenHash = createHash('sha256').update(rawToken).digest('hex'); + const tokenPrefix = rawToken.slice(0, 13); // "trek_" + 8 hex chars + + const result = db.prepare( + 'INSERT INTO mcp_tokens (user_id, name, token_hash, token_prefix) VALUES (?, ?, ?, ?)' + ).run(authReq.user.id, name.trim(), tokenHash, tokenPrefix); + + const token = db.prepare( + 'SELECT id, name, token_prefix, created_at, last_used_at FROM mcp_tokens WHERE id = ?' + ).get(result.lastInsertRowid); + + res.status(201).json({ token: { ...(token as object), raw_token: rawToken } }); +}); + +router.delete('/mcp-tokens/:id', authenticate, (req: Request, res: Response) => { + const authReq = req as AuthRequest; + const { id } = req.params; + const token = db.prepare('SELECT id FROM mcp_tokens WHERE id = ? AND user_id = ?').get(id, authReq.user.id); + if (!token) return res.status(404).json({ error: 'Token not found' }); + db.prepare('DELETE FROM mcp_tokens WHERE id = ?').run(id); + res.json({ success: true }); +}); + export default router; diff --git a/server/tsconfig.json b/server/tsconfig.json index 0ecff37..25e99aa 100644 --- a/server/tsconfig.json +++ b/server/tsconfig.json @@ -9,12 +9,20 @@ "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, + "moduleResolution": "bundler", "resolveJsonModule": true, "declaration": false, "sourceMap": true, "allowJs": true, "noUnusedLocals": false, - "noUnusedParameters": false + "noUnusedParameters": false, + // The MCP SDK's package.json uses a wildcard exports pattern with extension-less targets + // (e.g. "./*": "./dist/esm/*") which TypeScript cannot resolve — it only strips .js suffixes. + // These paths manually redirect to the CJS dist until the SDK fixes its exports map. + "paths": { + "@modelcontextprotocol/sdk/server/mcp": ["./node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp"], + "@modelcontextprotocol/sdk/server/streamableHttp": ["./node_modules/@modelcontextprotocol/sdk/dist/cjs/server/streamableHttp"] + } }, "include": ["src"], "exclude": ["node_modules", "dist"] From 153b7f64b7fb235662d60407b236dad45d3fc71e Mon Sep 17 00:00:00 2001 From: jubnl Date: Mon, 30 Mar 2026 06:59:24 +0200 Subject: [PATCH 10/63] some fixes --- MCP.md | 194 ++++++++++++++++ client/src/i18n/translations/ar.ts | 2 +- client/src/i18n/translations/br.ts | 27 +++ client/src/i18n/translations/de.ts | 2 +- client/src/i18n/translations/en.ts | 2 +- client/src/i18n/translations/es.ts | 2 +- client/src/i18n/translations/fr.ts | 2 +- client/src/i18n/translations/nl.ts | 2 +- client/src/i18n/translations/ru.ts | 2 +- client/src/i18n/translations/zh.ts | 2 +- client/src/pages/SettingsPage.tsx | 19 +- server/src/db/migrations.ts | 5 + server/src/index.ts | 4 +- server/src/mcp/index.ts | 60 ++++- server/src/mcp/resources.ts | 47 ++-- server/src/mcp/tools.ts | 342 +++++++++++++++++++++++++++-- server/src/routes/admin.ts | 4 +- server/src/routes/auth.ts | 3 + server/src/routes/files.ts | 2 +- server/tsconfig.json | 1 - 20 files changed, 659 insertions(+), 65 deletions(-) create mode 100644 MCP.md diff --git a/MCP.md b/MCP.md new file mode 100644 index 0000000..2c0e3fe --- /dev/null +++ b/MCP.md @@ -0,0 +1,194 @@ +# MCP Integration + +TREK includes a built-in [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server that lets AI assistants — such as Claude Desktop, Cursor, or any MCP-compatible client — read and modify your trip data through a structured API. + +> **Note:** MCP is an addon that must be enabled by your TREK administrator before it becomes available. + +## Table of Contents + +- [Setup](#setup) +- [Limitations & Important Notes](#limitations--important-notes) +- [Resources (read-only)](#resources-read-only) +- [Tools (read-write)](#tools-read-write) +- [Screenshots](#screenshots) + +--- + +## Setup + +### 1. Enable the MCP addon (admin) + +An administrator must first enable the MCP addon from the **Admin Panel > Addons** page. Until enabled, the `/mcp` endpoint returns `403 Forbidden` and the MCP section does not appear in user settings. + +### 2. Create an API token + +Once MCP is enabled, go to **Settings > MCP Configuration** and create an API token: + +1. Click **Create New Token** +2. Give it a descriptive name (e.g. "Claude Desktop", "Work laptop") +3. **Copy the token immediately** — it is shown only once and cannot be recovered + +Each user can create up to **10 tokens**. + +### 3. Configure your MCP client + +The Settings page shows a ready-to-copy client configuration snippet. For **Claude Desktop**, add the following to your `claude_desktop_config.json`: + +```json +{ + "mcpServers": { + "trek": { + "command": "npx", + "args": [ + "mcp-remote", + "https://your-trek-instance.com/mcp", + "--header", + "Authorization: Bearer trek_your_token_here" + ] + } + } +} +``` + +> The path to `npx` may need to be adjusted for your system (e.g. `C:\PROGRA~1\nodejs\npx.cmd` on Windows). + +--- + +## Limitations & Important Notes + +| Limitation | Details | +|---|---| +| **Admin activation required** | The MCP addon must be enabled by an admin before any user can access it. | +| **Per-user scoping** | Each MCP session is scoped to the authenticated user. You can only access trips you own or are a member of. | +| **No image uploads** | Cover images cannot be set through MCP. Use the web UI to upload trip covers. | +| **Reservations are created as pending** | When the AI creates a reservation, it starts with `pending` status. You must confirm it manually or ask the AI to set the status to `confirmed`. | +| **Demo mode restrictions** | If TREK is running in demo mode, all write operations through MCP are blocked. | +| **Rate limiting** | 60 requests per minute per user. Exceeding this returns a `429` error. | +| **Session limits** | Maximum 5 concurrent MCP sessions per user. Sessions expire after 1 hour of inactivity. | +| **Token limits** | Maximum 10 API tokens per user. | +| **Token revocation** | Deleting a token immediately terminates all active MCP sessions for that user. | +| **Real-time sync** | Changes made through MCP are broadcast to all connected clients in real-time via WebSocket, just like changes made through the web UI. | + +--- + +## Resources (read-only) + +Resources provide read-only access to your TREK data. MCP clients can read these to understand the current state before making changes. + +| Resource | URI | Description | +|---|---|---| +| Trips | `trek://trips` | All trips you own or are a member of | +| Trip Detail | `trek://trips/{tripId}` | Single trip with metadata and member count | +| Days | `trek://trips/{tripId}/days` | Days of a trip with their assigned places | +| Places | `trek://trips/{tripId}/places` | All places/POIs saved in a trip | +| Budget | `trek://trips/{tripId}/budget` | Budget and expense items | +| Packing | `trek://trips/{tripId}/packing` | Packing checklist | +| Reservations | `trek://trips/{tripId}/reservations` | Flights, hotels, restaurants, etc. | +| Day Notes | `trek://trips/{tripId}/days/{dayId}/notes` | Notes for a specific day | +| Accommodations | `trek://trips/{tripId}/accommodations` | Hotels/rentals with check-in/out details | +| Members | `trek://trips/{tripId}/members` | Owner and collaborators | +| Collab Notes | `trek://trips/{tripId}/collab-notes` | Shared collaborative notes | +| Categories | `trek://categories` | Available place categories (for use when creating places) | +| Bucket List | `trek://bucket-list` | Your personal travel bucket list | +| Visited Countries | `trek://visited-countries` | Countries marked as visited in Atlas | + +--- + +## Tools (read-write) + +TREK exposes **34 tools** organized by feature area. Use `get_trip_summary` as a starting point — it returns everything about a trip in a single call. + +### Trip Summary + +| Tool | Description | +|---|---| +| `get_trip_summary` | Full denormalized snapshot of a trip: metadata, members, days with assignments and notes, accommodations, budget totals, packing stats, reservations, and collab notes. Use this as your context loader. | + +### Trips + +| Tool | Description | +|---|---| +| `list_trips` | List all trips you own or are a member of. Supports `include_archived` flag. | +| `create_trip` | Create a new trip with title, dates, currency. Days are auto-generated from the date range. | +| `update_trip` | Update a trip's title, description, dates, or currency. | +| `delete_trip` | Delete a trip. **Owner only.** | + +### Places + +| Tool | Description | +|---|---| +| `create_place` | Add a place/POI with name, coordinates, address, category, notes, website, phone. | +| `update_place` | Update any field of an existing place. | +| `delete_place` | Remove a place from a trip. | + +### Day Planning + +| Tool | Description | +|---|---| +| `assign_place_to_day` | Pin a place to a specific day in the itinerary. | +| `unassign_place` | Remove a place assignment from a day. | +| `reorder_day_assignments` | Reorder places within a day by providing assignment IDs in the desired order. | +| `update_assignment_time` | Set start/end times for a place assignment (e.g. "09:00" – "11:30"). | +| `update_day` | Set or clear a day's title (e.g. "Arrival in Paris", "Free day"). | + +### Reservations + +| Tool | Description | +|---|---| +| `create_reservation` | Create a pending reservation. Supports flights, hotels, restaurants, trains, cars, cruises, events, tours, activities, and other types. Hotels can be linked to places and check-in/out days. | +| `update_reservation` | Update any field including status (`pending` / `confirmed` / `cancelled`). | +| `delete_reservation` | Delete a reservation and its linked accommodation record if applicable. | +| `link_hotel_accommodation` | Set or update a hotel reservation's check-in/out day links and associated place. | + +### Budget + +| Tool | Description | +|---|---| +| `create_budget_item` | Add an expense with name, category, and price. | +| `update_budget_item` | Update an expense's details, split (persons/days), or notes. | +| `delete_budget_item` | Remove a budget item. | + +### Packing + +| Tool | Description | +|---|---| +| `create_packing_item` | Add an item to the packing checklist with optional category. | +| `update_packing_item` | Rename an item or change its category. | +| `toggle_packing_item` | Check or uncheck a packing item. | +| `delete_packing_item` | Remove a packing item. | + +### Day Notes + +| Tool | Description | +|---|---| +| `create_day_note` | Add a note to a specific day with optional time label and emoji icon. | +| `update_day_note` | Edit a day note's text, time, or icon. | +| `delete_day_note` | Remove a note from a day. | + +### Collab Notes + +| Tool | Description | +|---|---| +| `create_collab_note` | Create a shared note visible to all trip members. Supports title, content, category, and color. | +| `update_collab_note` | Edit a collab note's content, category, color, or pin status. | +| `delete_collab_note` | Delete a collab note and its associated files. | + +### Bucket List + +| Tool | Description | +|---|---| +| `create_bucket_list_item` | Add a destination to your personal bucket list with optional coordinates and country code. | +| `delete_bucket_list_item` | Remove an item from your bucket list. | + +### Atlas + +| Tool | Description | +|---|---| +| `mark_country_visited` | Mark a country as visited using its ISO 3166-1 alpha-2 code (e.g. "FR", "JP"). | +| `unmark_country_visited` | Remove a country from your visited list. | + +--- + +## Screenshots + + diff --git a/client/src/i18n/translations/ar.ts b/client/src/i18n/translations/ar.ts index ac17862..6e61583 100644 --- a/client/src/i18n/translations/ar.ts +++ b/client/src/i18n/translations/ar.ts @@ -149,7 +149,7 @@ const ar: Record = { 'settings.mcp.title': 'إعداد MCP', 'settings.mcp.endpoint': 'نقطة نهاية MCP', 'settings.mcp.clientConfig': 'إعداد العميل', - 'settings.mcp.clientConfigHint': 'استبدل برمز API من القائمة أدناه.', + 'settings.mcp.clientConfigHint': 'استبدل برمز API من القائمة أدناه. قد يحتاج مسار npx إلى ضبط وفق نظامك (مثلاً C:\\PROGRA~1\\nodejs\\npx.cmd على Windows).', 'settings.mcp.copy': 'نسخ', 'settings.mcp.copied': 'تم النسخ!', 'settings.mcp.apiTokens': 'رموز API', diff --git a/client/src/i18n/translations/br.ts b/client/src/i18n/translations/br.ts index 969e8a0..d16f5ab 100644 --- a/client/src/i18n/translations/br.ts +++ b/client/src/i18n/translations/br.ts @@ -191,6 +191,31 @@ const br: Record = { 'settings.mfa.toastEnabled': 'Autenticação em duas etapas ativada', 'settings.mfa.toastDisabled': 'Autenticação em duas etapas desativada', 'settings.mfa.demoBlocked': 'Indisponível no modo demonstração', + 'settings.mcp.title': 'Configuração MCP', + 'settings.mcp.endpoint': 'Endpoint MCP', + 'settings.mcp.clientConfig': 'Configuração do cliente', + 'settings.mcp.clientConfigHint': 'Substitua por um token de API da lista abaixo. O caminho para o npx pode precisar ser ajustado para o seu sistema (ex.: C:\\PROGRA~1\\nodejs\\npx.cmd no Windows).', + 'settings.mcp.copy': 'Copiar', + 'settings.mcp.copied': 'Copiado!', + 'settings.mcp.apiTokens': 'Tokens de API', + 'settings.mcp.createToken': 'Criar novo token', + 'settings.mcp.noTokens': 'Nenhum token ainda. Crie um para conectar clientes MCP.', + 'settings.mcp.tokenCreatedAt': 'Criado em', + 'settings.mcp.tokenUsedAt': 'Usado em', + 'settings.mcp.deleteTokenTitle': 'Excluir token', + 'settings.mcp.deleteTokenMessage': 'Este token deixará de funcionar imediatamente. Qualquer cliente MCP que o utilize perderá o acesso.', + 'settings.mcp.modal.createTitle': 'Criar token de API', + 'settings.mcp.modal.tokenName': 'Nome do token', + 'settings.mcp.modal.tokenNamePlaceholder': 'ex.: Claude Desktop, Notebook do trabalho', + 'settings.mcp.modal.creating': 'Criando…', + 'settings.mcp.modal.create': 'Criar token', + 'settings.mcp.modal.createdTitle': 'Token criado', + 'settings.mcp.modal.createdWarning': 'Este token será exibido apenas uma vez. Copie e guarde agora — não poderá ser recuperado.', + 'settings.mcp.modal.done': 'Concluído', + 'settings.mcp.toast.created': 'Token criado', + 'settings.mcp.toast.createError': 'Falha ao criar token', + 'settings.mcp.toast.deleted': 'Token excluído', + 'settings.mcp.toast.deleteError': 'Falha ao excluir token', // Login 'login.error': 'Falha no login. Verifique suas credenciais.', @@ -388,6 +413,8 @@ const br: Record = { 'admin.addons.catalog.atlas.description': 'Mapa mundial com países visitados e estatísticas', 'admin.addons.catalog.collab.name': 'Colab', 'admin.addons.catalog.collab.description': 'Notas, enquetes e chat em tempo real para planejar a viagem', + 'admin.addons.catalog.mcp.name': 'MCP', + 'admin.addons.catalog.mcp.description': 'Model Context Protocol para integração com assistentes de IA', 'admin.addons.subtitleBefore': 'Ative ou desative recursos para personalizar sua ', 'admin.addons.subtitleAfter': ' experiência.', 'admin.addons.enabled': 'Ativado', diff --git a/client/src/i18n/translations/de.ts b/client/src/i18n/translations/de.ts index 62aa1b9..34134f8 100644 --- a/client/src/i18n/translations/de.ts +++ b/client/src/i18n/translations/de.ts @@ -144,7 +144,7 @@ const de: Record = { 'settings.mcp.title': 'MCP-Konfiguration', 'settings.mcp.endpoint': 'MCP-Endpunkt', 'settings.mcp.clientConfig': 'Client-Konfiguration', - 'settings.mcp.clientConfigHint': 'Ersetze durch ein API-Token aus der Liste unten.', + 'settings.mcp.clientConfigHint': 'Ersetze durch ein API-Token aus der Liste unten. Der Pfad zu npx muss ggf. für dein System angepasst werden (z. B. C:\\PROGRA~1\\nodejs\\npx.cmd unter Windows).', 'settings.mcp.copy': 'Kopieren', 'settings.mcp.copied': 'Kopiert!', 'settings.mcp.apiTokens': 'API-Tokens', diff --git a/client/src/i18n/translations/en.ts b/client/src/i18n/translations/en.ts index 125662d..15bf445 100644 --- a/client/src/i18n/translations/en.ts +++ b/client/src/i18n/translations/en.ts @@ -144,7 +144,7 @@ const en: Record = { 'settings.mcp.title': 'MCP Configuration', 'settings.mcp.endpoint': 'MCP Endpoint', 'settings.mcp.clientConfig': 'Client Configuration', - 'settings.mcp.clientConfigHint': 'Replace with an API token from the list below.', + 'settings.mcp.clientConfigHint': 'Replace with an API token from the list below. The path to npx may need to be adjusted for your system (e.g. C:\\PROGRA~1\\nodejs\\npx.cmd on Windows).', 'settings.mcp.copy': 'Copy', 'settings.mcp.copied': 'Copied!', 'settings.mcp.apiTokens': 'API Tokens', diff --git a/client/src/i18n/translations/es.ts b/client/src/i18n/translations/es.ts index e72f359..967ad3e 100644 --- a/client/src/i18n/translations/es.ts +++ b/client/src/i18n/translations/es.ts @@ -145,7 +145,7 @@ const es: Record = { 'settings.mcp.title': 'Configuración MCP', 'settings.mcp.endpoint': 'Endpoint MCP', 'settings.mcp.clientConfig': 'Configuración del cliente', - 'settings.mcp.clientConfigHint': 'Reemplaza con un token de la lista de abajo.', + 'settings.mcp.clientConfigHint': 'Reemplaza con un token de la lista de abajo. Es posible que debas ajustar la ruta de npx según tu sistema (p. ej. C:\\PROGRA~1\\nodejs\\npx.cmd en Windows).', 'settings.mcp.copy': 'Copiar', 'settings.mcp.copied': '¡Copiado!', 'settings.mcp.apiTokens': 'Tokens de API', diff --git a/client/src/i18n/translations/fr.ts b/client/src/i18n/translations/fr.ts index cb530c8..bc21421 100644 --- a/client/src/i18n/translations/fr.ts +++ b/client/src/i18n/translations/fr.ts @@ -144,7 +144,7 @@ const fr: Record = { 'settings.mcp.title': 'Configuration MCP', 'settings.mcp.endpoint': 'Point de terminaison MCP', 'settings.mcp.clientConfig': 'Configuration du client', - 'settings.mcp.clientConfigHint': 'Remplacez par un token API de la liste ci-dessous.', + 'settings.mcp.clientConfigHint': 'Remplacez par un token API de la liste ci-dessous. Le chemin vers npx devra peut-être être ajusté selon votre système (ex. C:\\PROGRA~1\\nodejs\\npx.cmd sous Windows).', 'settings.mcp.copy': 'Copier', 'settings.mcp.copied': 'Copié !', 'settings.mcp.apiTokens': 'Tokens API', diff --git a/client/src/i18n/translations/nl.ts b/client/src/i18n/translations/nl.ts index 0aad706..d949a9e 100644 --- a/client/src/i18n/translations/nl.ts +++ b/client/src/i18n/translations/nl.ts @@ -144,7 +144,7 @@ const nl: Record = { 'settings.mcp.title': 'MCP-configuratie', 'settings.mcp.endpoint': 'MCP-eindpunt', 'settings.mcp.clientConfig': 'Clientconfiguratie', - 'settings.mcp.clientConfigHint': 'Vervang door een API-token uit de onderstaande lijst.', + 'settings.mcp.clientConfigHint': 'Vervang door een API-token uit de onderstaande lijst. Het pad naar npx moet mogelijk worden aangepast voor jouw systeem (bijv. C:\\PROGRA~1\\nodejs\\npx.cmd op Windows).', 'settings.mcp.copy': 'Kopiëren', 'settings.mcp.copied': 'Gekopieerd!', 'settings.mcp.apiTokens': 'API-tokens', diff --git a/client/src/i18n/translations/ru.ts b/client/src/i18n/translations/ru.ts index 9a29040..c0b529b 100644 --- a/client/src/i18n/translations/ru.ts +++ b/client/src/i18n/translations/ru.ts @@ -144,7 +144,7 @@ const ru: Record = { 'settings.mcp.title': 'Настройка MCP', 'settings.mcp.endpoint': 'MCP-эндпоинт', 'settings.mcp.clientConfig': 'Конфигурация клиента', - 'settings.mcp.clientConfigHint': 'Замените на API-токен из списка ниже.', + 'settings.mcp.clientConfigHint': 'Замените на API-токен из списка ниже. Путь к npx может потребовать настройки для вашей системы (например, C:\\PROGRA~1\\nodejs\\npx.cmd в Windows).', 'settings.mcp.copy': 'Копировать', 'settings.mcp.copied': 'Скопировано!', 'settings.mcp.apiTokens': 'API-токены', diff --git a/client/src/i18n/translations/zh.ts b/client/src/i18n/translations/zh.ts index 95c884a..35bdbd6 100644 --- a/client/src/i18n/translations/zh.ts +++ b/client/src/i18n/translations/zh.ts @@ -144,7 +144,7 @@ const zh: Record = { 'settings.mcp.title': 'MCP 配置', 'settings.mcp.endpoint': 'MCP 端点', 'settings.mcp.clientConfig': '客户端配置', - 'settings.mcp.clientConfigHint': '将 替换为下方列表中的 API 令牌。', + 'settings.mcp.clientConfigHint': '将 替换为下方列表中的 API 令牌。npx 的路径可能需要根据您的系统进行调整(例如 Windows 上为 C:\\PROGRA~1\\nodejs\\npx.cmd)。', 'settings.mcp.copy': '复制', 'settings.mcp.copied': '已复制!', 'settings.mcp.apiTokens': 'API 令牌', diff --git a/client/src/pages/SettingsPage.tsx b/client/src/pages/SettingsPage.tsx index b9ccf13..e049945 100644 --- a/client/src/pages/SettingsPage.tsx +++ b/client/src/pages/SettingsPage.tsx @@ -168,14 +168,19 @@ export default function SettingsPage(): React.ReactElement { } const mcpEndpoint = `${window.location.origin}/mcp` - const mcpJsonConfig = JSON.stringify({ - mcpServers: { - trek: { - url: mcpEndpoint, - headers: { Authorization: 'Bearer ' } - } + const mcpJsonConfig = `{ + "mcpServers": { + "trek": { + "command": "npx", + "args": [ + "mcp-remote", + "${mcpEndpoint}", + "--header", + "Authorization: Bearer " + ] } - }, null, 2) + } +}` // Map settings const [mapTileUrl, setMapTileUrl] = useState(settings.map_tile_url || '') diff --git a/server/src/db/migrations.ts b/server/src/db/migrations.ts index 21e6972..69462e9 100644 --- a/server/src/db/migrations.ts +++ b/server/src/db/migrations.ts @@ -350,6 +350,11 @@ function runMigrations(db: Database.Database): void { db.prepare("UPDATE addons SET type = 'integration' WHERE id = 'mcp'").run(); } catch {} }, + // Migration 48: Make mcp_tokens.token_hash unique + () => db.exec(` + DROP INDEX IF EXISTS idx_mcp_tokens_hash; + CREATE UNIQUE INDEX idx_mcp_tokens_hash ON mcp_tokens(token_hash) + `), ]; if (currentVersion < migrations.length) { diff --git a/server/src/index.ts b/server/src/index.ts index 9cb17b7..58b649a 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -162,7 +162,9 @@ app.use('/api/backup', backupRoutes); // MCP endpoint (Streamable HTTP transport, per-user auth) import { mcpHandler, closeMcpSessions } from './mcp'; -app.all('/mcp', mcpHandler); +app.post('/mcp', mcpHandler); +app.get('/mcp', mcpHandler); +app.delete('/mcp', mcpHandler); // Serve static files in production if (process.env.NODE_ENV === 'production') { diff --git a/server/src/mcp/index.ts b/server/src/mcp/index.ts index dd21c81..97b3d5d 100644 --- a/server/src/mcp/index.ts +++ b/server/src/mcp/index.ts @@ -10,6 +10,7 @@ import { registerResources } from './resources'; import { registerTools } from './tools'; interface McpSession { + server: McpServer; transport: StreamableHTTPServerTransport; userId: number; lastActivity: number; @@ -18,15 +19,49 @@ interface McpSession { const sessions = new Map(); const SESSION_TTL_MS = 60 * 60 * 1000; // 1 hour +const MAX_SESSIONS_PER_USER = 5; +const RATE_LIMIT_WINDOW_MS = 60 * 1000; // 1 minute +const RATE_LIMIT_MAX = 60; // requests per minute per user + +interface RateLimitEntry { + count: number; + windowStart: number; +} +const rateLimitMap = new Map(); + +function isRateLimited(userId: number): boolean { + const now = Date.now(); + const entry = rateLimitMap.get(userId); + if (!entry || now - entry.windowStart > RATE_LIMIT_WINDOW_MS) { + rateLimitMap.set(userId, { count: 1, windowStart: now }); + return false; + } + entry.count += 1; + return entry.count > RATE_LIMIT_MAX; +} + +function countSessionsForUser(userId: number): number { + const cutoff = Date.now() - SESSION_TTL_MS; + let count = 0; + for (const session of sessions.values()) { + if (session.userId === userId && session.lastActivity >= cutoff) count++; + } + return count; +} const sessionSweepInterval = setInterval(() => { const cutoff = Date.now() - SESSION_TTL_MS; for (const [sid, session] of sessions) { if (session.lastActivity < cutoff) { + try { session.server.close(); } catch { /* ignore */ } try { session.transport.close(); } catch { /* ignore */ } sessions.delete(sid); } } + const rateCutoff = Date.now() - RATE_LIMIT_WINDOW_MS; + for (const [uid, entry] of rateLimitMap) { + if (entry.windowStart < rateCutoff) rateLimitMap.delete(uid); + } }, 10 * 60 * 1000); // sweep every 10 minutes // Prevent the interval from keeping the process alive if nothing else is running @@ -78,6 +113,11 @@ export async function mcpHandler(req: Request, res: Response): Promise { return; } + if (isRateLimited(user.id)) { + res.status(429).json({ error: 'Too many requests. Please slow down.' }); + return; + } + const sessionId = req.headers['mcp-session-id'] as string | undefined; // Resume an existing session @@ -102,6 +142,11 @@ export async function mcpHandler(req: Request, res: Response): Promise { return; } + if (countSessionsForUser(user.id) >= MAX_SESSIONS_PER_USER) { + res.status(429).json({ error: 'Session limit reached. Close an existing session before opening a new one.' }); + return; + } + // Create a new per-user MCP server and session const server = new McpServer({ name: 'trek', version: '1.0.0' }); registerResources(server, user.id); @@ -110,7 +155,7 @@ export async function mcpHandler(req: Request, res: Response): Promise { const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (sid) => { - sessions.set(sid, { transport, userId: user.id, lastActivity: Date.now() }); + sessions.set(sid, { server, transport, userId: user.id, lastActivity: Date.now() }); }, onsessionclosed: (sid) => { sessions.delete(sid); @@ -121,11 +166,24 @@ export async function mcpHandler(req: Request, res: Response): Promise { await transport.handleRequest(req, res, req.body); } +/** Terminate all active MCP sessions for a specific user (e.g. on token revocation). */ +export function revokeUserSessions(userId: number): void { + for (const [sid, session] of sessions) { + if (session.userId === userId) { + try { session.server.close(); } catch { /* ignore */ } + try { session.transport.close(); } catch { /* ignore */ } + sessions.delete(sid); + } + } +} + /** Close all active MCP sessions (call during graceful shutdown). */ export function closeMcpSessions(): void { clearInterval(sessionSweepInterval); for (const [, session] of sessions) { + try { session.server.close(); } catch { /* ignore */ } try { session.transport.close(); } catch { /* ignore */ } } sessions.clear(); + rateLimitMap.clear(); } diff --git a/server/src/mcp/resources.ts b/server/src/mcp/resources.ts index 74d8813..a077419 100644 --- a/server/src/mcp/resources.ts +++ b/server/src/mcp/resources.ts @@ -12,6 +12,11 @@ const TRIP_SELECT = ` JOIN users u ON u.id = t.user_id `; +function parseId(value: string | string[]): number | null { + const n = Number(Array.isArray(value) ? value[0] : value); + return Number.isInteger(n) && n > 0 ? n : null; +} + function accessDenied(uri: string) { return { contents: [{ @@ -55,8 +60,8 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}', { list: undefined }), { description: 'A single trip with metadata and member count' }, async (uri, { tripId }) => { - const id = Number(tripId); - if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const id = parseId(tripId); + if (id === null || !canAccessTrip(id, userId)) return accessDenied(uri.href); const trip = db.prepare(` ${TRIP_SELECT} LEFT JOIN trip_members m ON m.trip_id = t.id AND m.user_id = :userId @@ -72,8 +77,8 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}/days', { list: undefined }), { description: 'Days of a trip with their assigned places' }, async (uri, { tripId }) => { - const id = Number(tripId); - if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const id = parseId(tripId); + if (id === null || !canAccessTrip(id, userId)) return accessDenied(uri.href); const days = db.prepare( 'SELECT * FROM days WHERE trip_id = ? ORDER BY day_number ASC' @@ -113,8 +118,8 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}/places', { list: undefined }), { description: 'All places/POIs saved in a trip' }, async (uri, { tripId }) => { - const id = Number(tripId); - if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const id = parseId(tripId); + if (id === null || !canAccessTrip(id, userId)) return accessDenied(uri.href); const places = db.prepare(` SELECT p.*, c.name as category_name, c.color as category_color, c.icon as category_icon FROM places p @@ -132,8 +137,8 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}/budget', { list: undefined }), { description: 'Budget and expense items for a trip' }, async (uri, { tripId }) => { - const id = Number(tripId); - if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const id = parseId(tripId); + if (id === null || !canAccessTrip(id, userId)) return accessDenied(uri.href); const items = db.prepare( 'SELECT * FROM budget_items WHERE trip_id = ? ORDER BY category ASC, created_at ASC' ).all(id); @@ -147,8 +152,8 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}/packing', { list: undefined }), { description: 'Packing checklist for a trip' }, async (uri, { tripId }) => { - const id = Number(tripId); - if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const id = parseId(tripId); + if (id === null || !canAccessTrip(id, userId)) return accessDenied(uri.href); const items = db.prepare( 'SELECT * FROM packing_items WHERE trip_id = ? ORDER BY sort_order ASC, created_at ASC' ).all(id); @@ -162,8 +167,8 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}/reservations', { list: undefined }), { description: 'Reservations (flights, hotels, restaurants) for a trip' }, async (uri, { tripId }) => { - const id = Number(tripId); - if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const id = parseId(tripId); + if (id === null || !canAccessTrip(id, userId)) return accessDenied(uri.href); const reservations = db.prepare(` SELECT r.*, d.day_number, p.name as place_name FROM reservations r @@ -182,9 +187,9 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}/days/{dayId}/notes', { list: undefined }), { description: 'Notes for a specific day in a trip' }, async (uri, { tripId, dayId }) => { - const tId = Number(tripId); - const dId = Number(dayId); - if (!canAccessTrip(tId, userId)) return accessDenied(uri.href); + const tId = parseId(tripId); + const dId = parseId(dayId); + if (tId === null || dId === null || !canAccessTrip(tId, userId)) return accessDenied(uri.href); const notes = db.prepare( 'SELECT * FROM day_notes WHERE day_id = ? AND trip_id = ? ORDER BY sort_order ASC, created_at ASC' ).all(dId, tId); @@ -198,8 +203,8 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}/accommodations', { list: undefined }), { description: 'Accommodations (hotels, rentals) for a trip with check-in/out details' }, async (uri, { tripId }) => { - const id = Number(tripId); - if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const id = parseId(tripId); + if (id === null || !canAccessTrip(id, userId)) return accessDenied(uri.href); const accommodations = db.prepare(` SELECT da.*, p.name as place_name, p.address as place_address, p.lat, p.lng, ds.day_number as start_day_number, de.day_number as end_day_number @@ -220,8 +225,8 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}/members', { list: undefined }), { description: 'Owner and collaborators of a trip' }, async (uri, { tripId }) => { - const id = Number(tripId); - if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const id = parseId(tripId); + if (id === null || !canAccessTrip(id, userId)) return accessDenied(uri.href); const trip = db.prepare('SELECT user_id FROM trips WHERE id = ?').get(id) as { user_id: number } | undefined; if (!trip) return accessDenied(uri.href); const owner = db.prepare('SELECT id, username, avatar FROM users WHERE id = ?').get(trip.user_id) as Record | undefined; @@ -245,8 +250,8 @@ export function registerResources(server: McpServer, userId: number): void { new ResourceTemplate('trek://trips/{tripId}/collab-notes', { list: undefined }), { description: 'Shared collaborative notes for a trip' }, async (uri, { tripId }) => { - const id = Number(tripId); - if (!canAccessTrip(id, userId)) return accessDenied(uri.href); + const id = parseId(tripId); + if (id === null || !canAccessTrip(id, userId)) return accessDenied(uri.href); const notes = db.prepare(` SELECT cn.*, u.username FROM collab_notes cn diff --git a/server/src/mcp/tools.ts b/server/src/mcp/tools.ts index d73701c..8ea84e7 100644 --- a/server/src/mcp/tools.ts +++ b/server/src/mcp/tools.ts @@ -1,5 +1,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp'; import { z } from 'zod'; +import path from 'path'; +import fs from 'fs'; import { db, canAccessTrip, isOwner } from '../db/database'; import { broadcast } from '../websocket'; @@ -60,14 +62,27 @@ export function registerTools(server: McpServer, userId: number): void { }, async ({ title, description, start_date, end_date, currency }) => { if (isDemoUser(userId)) return demoDenied(); + if (start_date) { + const d = new Date(start_date + 'T00:00:00Z'); + if (isNaN(d.getTime()) || d.toISOString().slice(0, 10) !== start_date) + return { content: [{ type: 'text' as const, text: 'start_date is not a valid calendar date.' }], isError: true }; + } + if (end_date) { + const d = new Date(end_date + 'T00:00:00Z'); + if (isNaN(d.getTime()) || d.toISOString().slice(0, 10) !== end_date) + return { content: [{ type: 'text' as const, text: 'end_date is not a valid calendar date.' }], isError: true }; + } if (start_date && end_date && new Date(end_date) < new Date(start_date)) { return { content: [{ type: 'text' as const, text: 'End date must be after start date.' }], isError: true }; } - const result = db.prepare( - 'INSERT INTO trips (user_id, title, description, start_date, end_date, currency) VALUES (?, ?, ?, ?, ?, ?)' - ).run(userId, title, description || null, start_date || null, end_date || null, currency || 'EUR'); - createDaysForNewTrip(result.lastInsertRowid as number, start_date || null, end_date || null); - const trip = db.prepare('SELECT * FROM trips WHERE id = ?').get(result.lastInsertRowid); + const trip = db.transaction(() => { + const result = db.prepare( + 'INSERT INTO trips (user_id, title, description, start_date, end_date, currency) VALUES (?, ?, ?, ?, ?, ?)' + ).run(userId, title, description || null, start_date || null, end_date || null, currency || 'EUR'); + const tripId = result.lastInsertRowid as number; + createDaysForNewTrip(tripId, start_date || null, end_date || null); + return db.prepare('SELECT * FROM trips WHERE id = ?').get(tripId); + })(); return ok({ trip }); } ); @@ -88,6 +103,16 @@ export function registerTools(server: McpServer, userId: number): void { async ({ tripId, title, description, start_date, end_date, currency }) => { if (isDemoUser(userId)) return demoDenied(); if (!canAccessTrip(tripId, userId)) return noAccess(); + if (start_date) { + const d = new Date(start_date + 'T00:00:00Z'); + if (isNaN(d.getTime()) || d.toISOString().slice(0, 10) !== start_date) + return { content: [{ type: 'text' as const, text: 'start_date is not a valid calendar date.' }], isError: true }; + } + if (end_date) { + const d = new Date(end_date + 'T00:00:00Z'); + if (isNaN(d.getTime()) || d.toISOString().slice(0, 10) !== end_date) + return { content: [{ type: 'text' as const, text: 'end_date is not a valid calendar date.' }], isError: true }; + } const existing = db.prepare('SELECT * FROM trips WHERE id = ?').get(tripId) as Record & { title: string; description: string; start_date: string; end_date: string; currency: string } | undefined; if (!existing) return noAccess(); db.prepare( @@ -122,6 +147,31 @@ export function registerTools(server: McpServer, userId: number): void { } ); + server.registerTool( + 'list_trips', + { + description: 'List all trips the current user owns or is a member of. Use this for trip discovery before calling get_trip_summary.', + inputSchema: { + include_archived: z.boolean().optional().describe('Include archived trips (default false)'), + }, + }, + async ({ include_archived }) => { + const trips = db.prepare(` + SELECT t.*, u.username as owner_username, + (SELECT COUNT(*) FROM days d WHERE d.trip_id = t.id) as day_count, + (SELECT COUNT(*) FROM places p WHERE p.trip_id = t.id) as place_count, + CASE WHEN t.user_id = ? THEN 1 ELSE 0 END as is_owner + FROM trips t + JOIN users u ON u.id = t.user_id + LEFT JOIN trip_members tm ON tm.trip_id = t.id AND tm.user_id = ? + WHERE (t.user_id = ? OR tm.user_id IS NOT NULL) + AND (? = 1 OR t.is_archived = 0) + ORDER BY t.updated_at DESC + `).all(userId, userId, userId, include_archived ? 1 : 0); + return ok({ trips }); + } + ); + // --- PLACES --- server.registerTool( @@ -397,27 +447,66 @@ export function registerTools(server: McpServer, userId: number): void { server.registerTool( 'create_reservation', { - description: 'Add a reservation (flight, hotel, restaurant, etc.) to a trip.', + description: 'Recommend a reservation for a trip. Created as pending — the user must confirm it. Linking: hotel → use place_id + start_day_id + end_day_id (all three required to create the accommodation link); restaurant/train/car/cruise/event/tour/activity/other → use assignment_id; flight → no linking.', inputSchema: { tripId: z.number().int().positive(), title: z.string().min(1).max(200), - type: z.enum(['flight', 'hotel', 'restaurant', 'activity', 'other']), + type: z.enum(['flight', 'hotel', 'restaurant', 'train', 'car', 'cruise', 'event', 'tour', 'activity', 'other']), reservation_time: z.string().optional().describe('ISO 8601 datetime or time string'), location: z.string().max(500).optional(), confirmation_number: z.string().max(100).optional(), notes: z.string().max(1000).optional(), day_id: z.number().int().positive().optional(), - place_id: z.number().int().positive().optional(), + place_id: z.number().int().positive().optional().describe('Hotel place to link (hotel type only)'), + start_day_id: z.number().int().positive().optional().describe('Check-in day (hotel type only; requires place_id and end_day_id)'), + end_day_id: z.number().int().positive().optional().describe('Check-out day (hotel type only; requires place_id and start_day_id)'), + assignment_id: z.number().int().positive().optional().describe('Link to a day assignment (restaurant, train, car, cruise, event, tour, activity, other)'), }, }, - async ({ tripId, title, type, reservation_time, location, confirmation_number, notes, day_id, place_id }) => { + async ({ tripId, title, type, reservation_time, location, confirmation_number, notes, day_id, place_id, start_day_id, end_day_id, assignment_id }) => { if (isDemoUser(userId)) return demoDenied(); if (!canAccessTrip(tripId, userId)) return noAccess(); - const result = db.prepare(` - INSERT INTO reservations (trip_id, title, type, reservation_time, location, confirmation_number, notes, day_id, place_id, status) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(tripId, title, type, reservation_time || null, location || null, confirmation_number || null, notes || null, day_id || null, place_id || null, 'confirmed'); - const reservation = db.prepare('SELECT * FROM reservations WHERE id = ?').get(result.lastInsertRowid); + + // Validate that all referenced IDs belong to this trip + if (day_id) { + if (!db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(day_id, tripId)) + return { content: [{ type: 'text' as const, text: 'day_id does not belong to this trip.' }], isError: true }; + } + if (place_id) { + if (!db.prepare('SELECT id FROM places WHERE id = ? AND trip_id = ?').get(place_id, tripId)) + return { content: [{ type: 'text' as const, text: 'place_id does not belong to this trip.' }], isError: true }; + } + if (start_day_id) { + if (!db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(start_day_id, tripId)) + return { content: [{ type: 'text' as const, text: 'start_day_id does not belong to this trip.' }], isError: true }; + } + if (end_day_id) { + if (!db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(end_day_id, tripId)) + return { content: [{ type: 'text' as const, text: 'end_day_id does not belong to this trip.' }], isError: true }; + } + if (assignment_id) { + if (!db.prepare('SELECT da.id FROM day_assignments da JOIN days d ON da.day_id = d.id WHERE da.id = ? AND d.trip_id = ?').get(assignment_id, tripId)) + return { content: [{ type: 'text' as const, text: 'assignment_id does not belong to this trip.' }], isError: true }; + } + + const reservation = db.transaction(() => { + let accommodationId: number | null = null; + if (type === 'hotel' && place_id && start_day_id && end_day_id) { + const accResult = db.prepare( + 'INSERT INTO day_accommodations (trip_id, place_id, start_day_id, end_day_id, confirmation) VALUES (?, ?, ?, ?, ?)' + ).run(tripId, place_id, start_day_id, end_day_id, confirmation_number || null); + accommodationId = accResult.lastInsertRowid as number; + } + const result = db.prepare(` + INSERT INTO reservations (trip_id, title, type, reservation_time, location, confirmation_number, notes, day_id, place_id, assignment_id, accommodation_id, status) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `).run(tripId, title, type, reservation_time || null, location || null, confirmation_number || null, notes || null, day_id || null, place_id || null, assignment_id || null, accommodationId, 'pending'); + return db.prepare('SELECT * FROM reservations WHERE id = ?').get(result.lastInsertRowid); + })(); + + if (type === 'hotel' && place_id && start_day_id && end_day_id) { + broadcast(tripId, 'accommodation:created', {}); + } broadcast(tripId, 'reservation:created', { reservation }); return ok({ reservation }); } @@ -435,16 +524,111 @@ export function registerTools(server: McpServer, userId: number): void { async ({ tripId, reservationId }) => { if (isDemoUser(userId)) return demoDenied(); if (!canAccessTrip(tripId, userId)) return noAccess(); - const res = db.prepare('SELECT id FROM reservations WHERE id = ? AND trip_id = ?').get(reservationId, tripId); - if (!res) return { content: [{ type: 'text' as const, text: 'Reservation not found.' }], isError: true }; - db.prepare('DELETE FROM reservations WHERE id = ?').run(reservationId); + const reservation = db.prepare('SELECT id, accommodation_id FROM reservations WHERE id = ? AND trip_id = ?').get(reservationId, tripId) as { id: number; accommodation_id: number | null } | undefined; + if (!reservation) return { content: [{ type: 'text' as const, text: 'Reservation not found.' }], isError: true }; + db.transaction(() => { + if (reservation.accommodation_id) { + db.prepare('DELETE FROM day_accommodations WHERE id = ?').run(reservation.accommodation_id); + } + db.prepare('DELETE FROM reservations WHERE id = ?').run(reservationId); + })(); + if (reservation.accommodation_id) { + broadcast(tripId, 'accommodation:deleted', { accommodationId: reservation.accommodation_id }); + } broadcast(tripId, 'reservation:deleted', { reservationId }); return ok({ success: true }); } ); + server.registerTool( + 'link_hotel_accommodation', + { + description: 'Set or update the check-in/check-out day links for a hotel reservation. Creates or updates the accommodation record that ties the reservation to a place and a date range. Use the day IDs from get_trip_summary.', + inputSchema: { + tripId: z.number().int().positive(), + reservationId: z.number().int().positive(), + place_id: z.number().int().positive().describe('The hotel place to link'), + start_day_id: z.number().int().positive().describe('Check-in day ID'), + end_day_id: z.number().int().positive().describe('Check-out day ID'), + }, + }, + async ({ tripId, reservationId, place_id, start_day_id, end_day_id }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const reservation = db.prepare('SELECT * FROM reservations WHERE id = ? AND trip_id = ?').get(reservationId, tripId) as Record | undefined; + if (!reservation) return { content: [{ type: 'text' as const, text: 'Reservation not found.' }], isError: true }; + if (reservation.type !== 'hotel') return { content: [{ type: 'text' as const, text: 'Reservation is not of type hotel.' }], isError: true }; + + if (!db.prepare('SELECT id FROM places WHERE id = ? AND trip_id = ?').get(place_id, tripId)) + return { content: [{ type: 'text' as const, text: 'place_id does not belong to this trip.' }], isError: true }; + if (!db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(start_day_id, tripId)) + return { content: [{ type: 'text' as const, text: 'start_day_id does not belong to this trip.' }], isError: true }; + if (!db.prepare('SELECT id FROM days WHERE id = ? AND trip_id = ?').get(end_day_id, tripId)) + return { content: [{ type: 'text' as const, text: 'end_day_id does not belong to this trip.' }], isError: true }; + + let accommodationId = reservation.accommodation_id as number | null; + const isNewAccommodation = !accommodationId; + db.transaction(() => { + if (accommodationId) { + db.prepare('UPDATE day_accommodations SET place_id = ?, start_day_id = ?, end_day_id = ? WHERE id = ?') + .run(place_id, start_day_id, end_day_id, accommodationId); + } else { + const accResult = db.prepare( + 'INSERT INTO day_accommodations (trip_id, place_id, start_day_id, end_day_id, confirmation) VALUES (?, ?, ?, ?, ?)' + ).run(tripId, place_id, start_day_id, end_day_id, reservation.confirmation_number || null); + accommodationId = accResult.lastInsertRowid as number; + } + db.prepare('UPDATE reservations SET place_id = ?, accommodation_id = ? WHERE id = ?') + .run(place_id, accommodationId, reservationId); + })(); + broadcast(tripId, isNewAccommodation ? 'accommodation:created' : 'accommodation:updated', {}); + const updated = db.prepare('SELECT * FROM reservations WHERE id = ?').get(reservationId); + broadcast(tripId, 'reservation:updated', { reservation: updated }); + return ok({ reservation: updated, accommodation_id: accommodationId }); + } + ); + // --- DAYS --- + server.registerTool( + 'update_assignment_time', + { + description: 'Set the start and/or end time for a place assignment on a day (e.g. "09:00", "11:30"). Pass null to clear a time.', + inputSchema: { + tripId: z.number().int().positive(), + assignmentId: z.number().int().positive(), + place_time: z.string().max(50).nullable().optional().describe('Start time (e.g. "09:00"), or null to clear'), + end_time: z.string().max(50).nullable().optional().describe('End time (e.g. "11:00"), or null to clear'), + }, + }, + async ({ tripId, assignmentId, place_time, end_time }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const assignment = db.prepare(` + SELECT da.* FROM day_assignments da + JOIN days d ON da.day_id = d.id + WHERE da.id = ? AND d.trip_id = ? + `).get(assignmentId, tripId) as Record | undefined; + if (!assignment) return { content: [{ type: 'text' as const, text: 'Assignment not found.' }], isError: true }; + db.prepare('UPDATE day_assignments SET assignment_time = ?, assignment_end_time = ? WHERE id = ?') + .run( + place_time !== undefined ? place_time : assignment.assignment_time, + end_time !== undefined ? end_time : assignment.assignment_end_time, + assignmentId + ); + const updated = db.prepare(` + SELECT da.id, da.day_id, da.order_index, da.notes as assignment_notes, + da.assignment_time, da.assignment_end_time, + p.id as place_id, p.name, p.address + FROM day_assignments da + JOIN places p ON da.place_id = p.id + WHERE da.id = ? + `).get(assignmentId); + broadcast(tripId, 'assignment:updated', { assignment: updated }); + return ok({ assignment: updated }); + } + ); + server.registerTool( 'update_day', { @@ -472,28 +656,41 @@ export function registerTools(server: McpServer, userId: number): void { server.registerTool( 'update_reservation', { - description: 'Update an existing reservation in a trip.', + description: 'Update an existing reservation in a trip. Use status "confirmed" to confirm a pending recommendation, or "pending" to revert it. Linking: hotel → use place_id to link to an accommodation place; restaurant/train/car/cruise/event/tour/activity/other → use assignment_id to link to a day assignment; flight → no linking.', inputSchema: { tripId: z.number().int().positive(), reservationId: z.number().int().positive(), title: z.string().min(1).max(200).optional(), - type: z.enum(['flight', 'hotel', 'restaurant', 'activity', 'other']).optional(), + type: z.enum(['flight', 'hotel', 'restaurant', 'train', 'car', 'cruise', 'event', 'tour', 'activity', 'other']).optional(), reservation_time: z.string().optional().describe('ISO 8601 datetime or time string'), location: z.string().max(500).optional(), confirmation_number: z.string().max(100).optional(), notes: z.string().max(1000).optional(), status: z.enum(['pending', 'confirmed', 'cancelled']).optional(), + place_id: z.number().int().positive().nullable().optional().describe('Link to a place (use for hotel type), or null to unlink'), + assignment_id: z.number().int().positive().nullable().optional().describe('Link to a day assignment (use for restaurant, train, car, cruise, event, tour, activity, other), or null to unlink'), }, }, - async ({ tripId, reservationId, title, type, reservation_time, location, confirmation_number, notes, status }) => { + async ({ tripId, reservationId, title, type, reservation_time, location, confirmation_number, notes, status, place_id, assignment_id }) => { if (isDemoUser(userId)) return demoDenied(); if (!canAccessTrip(tripId, userId)) return noAccess(); const existing = db.prepare('SELECT * FROM reservations WHERE id = ? AND trip_id = ?').get(reservationId, tripId) as Record | undefined; if (!existing) return { content: [{ type: 'text' as const, text: 'Reservation not found.' }], isError: true }; + + if (place_id != null) { + if (!db.prepare('SELECT id FROM places WHERE id = ? AND trip_id = ?').get(place_id, tripId)) + return { content: [{ type: 'text' as const, text: 'place_id does not belong to this trip.' }], isError: true }; + } + if (assignment_id != null) { + if (!db.prepare('SELECT da.id FROM day_assignments da JOIN days d ON da.day_id = d.id WHERE da.id = ? AND d.trip_id = ?').get(assignment_id, tripId)) + return { content: [{ type: 'text' as const, text: 'assignment_id does not belong to this trip.' }], isError: true }; + } + db.prepare(` UPDATE reservations SET title = ?, type = ?, reservation_time = ?, location = ?, - confirmation_number = ?, notes = ?, status = ? + confirmation_number = ?, notes = ?, status = ?, + place_id = ?, assignment_id = ? WHERE id = ? `).run( title ?? existing.title, @@ -503,6 +700,8 @@ export function registerTools(server: McpServer, userId: number): void { confirmation_number !== undefined ? confirmation_number : existing.confirmation_number, notes !== undefined ? notes : existing.notes, status ?? existing.status, + place_id !== undefined ? place_id : existing.place_id, + assignment_id !== undefined ? assignment_id : existing.assignment_id, reservationId ); const updated = db.prepare('SELECT * FROM reservations WHERE id = ?').get(reservationId); @@ -590,7 +789,7 @@ export function registerTools(server: McpServer, userId: number): void { inputSchema: { tripId: z.number().int().positive(), dayId: z.number().int().positive(), - assignmentIds: z.array(z.number().int().positive()).min(1).describe('Assignment IDs in desired display order'), + assignmentIds: z.array(z.number().int().positive()).min(1).max(200).describe('Assignment IDs in desired display order'), }, }, async ({ tripId, dayId, assignmentIds }) => { @@ -613,7 +812,7 @@ export function registerTools(server: McpServer, userId: number): void { server.registerTool( 'get_trip_summary', { - description: 'Get a full denormalized summary of a trip in a single call: metadata, members, days with assignments, accommodations, budget totals, packing stats, and upcoming reservations. Use this as a context loader before planning or modifying a trip.', + description: 'Get a full denormalized summary of a trip in a single call: metadata, members, days with assignments and notes, accommodations, budget totals, packing stats, reservations, and collab notes. Use this as a context loader before planning or modifying a trip.', inputSchema: { tripId: z.number().int().positive(), }, @@ -654,7 +853,24 @@ export function registerTools(server: McpServer, userId: number): void { assignmentsByDay[a.day_id].push(a); } } - const daysWithAssignments = days.map(d => ({ ...d, assignments: assignmentsByDay[d.id] || [] })); + // Day notes + const dayNotesByDay: Record = {}; + if (dayIds.length > 0) { + const placeholders = dayIds.map(() => '?').join(','); + const dayNotes = db.prepare(` + SELECT * FROM day_notes WHERE day_id IN (${placeholders}) ORDER BY sort_order ASC + `).all(...dayIds) as (Record & { day_id: number })[]; + for (const n of dayNotes) { + if (!dayNotesByDay[n.day_id]) dayNotesByDay[n.day_id] = []; + dayNotesByDay[n.day_id].push(n); + } + } + + const daysWithAssignments = days.map(d => ({ + ...d, + assignments: assignmentsByDay[d.id] || [], + notes: dayNotesByDay[d.id] || [], + })); // Accommodations const accommodations = db.prepare(` @@ -688,6 +904,11 @@ export function registerTools(server: McpServer, userId: number): void { ORDER BY r.reservation_time ASC, r.created_at ASC `).all(tripId); + // Collab notes + const collabNotes = db.prepare( + 'SELECT * FROM collab_notes WHERE trip_id = ? ORDER BY pinned DESC, updated_at DESC' + ).all(tripId); + return ok({ trip, members: { owner, collaborators: members }, @@ -696,6 +917,7 @@ export function registerTools(server: McpServer, userId: number): void { budget: { ...budgetStats, currency: trip.currency }, packing: packingStats, reservations, + collab_notes: collabNotes, }); } ); @@ -800,6 +1022,78 @@ export function registerTools(server: McpServer, userId: number): void { } ); + server.registerTool( + 'update_collab_note', + { + description: 'Edit an existing collaborative note on a trip.', + inputSchema: { + tripId: z.number().int().positive(), + noteId: z.number().int().positive(), + title: z.string().min(1).max(200).optional(), + content: z.string().max(10000).optional(), + category: z.string().max(100).optional(), + color: z.string().regex(/^#[0-9a-fA-F]{6}$/).optional().describe('Hex color for the note card'), + pinned: z.boolean().optional().describe('Pin the note to the top'), + }, + }, + async ({ tripId, noteId, title, content, category, color, pinned }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const existing = db.prepare('SELECT * FROM collab_notes WHERE id = ? AND trip_id = ?').get(noteId, tripId); + if (!existing) return { content: [{ type: 'text' as const, text: 'Note not found.' }], isError: true }; + db.prepare(` + UPDATE collab_notes SET + title = CASE WHEN ? THEN ? ELSE title END, + content = CASE WHEN ? THEN ? ELSE content END, + category = CASE WHEN ? THEN ? ELSE category END, + color = CASE WHEN ? THEN ? ELSE color END, + pinned = CASE WHEN ? THEN ? ELSE pinned END, + updated_at = CURRENT_TIMESTAMP + WHERE id = ? + `).run( + title !== undefined ? 1 : 0, title !== undefined ? title : null, + content !== undefined ? 1 : 0, content !== undefined ? content : null, + category !== undefined ? 1 : 0, category !== undefined ? category : null, + color !== undefined ? 1 : 0, color !== undefined ? color : null, + pinned !== undefined ? 1 : 0, pinned !== undefined ? (pinned ? 1 : 0) : null, + noteId + ); + const note = db.prepare('SELECT * FROM collab_notes WHERE id = ?').get(noteId); + broadcast(tripId, 'collab:note:updated', { note }); + return ok({ note }); + } + ); + + server.registerTool( + 'delete_collab_note', + { + description: 'Delete a collaborative note from a trip.', + inputSchema: { + tripId: z.number().int().positive(), + noteId: z.number().int().positive(), + }, + }, + async ({ tripId, noteId }) => { + if (isDemoUser(userId)) return demoDenied(); + if (!canAccessTrip(tripId, userId)) return noAccess(); + const existing = db.prepare('SELECT id FROM collab_notes WHERE id = ? AND trip_id = ?').get(noteId, tripId); + if (!existing) return { content: [{ type: 'text' as const, text: 'Note not found.' }], isError: true }; + const noteFiles = db.prepare('SELECT filename FROM trip_files WHERE note_id = ?').all(noteId) as { filename: string }[]; + const uploadsDir = path.resolve(__dirname, '../../uploads'); + for (const f of noteFiles) { + const resolved = path.resolve(path.join(uploadsDir, 'files', f.filename)); + if (!resolved.startsWith(uploadsDir)) continue; + try { fs.unlinkSync(resolved); } catch {} + } + db.transaction(() => { + db.prepare('DELETE FROM trip_files WHERE note_id = ?').run(noteId); + db.prepare('DELETE FROM collab_notes WHERE id = ?').run(noteId); + })(); + broadcast(tripId, 'collab:note:deleted', { noteId }); + return ok({ success: true }); + } + ); + // --- DAY NOTES --- server.registerTool( diff --git a/server/src/routes/admin.ts b/server/src/routes/admin.ts index ca4f30c..c0a70ca 100644 --- a/server/src/routes/admin.ts +++ b/server/src/routes/admin.ts @@ -7,6 +7,7 @@ import fs from 'fs'; import { db } from '../db/database'; import { authenticate, adminOnly } from '../middleware/auth'; import { AuthRequest, User, Addon } from '../types'; +import { revokeUserSessions } from '../mcp'; const router = express.Router(); @@ -422,9 +423,10 @@ router.get('/mcp-tokens', (req: Request, res: Response) => { }); router.delete('/mcp-tokens/:id', (req: Request, res: Response) => { - const token = db.prepare('SELECT id FROM mcp_tokens WHERE id = ?').get(req.params.id); + const token = db.prepare('SELECT id, user_id FROM mcp_tokens WHERE id = ?').get(req.params.id) as { id: number; user_id: number } | undefined; if (!token) return res.status(404).json({ error: 'Token not found' }); db.prepare('DELETE FROM mcp_tokens WHERE id = ?').run(req.params.id); + revokeUserSessions(token.user_id); res.json({ success: true }); }); diff --git a/server/src/routes/auth.ts b/server/src/routes/auth.ts index 7b956f0..a0994fb 100644 --- a/server/src/routes/auth.ts +++ b/server/src/routes/auth.ts @@ -13,6 +13,7 @@ import { authenticate, demoUploadBlock } from '../middleware/auth'; import { JWT_SECRET } from '../config'; import { encryptMfaSecret, decryptMfaSecret } from '../services/mfaCrypto'; import { randomBytes, createHash } from 'crypto'; +import { revokeUserSessions } from '../mcp'; import { AuthRequest, User } from '../types'; authenticator.options = { window: 1 }; @@ -720,6 +721,7 @@ router.post('/mcp-tokens', authenticate, rateLimiter(5, RATE_LIMIT_WINDOW), (req const authReq = req as AuthRequest; const { name } = req.body; if (!name?.trim()) return res.status(400).json({ error: 'Token name is required' }); + if (name.trim().length > 100) return res.status(400).json({ error: 'Token name must be 100 characters or less' }); const tokenCount = (db.prepare('SELECT COUNT(*) as count FROM mcp_tokens WHERE user_id = ?').get(authReq.user.id) as { count: number }).count; if (tokenCount >= 10) return res.status(400).json({ error: 'Maximum of 10 tokens per user reached' }); @@ -745,6 +747,7 @@ router.delete('/mcp-tokens/:id', authenticate, (req: Request, res: Response) => const token = db.prepare('SELECT id FROM mcp_tokens WHERE id = ? AND user_id = ?').get(id, authReq.user.id); if (!token) return res.status(404).json({ error: 'Token not found' }); db.prepare('DELETE FROM mcp_tokens WHERE id = ?').run(id); + revokeUserSessions(authReq.user.id); res.json({ success: true }); }); diff --git a/server/src/routes/files.ts b/server/src/routes/files.ts index a48c2d4..36a3e35 100644 --- a/server/src/routes/files.ts +++ b/server/src/routes/files.ts @@ -85,7 +85,7 @@ router.get('/', authenticate, (req: Request, res: Response) => { // Get all file_links for this trip's files const fileIds = files.map(f => f.id); - let linksMap: Record = {}; + let linksMap: Record = {}; if (fileIds.length > 0) { const placeholders = fileIds.map(() => '?').join(','); const links = db.prepare(`SELECT file_id, reservation_id, place_id FROM file_links WHERE file_id IN (${placeholders})`).all(...fileIds) as { file_id: number; reservation_id: number | null; place_id: number | null }[]; diff --git a/server/tsconfig.json b/server/tsconfig.json index 25e99aa..b443a5b 100644 --- a/server/tsconfig.json +++ b/server/tsconfig.json @@ -9,7 +9,6 @@ "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, - "moduleResolution": "bundler", "resolveJsonModule": true, "declaration": false, "sourceMap": true, From 393e99201a898435afa8e57d56d25434270bafe1 Mon Sep 17 00:00:00 2001 From: jubnl Date: Mon, 30 Mar 2026 05:35:14 +0200 Subject: [PATCH 11/63] Add documentation --- MCP.md | 207 ++++++++++++++++++++------------- docs/TREK-Generated-by-MCP.pdf | Bin 0 -> 186726 bytes docs/screenshot-trip-mcp.png | Bin 0 -> 1318736 bytes 3 files changed, 126 insertions(+), 81 deletions(-) create mode 100644 docs/TREK-Generated-by-MCP.pdf create mode 100644 docs/screenshot-trip-mcp.png diff --git a/MCP.md b/MCP.md index 2c0e3fe..74f0f2b 100644 --- a/MCP.md +++ b/MCP.md @@ -1,6 +1,8 @@ # MCP Integration -TREK includes a built-in [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server that lets AI assistants — such as Claude Desktop, Cursor, or any MCP-compatible client — read and modify your trip data through a structured API. +TREK includes a built-in [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server that lets AI +assistants — such as Claude Desktop, Cursor, or any MCP-compatible client — read and modify your trip data through a +structured API. > **Note:** MCP is an addon that must be enabled by your TREK administrator before it becomes available. @@ -18,7 +20,8 @@ TREK includes a built-in [Model Context Protocol](https://modelcontextprotocol.i ### 1. Enable the MCP addon (admin) -An administrator must first enable the MCP addon from the **Admin Panel > Addons** page. Until enabled, the `/mcp` endpoint returns `403 Forbidden` and the MCP section does not appear in user settings. +An administrator must first enable the MCP addon from the **Admin Panel > Addons** page. Until enabled, the `/mcp` +endpoint returns `403 Forbidden` and the MCP section does not appear in user settings. ### 2. Create an API token @@ -32,7 +35,8 @@ Each user can create up to **10 tokens**. ### 3. Configure your MCP client -The Settings page shows a ready-to-copy client configuration snippet. For **Claude Desktop**, add the following to your `claude_desktop_config.json`: +The Settings page shows a ready-to-copy client configuration snippet. For **Claude Desktop**, add the following to your +`claude_desktop_config.json`: ```json { @@ -56,139 +60,180 @@ The Settings page shows a ready-to-copy client configuration snippet. For **Clau ## Limitations & Important Notes -| Limitation | Details | -|---|---| -| **Admin activation required** | The MCP addon must be enabled by an admin before any user can access it. | -| **Per-user scoping** | Each MCP session is scoped to the authenticated user. You can only access trips you own or are a member of. | -| **No image uploads** | Cover images cannot be set through MCP. Use the web UI to upload trip covers. | +| Limitation | Details | +|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| +| **Admin activation required** | The MCP addon must be enabled by an admin before any user can access it. | +| **Per-user scoping** | Each MCP session is scoped to the authenticated user. You can only access trips you own or are a member of. | +| **No image uploads** | Cover images cannot be set through MCP. Use the web UI to upload trip covers. | | **Reservations are created as pending** | When the AI creates a reservation, it starts with `pending` status. You must confirm it manually or ask the AI to set the status to `confirmed`. | -| **Demo mode restrictions** | If TREK is running in demo mode, all write operations through MCP are blocked. | -| **Rate limiting** | 60 requests per minute per user. Exceeding this returns a `429` error. | -| **Session limits** | Maximum 5 concurrent MCP sessions per user. Sessions expire after 1 hour of inactivity. | -| **Token limits** | Maximum 10 API tokens per user. | -| **Token revocation** | Deleting a token immediately terminates all active MCP sessions for that user. | -| **Real-time sync** | Changes made through MCP are broadcast to all connected clients in real-time via WebSocket, just like changes made through the web UI. | +| **Demo mode restrictions** | If TREK is running in demo mode, all write operations through MCP are blocked. | +| **Rate limiting** | 60 requests per minute per user. Exceeding this returns a `429` error. | +| **Session limits** | Maximum 5 concurrent MCP sessions per user. Sessions expire after 1 hour of inactivity. | +| **Token limits** | Maximum 10 API tokens per user. | +| **Token revocation** | Deleting a token immediately terminates all active MCP sessions for that user. | +| **Real-time sync** | Changes made through MCP are broadcast to all connected clients in real-time via WebSocket, just like changes made through the web UI. | --- ## Resources (read-only) -Resources provide read-only access to your TREK data. MCP clients can read these to understand the current state before making changes. +Resources provide read-only access to your TREK data. MCP clients can read these to understand the current state before +making changes. -| Resource | URI | Description | -|---|---|---| -| Trips | `trek://trips` | All trips you own or are a member of | -| Trip Detail | `trek://trips/{tripId}` | Single trip with metadata and member count | -| Days | `trek://trips/{tripId}/days` | Days of a trip with their assigned places | -| Places | `trek://trips/{tripId}/places` | All places/POIs saved in a trip | -| Budget | `trek://trips/{tripId}/budget` | Budget and expense items | -| Packing | `trek://trips/{tripId}/packing` | Packing checklist | -| Reservations | `trek://trips/{tripId}/reservations` | Flights, hotels, restaurants, etc. | -| Day Notes | `trek://trips/{tripId}/days/{dayId}/notes` | Notes for a specific day | -| Accommodations | `trek://trips/{tripId}/accommodations` | Hotels/rentals with check-in/out details | -| Members | `trek://trips/{tripId}/members` | Owner and collaborators | -| Collab Notes | `trek://trips/{tripId}/collab-notes` | Shared collaborative notes | -| Categories | `trek://categories` | Available place categories (for use when creating places) | -| Bucket List | `trek://bucket-list` | Your personal travel bucket list | -| Visited Countries | `trek://visited-countries` | Countries marked as visited in Atlas | +| Resource | URI | Description | +|-------------------|--------------------------------------------|-----------------------------------------------------------| +| Trips | `trek://trips` | All trips you own or are a member of | +| Trip Detail | `trek://trips/{tripId}` | Single trip with metadata and member count | +| Days | `trek://trips/{tripId}/days` | Days of a trip with their assigned places | +| Places | `trek://trips/{tripId}/places` | All places/POIs saved in a trip | +| Budget | `trek://trips/{tripId}/budget` | Budget and expense items | +| Packing | `trek://trips/{tripId}/packing` | Packing checklist | +| Reservations | `trek://trips/{tripId}/reservations` | Flights, hotels, restaurants, etc. | +| Day Notes | `trek://trips/{tripId}/days/{dayId}/notes` | Notes for a specific day | +| Accommodations | `trek://trips/{tripId}/accommodations` | Hotels/rentals with check-in/out details | +| Members | `trek://trips/{tripId}/members` | Owner and collaborators | +| Collab Notes | `trek://trips/{tripId}/collab-notes` | Shared collaborative notes | +| Categories | `trek://categories` | Available place categories (for use when creating places) | +| Bucket List | `trek://bucket-list` | Your personal travel bucket list | +| Visited Countries | `trek://visited-countries` | Countries marked as visited in Atlas | --- ## Tools (read-write) -TREK exposes **34 tools** organized by feature area. Use `get_trip_summary` as a starting point — it returns everything about a trip in a single call. +TREK exposes **34 tools** organized by feature area. Use `get_trip_summary` as a starting point — it returns everything +about a trip in a single call. ### Trip Summary -| Tool | Description | -|---|---| +| Tool | Description | +|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `get_trip_summary` | Full denormalized snapshot of a trip: metadata, members, days with assignments and notes, accommodations, budget totals, packing stats, reservations, and collab notes. Use this as your context loader. | ### Trips -| Tool | Description | -|---|---| -| `list_trips` | List all trips you own or are a member of. Supports `include_archived` flag. | +| Tool | Description | +|---------------|---------------------------------------------------------------------------------------------| +| `list_trips` | List all trips you own or are a member of. Supports `include_archived` flag. | | `create_trip` | Create a new trip with title, dates, currency. Days are auto-generated from the date range. | -| `update_trip` | Update a trip's title, description, dates, or currency. | -| `delete_trip` | Delete a trip. **Owner only.** | +| `update_trip` | Update a trip's title, description, dates, or currency. | +| `delete_trip` | Delete a trip. **Owner only.** | ### Places -| Tool | Description | -|---|---| +| Tool | Description | +|----------------|-----------------------------------------------------------------------------------| | `create_place` | Add a place/POI with name, coordinates, address, category, notes, website, phone. | -| `update_place` | Update any field of an existing place. | -| `delete_place` | Remove a place from a trip. | +| `update_place` | Update any field of an existing place. | +| `delete_place` | Remove a place from a trip. | ### Day Planning -| Tool | Description | -|---|---| -| `assign_place_to_day` | Pin a place to a specific day in the itinerary. | -| `unassign_place` | Remove a place assignment from a day. | +| Tool | Description | +|---------------------------|-------------------------------------------------------------------------------| +| `assign_place_to_day` | Pin a place to a specific day in the itinerary. | +| `unassign_place` | Remove a place assignment from a day. | | `reorder_day_assignments` | Reorder places within a day by providing assignment IDs in the desired order. | -| `update_assignment_time` | Set start/end times for a place assignment (e.g. "09:00" – "11:30"). | -| `update_day` | Set or clear a day's title (e.g. "Arrival in Paris", "Free day"). | +| `update_assignment_time` | Set start/end times for a place assignment (e.g. "09:00" – "11:30"). | +| `update_day` | Set or clear a day's title (e.g. "Arrival in Paris", "Free day"). | ### Reservations -| Tool | Description | -|---|---| -| `create_reservation` | Create a pending reservation. Supports flights, hotels, restaurants, trains, cars, cruises, events, tours, activities, and other types. Hotels can be linked to places and check-in/out days. | -| `update_reservation` | Update any field including status (`pending` / `confirmed` / `cancelled`). | -| `delete_reservation` | Delete a reservation and its linked accommodation record if applicable. | -| `link_hotel_accommodation` | Set or update a hotel reservation's check-in/out day links and associated place. | +| Tool | Description | +|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `create_reservation` | Create a pending reservation. Supports flights, hotels, restaurants, trains, cars, cruises, events, tours, activities, and other types. Hotels can be linked to places and check-in/out days. | +| `update_reservation` | Update any field including status (`pending` / `confirmed` / `cancelled`). | +| `delete_reservation` | Delete a reservation and its linked accommodation record if applicable. | +| `link_hotel_accommodation` | Set or update a hotel reservation's check-in/out day links and associated place. | ### Budget -| Tool | Description | -|---|---| -| `create_budget_item` | Add an expense with name, category, and price. | +| Tool | Description | +|----------------------|--------------------------------------------------------------| +| `create_budget_item` | Add an expense with name, category, and price. | | `update_budget_item` | Update an expense's details, split (persons/days), or notes. | -| `delete_budget_item` | Remove a budget item. | +| `delete_budget_item` | Remove a budget item. | ### Packing -| Tool | Description | -|---|---| +| Tool | Description | +|-----------------------|--------------------------------------------------------------| | `create_packing_item` | Add an item to the packing checklist with optional category. | -| `update_packing_item` | Rename an item or change its category. | -| `toggle_packing_item` | Check or uncheck a packing item. | -| `delete_packing_item` | Remove a packing item. | +| `update_packing_item` | Rename an item or change its category. | +| `toggle_packing_item` | Check or uncheck a packing item. | +| `delete_packing_item` | Remove a packing item. | ### Day Notes -| Tool | Description | -|---|---| +| Tool | Description | +|-------------------|-----------------------------------------------------------------------| | `create_day_note` | Add a note to a specific day with optional time label and emoji icon. | -| `update_day_note` | Edit a day note's text, time, or icon. | -| `delete_day_note` | Remove a note from a day. | +| `update_day_note` | Edit a day note's text, time, or icon. | +| `delete_day_note` | Remove a note from a day. | ### Collab Notes -| Tool | Description | -|---|---| +| Tool | Description | +|----------------------|-------------------------------------------------------------------------------------------------| | `create_collab_note` | Create a shared note visible to all trip members. Supports title, content, category, and color. | -| `update_collab_note` | Edit a collab note's content, category, color, or pin status. | -| `delete_collab_note` | Delete a collab note and its associated files. | +| `update_collab_note` | Edit a collab note's content, category, color, or pin status. | +| `delete_collab_note` | Delete a collab note and its associated files. | ### Bucket List -| Tool | Description | -|---|---| +| Tool | Description | +|---------------------------|--------------------------------------------------------------------------------------------| | `create_bucket_list_item` | Add a destination to your personal bucket list with optional coordinates and country code. | -| `delete_bucket_list_item` | Remove an item from your bucket list. | +| `delete_bucket_list_item` | Remove an item from your bucket list. | ### Atlas -| Tool | Description | -|---|---| -| `mark_country_visited` | Mark a country as visited using its ISO 3166-1 alpha-2 code (e.g. "FR", "JP"). | -| `unmark_country_visited` | Remove a country from your visited list. | +| Tool | Description | +|--------------------------|--------------------------------------------------------------------------------| +| `mark_country_visited` | Mark a country as visited using its ISO 3166-1 alpha-2 code (e.g. "FR", "JP"). | +| `unmark_country_visited` | Remove a country from your visited list. | --- -## Screenshots +## Example - +Conversation with Claude: https://claude.ai/share/51572203-6a4d-40f8-a6bd-eba09d4b009d + +Initial prompt (1st message): + +``` +I'd like to plan a week-long trip to Kyoto, Japan, arriving April 5 2027 +and leaving April 11 2027. It's cherry blossom season so please keep that +in mind when picking spots. + +Before writing anything to TREK, do some research: look up what's worth +visiting, figure out a logical day-by-day flow (group nearby spots together +to avoid unnecessary travel), find a well-reviewed hotel in a central +neighbourhood, and think about what kind of food and restaurant experiences +are worth including. + +Once you have a solid plan, write the whole thing to TREK: +- Create the trip +- Add all the places you've researched with their real coordinates +- Build out the daily itinerary with sensible visiting times +- Book the hotel as a reservation and link it properly to the accommodation days +- Add any notable restaurant reservations +- Put together a realistic budget in EUR +- Build a packing list suited to April in Kyoto +- Leave a pinned collab note with practical tips (transport, etiquette, money, etc.) +- Add a day note for each day with any important heads-up (early start, crowd + tips, booking requirements, etc.) +- Mark Japan as visited in my Atlas + +Currency: CHF. Use get_trip_summary at the end and give me a quick recap +of everything that was added. +``` + +Database file: https://share.jubnl.ch/s/S7bBpj42mB + +Email: admin@admin.com \ +Password: admin123 + +PDF of the generated trip: [./docs/TREK-Generated-by-MCP.pdf](./docs/TREK-Generated-by-MCP.pdf) + +![trip](./docs/screenshot-trip-mcp.png) \ No newline at end of file diff --git a/docs/TREK-Generated-by-MCP.pdf b/docs/TREK-Generated-by-MCP.pdf new file mode 100644 index 0000000000000000000000000000000000000000..70a0964fb0cb60330b0b36afe5c386f0df8e1993 GIT binary patch literal 186726 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Ð^gI!>Z3>6yi?g0pPXMhdp;29X5!(+W9 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�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 B^_Ktu literal 0 HcmV?d00001 diff --git a/docs/screenshot-trip-mcp.png b/docs/screenshot-trip-mcp.png new file mode 100644 index 0000000000000000000000000000000000000000..30a19e68a320558867316bcdbd26a336d7c3db4c GIT binary patch literal 1318736 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

VX!hY6 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ℜUpYiE@dbKfHHTFBRPzK2 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±Z{Ky+krFrL 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 z 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�khwA+`Z+PP+kIX0)U7lCluYLfT$kkbW)`oO$Gy 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

#s#Q-3SZ>$-MZkr=0J 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
-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

S0XC9@^B!}jBdj7%QJmzowIYTW?ge$HbuW0 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

}sZLlP59 z9I;cT2fDnh+|(r~@YMMg#EWIRSP@k%1Aw($0Mzocr4qh74LPHjG_>CDac_G7B{}n zSd#miC`F$nROZh4-OI?^47F`|+^FrEUQzfB5ifsafJb z{?Ch4+=l~EU%cCbvoC6NaSncL7Cg&(c8b3*5fi-Dj3{`xbvqRxFd4l1!e^;CFYNxK z8&2YjpC}^NHr>TE0nBmsq!vfaD#oTuO5~+sh}xKLmSWMUW4)LcScxB1&pylN$Fq!~`LmL_lgzT!m$?x-^t6@U;`L*3(aDm%B{4d)bK47~N4hY(9_shE45tEq z9~ci>UjKSwa&q0ikLio+CIFm3QI+jo}aE-)cmlruH3$Him%%J{{%0Tjq8*# zCl{V_XTk$o*)Q`EJx(0*Cm*S~A__lE>(~sf`=U#0*r5Jaz*UjfPia=&<$M-xuX+%d zjRxyEp>0$N(aNx{h{IByEqFt*e1aD@@H@l%^@%sScNEbt&*fT=tKlGx2TrEqDDr4- z9E&Vr1FGUz#;_kwo~E?#yzvKeF%45^4*n$n=lL4mOKir2uj<}d1Er6Xim-^OtYk&# zz8geyZ&JNtO3g)U2&W6Fj~wMoffz(ZYSkf_&Tic!E}wv8mzffC`1>J%O#Gom9ui^J z6-{?WFBw+m0QgkkUEK>=DnkUx(HTcZ#gN>>qS>F_xKbR|js;r7Te~3DGwO#c&o%DM z0C^dR-Ut#2`{f02;Ub|hQW+s<3z9ZxDNP-YaaAh|XUN5Wv#`wHLbV-<_N6f+_Lyag z{NJ!5A;61Js3G+{Q~r4-01a3Ay&@t)c+=zckTyJ(XO37{J;#TeFaT;%&jM({2LuQ< z4PsPHqE|LvxN+6J&sQ5G{fJ~Vm{9AhB^D~4Z*EDDEMiKjQ4H{)CRZ^3K0AL`M21(x zN{Oa(l#)iDhRGUc?nc$;WeOUs7fVC@iDWg1m~A{`2E^9=ig z+&p2E08Hl!scAuPi3XCPa4u#s(x`?SUY4lXgyOa`I9y6oVFJO`p+4c8{@$+ZRj^{} z<_)5wbo5k}55KB(&0-{!aH|Sd;`1%ZRgF?g3aXttO~y3FtHUFp0I^n#DuVH${WQ8W zSoBhe!!e|{`6or;Ah(rii)v>`EP6sQsjbe9Uq4qS81g($1rDPWig==2iev;pyjd#~ z?#y^2HLI#X2MI&!f&^@YLp2#B#O(U!_&`R$b}AHU`MJ=@l4H}iwi-CRNQbSbo@2N^ z47hWDHh>Im$`_AX4*{qGnEF}}Af=*|@0XCwOxXU%6g*hCcEY$FNQvXQQ1Chm$JcgA9d_9Ll_e-w1aWB6+A6p`kmduw@dws(IH}zSJz#Ul0r# z$}tF0(9r_LciE`5aGjmqs2H)NfqxGc7pB%69`GD}7y`+VnE#nOQlDTl8C5o8KzT#I z4I4EPG=xOo1@@Bla_j3+}&(3TtHb1Ax!@1x#GZZnB^n#!kg=kduberOp) zz=W8;S4{1%8bD+oNrnjUO({Xb_A`nfcq?>1D+t*|_+%|=s zjdt{A6^PXj?X;v_@Y~cNazhcRiV>d>Ov5`*XF4yA&=vZL;-U2MzceE>F{UnnA+ivL zwfqqrv6S}z(qV);9g^AgSi+S}V98RQ8>hv|Q+-||UjYHAKS5HH2=sTq7Ov7wL{XI5 zksv9FE(_EqhW}L4vm2QfA^k!Itnsb6xQ0N44`IsuR{PkZ#pNr-B%H%KhD>=MDO9IafsY^IZTRoT~NgAqMjrq z?#>0G;m5$Yg|6%eJ}>2dJ4qVt8_Ibg~J&v5;mG61I!9qCofDux=N}Om~yln{FS<~W?R*Dbq}J@rb;0q ziQsuK=2ng0<6exk`M|A$s|mW_>mJ7$6d?+!VcZxg&;qv)Nuk>YWA!+yv)`bCv%El> zO`iJkZMVuSv*u_pjTyXS^Y;7PsK&=tq%(;5C?@_q0;4W4F1_Q_B#RJR&|7@9qG#`> zeoch~sSxwwaG}ZcJ{yay{`4vqWeWEd?2xcVRSwJ#*?ur`*?BT8IOq=LTI@vsvOh#6q5D z?&IURVSZDRHf0grZ#L)N+wy2y_-y{P>p5AE8Vg#De2#1(-?M6sD*iCSmd!5Fn7r9+ zezh=Tdfy1{ozK;O`3Zs@zuvk{GSY~o@%fn#xU_w}s6h!*9IF=EDaw$Apl9V~g_Iou zCHbov*T?s|kyQ2H@=j6d*?gZpKHA7s;Thyg8b_XPuZw%aS;FsfcQzx%AQ^OBswAd*Ke3aEcV3SxrLrPqH%hK! z#eMGH6Feit5U5=vK#auq~Jvnhi@ zghZR~;mcuGboLED+oIfCW3=ip-qCVRdDQv5CImL9Jo&gDkY+Z$XxD%x%X)rN#9Gms zl=?DuBewMeW*U}&uqoW*uuaUU%GNKS7}iaVp6NE%>j;0W zO2azv_9p{^AGarN^{KQr@p0aVDEQ%O2NI5ZjNvjIlr4Xu_av*=!-~*b)rFhA(JdONL=V#$AP>@_IqD}PABruN&|hn2-CwvNyxa^g73+i zBct+bOy=gdX*LWp;01d>$jtyb^9-kltlT@+NvnB3>#D`wn~l}e2n zNDiLYM*b0!VYKS%shXD;&kPiy;NHNJ;%7|kvLR0-Igo!iQcF>!W}Xx1 zb=DOTz^UgG@cHOum_g|A`#m_np$+dxpSW?30VW|VeKadSU%Gj52a^Js*LbVPVyp;? z1pN1(uvDa_dw8dh|IoXQomUkMyTh}zbeO76jVg6`#08TgBSn|m-*N%ml?I!B0cDy< zZBu7wsXIB{kF!^Qzpr{q_f6dEPkRJX8JYGK&ht0;J#R}4e^5Ts0mxsvPrTOY3UUlv z6|r5BCl{}CkN26f>ru8UC~m9i;$E9GDXN*O$~?1*D1!L@x+M(brg9H;H6ab9Ei_>3 zcB2Bps{%M13CR`C{LQ-^0!qpwA=ga=qZ1M`7-Kp<%%lzF}0RA9|)Oiw4DAFO!4WWYl!b%&z$zgugZ%tlpkLDRZ z_&W0Xzq3=t?qu%zCDI{b3~8ZIY?cCOm7}PsYduW)AW?u}vtqyvM+TFjf3AzLJa~xb zVTw$eAo5I_HtI9Jlf$3;Aez;AtGiEFTvsy})U{bXbHmQuE+DvyoD}&wJ1&4;9gn6B zk0i1Abp|o{Z9pCbCZsYeMKuJn3T=`0ZSr7>DmGJQX1-A-ylhZ|smKH#Su*P_O+~ZrMoSQiDR-ncS>dI8bdbarW zMm)}v+gY^oNGC`ddJ=cZIWa^peDYjmDjWnT-G^8ahukc(nF%i)lV7oB)84!>{Xthk zF|ykUDKOwD=s>M&ZmY*qT}+sqXSE(3iTz0Oe!l}b$wxjcHo6ma|M3^UfzRLQv*i5%3PEPl zZLfUi?K#qo1oXc_&%W$G3Fh4j&}Kf6wd|2>E@_82xHw8wDjO^@6;eB@x&DLYxRRb< zaABUh&Dnc>u5u|ba{+n53OJT*MqwqGko1AGP}OgKU0GH;hMJ>fe%x9dl#vC&x|d4{ z(#q^U0InN9)^+hPlNrQ${$a{2VX^bk$+hL(`acLyKK>5U&C4Z31a7nUPV8AxaX|h{ zp7r|NBy3RAJnc<|vUTITdg8w#>?xy(FbI*Eq3dSwm`}k__yuvXAcsz682+yFd{$?K^DgV*`t*G3`^0)Xb#0JHd4*! z8VEAUNmY5+v%E7NqG{MK9&;3Yu@EM_@kNKE)fT5;&w=QHg*}_m$B7ay1ilsO__&a9g=dKBW^_{Oko zQRa+5MCdcT5Ah3!wVFcG0yiako%v>$X2{iT9Tp!-)TS8#}YbHAlayJb zo`lF(33onJJbq?H@VWZW^oZg16=zbxvwrjO(GIq@Ba2lEW`kq~<8(}a?u#SRGQSU6 z`l&CIh0~(NY-5z!OJp|8?fI_0-O$xIJIVX#f+{z3dXLrN6Y#Le;aL5g6g~rE;B{NA zOJ%}rs}5xfk9dwS?TKr4P!44zOb>_fg&h#>av%Wdmpg7Nx*KUV!0!9qbcl>*oB# zXlAw4Fg_=?Qm>kKV9W5E@c^FKVbQlxMIR>UvefYO*NhuOsv;FjSF7+HwB=+oFOtvp z!ZA1`lQ+WjW{zHwYfoLm#-T?M7btTv%wnr73KCn>v7U6>#NuQ z!rrEXYvx$%pZ)=bs&5SejMu`_5(3utc&yitDF|)PfU1(W-*bA|-Gl)-edXU^2cf>KCTbw6d=O=M>&JeJt$eK)T8dwK@5_ylcfN%_)=yZ zTShZEwF9tF!56*e%LWr9@DB=hG_4)Dv%EuSODI%B17KtmM%TT%%E8RS0zQYxRH@(a z3CXb(UhB7oz&9@|+U`6EJ2w~Q#%pka30bT;{mw*Fhg&Y=Jp%#r<5f%BrUIS99F*Q& ze-^gHq=2hP;suQ!(Hl&qM-oU>FdTpuh7|N;o#)YE^t80;ql}X^?-KEk7**k!*uA2h zXc^UnN`XQlp~RTuv=aJAbO|^YVN82FhR=ld3`{}juSrv6bS0yoegUkc`g!Kqv@f-* zo0@Tz0Mt;4cs`UCgrTJN_=9Ap(|ClFJU?5(cMfk4UgD8ift`5YFVlAIf!FP8z1!P8 zp0r@GNU`X|H_V7a>e=kk2R`>94lm-E9ajZhQM{R9f;~SX723eg1;_Gh+C4JmWj6%~ z-04FkoUMY$Ju9EX%Gnl4{xokOTuq!%l3<%fa2+oJN`Mf8!^*^GHJIEl(*p0Xwd~~_ zufy$$PAFotwJwJ3;kt>wOdP9;u4?W{mOvuJV7Q^Qj#2hImd;4`^xy2SJG~FUAy6YA zN+41FaTqYxM8^sNZ6tgziRef%(TdM}OzjFyNTH|TPn40VUkh@-$e-4e@sNKTRsOR|KlZ#!nNQ^?ZwV^0T+XauP^(4BoaF6^Hp5(?s*U|W&?ga4o{ zYOUS7yr~dDqh_(LsWZ{CFa{LWfol@Z1ciY5sm0g|TG_8=ER-&ay}ym9B~`FGj{S*$ znRG+YGHT~i^-|vJ{K(;4bQ6j(YAISM-$~Wdn4N1-t3?=Fdd1!`>4t=+sCSbqYt{SO zQn85^2FE$!_GqR{>1nQcV}G~A?IlyF&UO(axi^)hj3p7}Ni0)yV;+fQ`mI1RvhcOW zGt}(Qy?iQZSWGJV!0`Pd+H|(P*1?Z-k9nV4_oGy$MwrdF+n60POl6=b6eXKrc*=&; zYi~>iU7JQe$5)_rP+6PKC&gOvd$<~lBE740=+@I{^@t>^!EeUn@r={QGAP5WQMWfz zENbgPvJ6OW{S>p)viftNUu8zFY9)FH9V3i@zDAt=cs!6RWZ!*zItet?5S}fc!r|YR z1~EmAq@g(`&ix(FP$c0Dpb;d)#=`1jDlC2g!lx@+ysomSf-t{BazP+hEoxY1Eq30< zF;+qJ+f@YKN*UFlrvgzzgP=GQpqz=`;U?f7|1E~8nPLMp>kz{rXCv;8kpDt&;sfM8AD(N0^=F9q@ZS_^$L01>c1L#74NM4Z%!IfJI`-qnK6 zY$g@sG1Uu!5EkYb2hn&~oOYuxncSHrt+PoP zjJxTxlJ_z&#T71*Ser)ra&f2xn-WA3iv5mN-}&=}HvXCVOZ2JWa|hS?dGP^kvpXXI z_0;d&n-F>mv$L?Vp{9Mh4<7uE@6VtnazZ6?+)=&>m}3-cs|15i?E^>2nBc@9ejnd8 zSZSA+^zT|p!J`*-r)9>72rfZm?dNlLT|_lL^R!!^qebu*pN^SL-u8)!JhD!yZ}?y0 z*N`vMG~Jp_U7P{7xsaOJgGg?`ov+W-y%^5o<=I|y2j$bHxcSh$cn6xD*iD#f(`a$V zeB#b_Bp2lpdDkuH>EM_Ar}mpOdGSc?DG}Q8{0D=-_rZS`mnh+<<_|lbPwL>30cQYW zN#&$+a$13?Ji5UuD!R@iqEcqD`EsPC>PwE{!GW(4pmJc<&v z)H?pBi_EfGk0atLq||1e@_;KzAT`^_XZ&$^w+A<)Xw({6kIkxBFMPk1^?c>zvOp>1 zDEjQb3oW7np_XNd$vGa)qMZ&0TclZCtzllXozZEXe`dR^GDPMSeiN~L`TmpEhvd)S zar(M@=7oQmm<<`0=Y`Cwi%@7%?ffeNy}ZkvD>d$+`=j}Zf7*VAsv1^;#Yqw`0%Hg} z8r2A4@UJe04c^_MwSA=l>2($LDTzfK8O;!2<@;P!(^rc_#D>b?96W+SZrF&~Zr%s2 zAG}6m6D0(*W3(}bqaWu^9@Dl&VRS`wrde?8+|KuC3lYD;8Tp3h@{>?mCzFEGGD%>~ zpe|mN;^=>cR|E@wKa^hRl7ScXL0iW13f4S4w@yW`MYX|4ZEsgIEoRwM9&d1X{rO4< zU5ox)n>aoUR#}2cl_1AEa~K0;YSljyYMu$YUmkoUcwxPvCRoz$s>VV$%x z75pnXd8b#Re7?U&UTclPiePf(v#R$%!$Rw4V-4v}{}@+fVPOmL-z)o9fgGA($)ac= zYzD7ST_6}wJl{mzh*-RS)->Wq#V}%mT>S8jPj#tj0D02$ftRGu?V<32`Y6>+xf`qS$W05)$G4i77GDwt>$w4`Xv25G?clLTbH`bzI#EXA`VFr2?Et1#vQOEd^WF0biuUC!4O)%6E}YH z%UuuehZOmj_g}JLs@>DL{T$53Z>q^MY*=;w+Fo0je72<0F$~SCROI}e$T`t6bZk0s z>1{64Z`o3a&&B-v?E(KU@153?IUU{fnn3hY)4?7-+?D_{bcB_rt+wa6o#8@>-`v=3 z-3||tfNTn-U}AEyixUu778P3MHQI+d6Uj9!c4Kg4e8^4< z$o_iw>>b6CspVf8>Jk&(ib_`LAtQiiuwos)C+_TH zOxB0$BVa6mE5){l&3T%VW~f@jkA&U?nn?D>Td_mj7^*E3t=cwQiLI-AoX`A!HV^QGPh39>2+Rx|PlbMT5t%}cCwIR^f{<8L ztw%T+V=x+tx8x-mUvX_6I=J-veOzz_5)L?gqvkDTx}vj6K8Bx$8)%12y-bC=9Bym| zChy^9O#X{}3I!2$<1SuvNgz~8^5+KitRGzF_gx5J_fX$M@F>78$ArdP~+#k>BK ztVLWsciJ@0MssEJm`EBqM6f2Udtep8gpY%zz z^I?MP)#>`0&jz|!oUMa{*Kv!J9VzHn)+x^o5PAM^H*oViI0(&+Xh)j%(f>x|y7iU_`DYlUm1G<-V_;hQ%snD(9&Kq)YbM`lj^KWqeb-paD z{OZqn+~qo}jTR%=XxqgWdP>3XqkfA+!~hgbA8re9)3J&hCz`?-*rgG*6jL==f7Een z%0*=9bbiQI*a56b!@uv)Hk+1EE%s$eB8|}_nx%TH+((u(Ft`w;MLj#5N%M3RVS)T0}1>7-SZXVrIqxjsLj~_nB zwa-eva48%)$$H@K4ZRc|eS!VLRJm$RhNOifWmz%9h9QZCWlIQe*ZM4{7}nc2DMB7q zCY3?F>binR^jm<&eNeI1=cN99;`%$i=A=AYhWx4W!)RzB&R;2>OtcDmNA95|=XfK7 zPWiZKkf7@9Oa#TZVCeR01Q&P1n z@J{hyts(Xenyzu5uj&y$bDVP^O>T>_HSZQrX-*8L#puH-r7DE9*tN{;_!13_E;v{0 zA{iLs9U(F#T6@cop)G}&Uz)YBPWgGT9+IV|b)a%vAALSYA=1^|5`JF8^0Ice?1I;1 zXAvyBk|D8dHX~SbM_zo{xVw%y&r$`1KRPQdV7z2NlR0NQOr8+g>OXAHJt`KMzCubX|K{OomUNpGo!~E zf<$Yw{1<6~o=1h`nd`rEACUr_6-Q>r@2#ub8lAKz;}BXj=m%7w+A}UCZPN`&I+Qt! z4tx!1S!PwubjlDF?V&?CA-U=c@NDx~5E{8>8m+Tk8`xqP!i)$S+IP z`GXuZex|)!izM{wsYEx#_|;!p+?21QCS2 zuo4GFZN-y}4=iNwwO;PcTu}X|rlV+m$-!Q-tgVa6K@S<3{9fxpvMnUlYk462uwLaD zN~{=Fc{r_;E_I}cG+=!sSIeJZx0S9ZYQ3i|uIZ;U%9Maj z-Lv&as=4)BORB$P;@wWPPadm};-q~}%@!2Q@KUxi_F2%J-6>xCb)J}$$?tSjG@Fgx z7z;-9m_0dl>4LO69X({saVS)Nx&G#FoRyYGqH%MJ$P5b@UywLS){^Ctq*Iw0XWsGz)qr=yauwe1D73|kTal6d_PK$m zR3cq72pxukF8iS37TacA1Tc+j2;ab$I?E+Vi{Fe%{$XOZ%_W3oLMwb2NDHc}+-F-p8|MLqLu zMO_%1%lF`Uz_yjZweaxh;5sb>!7rME91?;Z3D#F@*! zIeMSHduqqRJAK;tdT0dNBr`31y^zfxm*1X!2}HJefKd(g2|k{(@#XYwH@UU2pQ45! z$A7x{KOCK9P+RR5g>m`tVkuJGT?!Pp;_gtiKyi0>w-&eJPH~6g5~R3ma0?W7yQg>N z{9-c6A(Q0Yd+oKKHKW}X_pKo$_q5~xkDc)&88lCO!$u|;neoGe+;>-=*SuZ0`TiB@ zZrk%g=<=CwIy$rC5x9R&W0lXvg}gQRd2DuQ8wfm3*BuJ5b~%rvEOoag3VZBnE&?%^ zy!2G<0ZxcUZM&m&2m6k#CXmzC%ZjRpWT}QYAn)sL*3QUl{^NZDn?baci_HfclFadm zDR;o#BEfI7=gb3=-)vfS?7tu!!n72_`wUDnF{8ua3~#s5I0U%j)XHIG;p7H^T*nGP zWboXd&50C3>i}k9Ay<<=Aaex!LN(Hs(~+nx;xT{;ZXt3tlKwMeD2k3GreT5)qZ(SW zVEwNs`0!eb4D1T%KXj4-W_SJT?9zNS)-8?%VZu&-GLOGxv?O4^8X&-9VGq*Zko)k3 z@1bbN=~5QFBZei2EAnu3GsTUOY6bA$6cm-v5kJP`S>!k|8onmRu#519pygg^Bu9tU znf-k@5JI=ebwiRHg!|z2x8FEZN^a=`>fhrFH4Vh>x8pQZ|M-bz^;}=r>gQLi>AxiY z1sNGRePNScjJM1ueX}{2p4Z-(dZ!a5r@{|W34`xTAr99&|F@vl(iGqb^jBd!&9Bfi zkBQQx(WN+8`La-*^H&uG646M5A;aW_*`%5Y9~eTvhQbkrh=x*+eE*nXv5(aZU_zN^ z`{vA|WbkD_PhQp4tAeFE!~DCIVf_?WBrmO_`OPrOEB<>owE2Ik>A(O2kM+mvR%=$D zetT=A3VcfcLi)h!_ruGdECE8;KWS%Ej}$kIMB%l~)=@N&qk@46+hvc0w@LiXtIgrN^~t?`6bUVxe02HSR{-vnsax#&W?}{`48*r-^KnD)YKd{ zmsPIof+ye0^A#c@JtKD8cah9~PCggykf#wI3M?oNBhYbWSH ztO|$F$B?7)_rQm(K(7i=v`Z_bKf_j}Fk-`k@0*nfW6RLVDtru zn6$KvO9CQs$hrQU6Z{W4*?ucge5av>IAHW>W{S3~!Sb0pPUZKNI47QL;UZURff94%-*Z7gr z$SKu0xb(LTlVS7mZ^>PxONLOXlc0*@{#BdnPkJV^!CY$i7zb6*T2GUJ4xU=( zUnYd6?rC9&{;%~$oI@vHaTPE--faf5Ae-3grqVDO9&HHRDII1^tfx$tpOKw?`ZzBn z#7n=FCf;XaDAkGZ_e+7&pIz%3v(o3S+ zhDZb_CGfyramKXW9%>gIWYM8)gsu(>UvNR;bryc!bux$nYq=N2;*6fvuVMOhQOpvc z&i5EUv#kC|?a2CZxn=Lnd`jaf_RIs|*2 zyw8!HgxE(?3e{XvU(Gnxr9S!|eIRx?(9sk6lA2Nzhab9WeEDg@$?8w2zDQzC)rS(aQ|60+ngX9bSjCW5C-$74@A)82|cj zBFrS4ek-AP`oNGiUlRYNYW7p9#Vn8{!ZlT@!4pVy!2_0A^%bJc=jkN!Fu~t+}kJsC?%^~gIBqFb`0X^~?m+sF~cYa*{2Ur34 zXRj}BVO!-9=cWN}bp8(>kc77bzc=K!=jnv)h1KpzX#AV@+HIZN^S!_;a?ah2NVKuY)@18^@8G{vc~P?14JVDorr0Hf-$k~4DLj-T|%Vh`_9F7&XZE!`uoj)FZ+kv9XAN; zd@e{%ScLFWcZ{8xy`(ogmkhE4W9qp#W)yq&l;hAJ;J?TQEQR=ucQp@WyF9-ji$pv4 zU46M&BkUyTe*O!|TrVMo7+2)InUFL8J=1X90^BDx<}SBEz4^m$vJ z+TUJrbs$T9XhyFrt(T94n-~s{u(49FIbmy!XX{J0Uwul$jQsB$wnm{wflM_4u&>7s z4iclYLf~s1(NqO)hGT_XqG5!<2xY-&vWE)~KzDy4_kMWw-_RI%vw98@#*8AlL2BvlzxEQOI{r|M@4Cd$H% zrl0T( zW>*X`$8{0}VFJd-v`U}J>fFyY5a}wtusaa+)}O(IUC7}~g%NQ_W&t?~ioV)xl8Fas z*$LLf^7AGC1;1B|tAx{@MM0U5mz%DXjS-&+YaCU$>iMo!wkOXRV~~>F&Lh5XdQ-e- zLJM`R$kXnIOeRs*$0lbSyKJK=gqnus5u4%-Yo)u#6GmG}PNboUQRpy-ijFYt*~#A~ zXk_Wj^l2jou*hP=_gv0UDkS~F=H*$iBAX4TvDr)1H2Lq_A+UG=c=uH$ZPfdxw!By$ z{nXC!R)^e9vk|m%xx7S#4NrJ)nfT&E=;NoLZdOn%cF=Y4_!YK4b{;Ru_LjOuk5_Qh zjiT>sSHyIZ`;@rZrr`1&toq`(FP9<{mfUJH{HptAyJ5BWoEz?*^ZOJz{3h$L$U|!y zx&oV~N6`B!l%szzXjay*US5by&R>KYqvs_mb$&F(L>FBj=g((*GNsAu7*bMtoA`5x zq-JEi|MTZh0l=HlU<7vcdfkLTC5RG?$+R^oYEp}GnCMn$$4{_QRBAjLrB$ll`r(>sVM$$DlIgDanfu9 zNRO^Au_uu3C?Ftkh!uHa-^72I;JbFUDVwdc3OF=#dI^=YhZH*DAa~O%R{6_ov{^f< zfxUSNy~dIL4gg;$WXqUuo{|H-uZ|@iZUAR_d3Gsncj4A4d6%GfcBq^Zr=2W0Q3Hqh zGaYV;)e~c&;wN`>qOqSTY1f&0LBs+1`N;Otjl0bTAykr$ zO*JEmGI`wR4`Mr~$)DM#-_(PSd?XEznh2IiK?;tP4(hNJWkMy)Le51D(xBq0p6@}! z8GP~i4a~|ss??PxCkxX*C4WRVD(HIm^B5DHY|)K)vNmSx=V-j;V8vRQ+L0Gg>Hv98 zBW2Cph2!4{(uaDy(ACv3N$V%L4uWbavKxC)c$Op)V*Dv5;7~^!DFgc=ijY}+_kbWjoh+xo+)qj^=C$kCe{UCl>M=j$& zD7p}$l!ONyQTAf=zdrL3&eVGd{z$PxH)$oltKGXoPa2808ZE70V90moWl*YG1)1vn zQWIJEFmq7xF;wJI)nTr;SjemVWN%T?>^%TOpwU^962|n(iP7tni$c#ts*yzfYR&AV zPh<)}Q;_o33oN3no5Iyb`X?~sXg+IWQ%EYoa4C)%*hKFZnxrR-TK`S`oe^rSj`&0M zIAN&Fk4yGhX$X}ffnw}X*Zl5NTs(vNh;;pHRmFUE`L4n8!m;O$I4bJrb4L2h#qX@l z@yu!YIWgq80rPI!!?jkdiiI<49r$-(sm%H212I)YwMH&{tZCmemM0c`C(bKN2uII_Zd{Zalo;g{7Ns zdTj4ai2#f5r;D?I>!&*RGrQKk75Q_KfSoj)2Lbwz3V-;BgnjP1H;W;U?$2uh&tIM& zBVG~SCcB@RuT6VI{C5-1H%ni67yiD0+WP^6@{7>@sgW1c>(+#u?_tPWXzl|RBrMD5 zLT&BxGV8oS?Ps+g_6+B0T!eUiQQde}ocRzucD6q)uY-wG??BKtDT&dblVf_pyfeZ@G;&XfC{Ut8`2z>JEA$^YnD)UAx61>kW85 zdJ89e3_9yWc6h;kURs6lw~c*BF9{+`%6&0-^1VHK-XPod*tqh4K2d)2S$qA_-3RTu zm^VEmbb7v5)ps7j@!igSCBpLEy7l!LiOCUYhBTg$UWZ%G+1ww!-8a|0y@WuXa(y`A z??UQdW41w6x1JcQ8p4gRqS)b)NoLAg_bVB0zxR*>&?_s)?qjf?S%uFdx)B#UTNN^5 ztZFK&`QvA8ET$RDcrwRH|NNOV88yZr>;SLZstKiDZJi(gH<7bGAgY)6O*dTQVFlmu zrAd3MTKR29$0yg}Ddf)Z{)Vqdomku~&^M632liHink)NG0_g|c99}OX*pg4YQ#IF@ zNjh^#W=10scgJ)Nw|qZKL&(u;&k|(T{{{X0usujY&rUqi>oey>;*H!@glkUUM^_M0 z?Oa)b8jA!kOYAmCwU0rDC5r3wZvdt>R$n*2CY3pK{`(y;)tp+fKj>Yi9L29!*E%*{ zblR*(kF_dGwv2z5jmI_1zMPsdoX4fcty>LzL6N+!F6jf|E{PmNB zZA*LW)keg{`H|aFb;w`i$f}JRSwC-1Wj1>$CHO6!{4i7X~^ zdNUd`Z(*qIv`2SXA)}fOHAqnzbsNwK|iRs$_{i)G4Hw#QRZ2yKMgs zr<3e`RUV4fXDOy79^LiSvAwz~t*VoEGl=GmYSNRFY_TuZC`Yo+dUpRs7iq1UlqU=O z-lN11E0&i{Hj(P-PR!3+XXR$WyOJ&%c%dGrykj&cTr_aPrf9%P;NAHHcLQHGaB^Z|A8b&wXsm1IRL(;YnJ%l2Nx@lvn2O4HEx_$Xr*a`!2?Fv-^!ZmF$7?TO!J9Ar{4|p0w|y*xWnfa7W_- z2BMgV^K57r5|cD*|H(E6eaZoQcWdzRXj2)BQFL2ze`}j72pVvqZ7J*u7k`?kQL#JV z@Z)?v;r?Sf<{0^xC0RV&nH)>OpL1QGi)7`X9*PopGnx8TirjXK^VIP>*^&q_v)tf! zG9+LzlG%3oD#)CL=)0d{*l|LXyZpzxyL5AxW! zrZyh^;^?+~`umqt$Ws+QHTElYaX*={9rNGz?m4`1qJ6_vbu|wdj>P5UDzM;I`8g&!3K&}W|Pt`p(M-Qt1rE>4>ZV6IE79iYhyrJYgoj~t28!#WK z)*RROJg|LlHM*61rKx=x4n2FfrSxi=l|ONfBnDHxMtdB43=Q~ zSr=hQ0o>iVgYU<#n=GSnslw=F7X+tJ-tLQe&sP@S?cJ5|wL8{7JQe?*JFdoO&}Dk< zD0^}Hp%=GQ^>(fNzXO|^e>o-ri1DPl6Di$tvd`m?^RMVH##p_bl%yL{{((2+q{%{r z=97aN4PV+;Jj|^y!I*42tA=lKzF=Y_u7z)^$vt%}zN^rq6HMcujHp|jBM01D_{`PMcD1On?6kEA z5}$dUk?ri{-g7s%d}+No6Uh!RDpu<&q+4{{o>n*IF@>pR=LK*e;dd`vxziq9ZwtMZ%Y5vvKYZ3>_m))(k@}lbfhh+ zkVnAax0cn(Q+d_lSAWX7_0yd#b*Sh0uCAc#H#DrD%Y8@VJdafM)khf8mRM4U53o`| z2a87$mGqm3)*Pz7u3pw2!--Ngw&K*Tw2-Gu3zO3~_i@gEcwVlTf6mQ0kuBa-hX9c{ zX21c^8Uv!6L}s~x5C-(e1=SkzN78gNuFv=0!|mrWWPcc zl5|Th0qo#NUIm4naf)K)cLd|qsNY>2KTh!Gw1fOUV{(=Raa4ryy^mFcJ#%hDP+r)g zcFu^TR^w60Q^Ap!%9#>P^^LbW$olVH4wkE+o*}W~O+Emj(O}fYXZZ68aTotVJirAM zrq?}q<;^^Bx)ZcCYf2^pCo((_(ns+$l&w&dy|B*=|7|!gcu$Kk|E4s9Hzr>MqY>&b za%JYIDT)X8pb?Pt>nBT$eq!jbb5m}07C_Sl4f8|(lZ?LjZFu0n)3YO1uCilK)W;sm zl!QXh&?nKPH~2>ZJ}!fQbPovDlr}BFWJRdhd&im6hed@Rg8k(u&U3n{mlcqp!2}RH zht~Q?823285pk7iR+ed1(tCZ-2Y;4jJSGK)Q-w4h6RARCFJYRAVs`kXNL1sD)N*GQ z$gTl^_0$>Glzq#zb<6bHMxRzglv}yy`qEn8%E}Rk_#;r#e41W^x`Br+Kfi0yW3hGM zy*kx5yQape8hR&!;w+x&;$0=9M2LDMTj1^7p@Nq(|2gbNzc9RB0j6~ugxIKAFveBW z@ovxg6J7hf7HeARJIG#Nrm@InM=OJ7^9tTWXKQOZQ?=0I;P&=cC2uB9Eu4zV2(3Hp zwWJ!-AMV@H*E!Tcpcp}2ZEa+sbVB_6{%r`1jZG;90(fQy&NeGC7z7erBvm&al8r@& zE1X6la<9saS+cg5;B{@3?l_hh<5aCw4PKv6BDT*b*lUE2A?gach>e&M>ahtas=4wT zp!~>Rgi^&*x#}6%+Vf1Gy4AJSMZM-F&~MOml7l}4>>k+2Hs#2u3-3!7bBL<{CsF=a zb8?OmR%-rb+y)MsY^GyDzGk7&A83`n8%#N(J@HAd7zh&{2+4g0 z1$RFxw)SJ3zse4*s~f-a#}vx ztDu@q-kPv}_1(N5HkiZp=Ysh^=8I5kNzUTKUM6OMld(>(Ac1 z5DusXxbZ5z0vqm2mLjkr1O%$h&-VjPk};dPcwaIrIjz^6gM!r~alFxW=U&sNu_OQp81QkPBwcWj0DS zaLQ+{Qq{1YRS(W2?<9HnegF>Sgk?G=#1jJ}PizTU`@bz`VP8Au!>YOTon6;9-bjMp=oOWd0EgTAHPqfhdmC$aL(^4D{im#E1WJ2`@7 zd$+n}Ta%k9N-ZoF%Gj?!!y}`fBk*DEc1w8+&=uT%joYsNncVub%)h%V{2fB6#Sn%4}o+OohMdiOwn_FWRY7kAV3%w1=HqCNS!<3KL#AaLtb z7vqpezxx-Fdv$&9k?Fd-nAX3UOc!I_=Un$wB7P)nUVFsn7&T8yuKYsjh(0tYSDlLn zJ~aN%(g7%w-usK2$o}`>i|4d1%(pX#E<&0Ff=0;oinhco_wOx5k-)o`>D)NKjqPp0 z|LYqEXI)q|UZ+_XW zg6BtvS2o`lXct<0wNc~D-PaZ9Vdxfoe40n*m8*F`j ztfcc0=+XW(8XuG&@ZHrV@QP};gJ;qykz6VA_X?K2>Hm zgB3)_p7maoe-%L?bam(yQN^Peqc0SWkM!h5rgMQ3_5KqQS3JE3gdv^;H8z5M;`qZ!z)S0!p8 z`HpXYHsqcqSoWqw?mu?Ll}O*^s;yP%EkoJiteYu+(t?+yxFX{Qe#s9veU&L|krVBq zuOcUl0p#6Ac(%QYv!f%{5*6B--xXiRGvaOg+A(|522Hl3G#)uEQHrWIhVN)lnT%I? zxPSiIqyXd4o+-|Dp?Mf0E065VA!Lj1WTgxjKa@2c9LpL~$MeEFgSvEHhF`T%^~ zYgB{hSF~QAqM91oj`d#F60Yr=^bTcH7!O8RAJ(A-t7LhrWX9|yEy!%I)y>(@sqPaA zDZ4oX)LRB?%t<_m6S({>Kkbso_SU|+O_2qSWZoTnmS0OKG*6%|^RuzCB>3?b*}1%< z0}bote`ka&e_~AeNP^jm7@=7f1xCDlOpDE!!a$-}&qbhgm<#YA- z5v3BVUYC*2{cfjg#Y`chBsAFB8d2f-60?ey-uW8hs_$*S|7=7`H7b=wtg7ZpS3{&X zqf9W@Z9Ry&+b*sNptAQ|bl6ND&#r^4&%-yz*)3HE2U`l6R1NxU?v&uSH1K z-nznG$cJwJX=jgzpd1XVwrUH(?<*jd2nV-#f`&#J*9Mt@theyDyR%xSv(8!tv|`Q_ zlyqv}7!iyTbt~j$t-8D!w0NZ*Cq^5u3JyBOPumQV_ojohvZv5P9>FnEszIP?1SM9r z?@ak+l#qyF?+utZ8Q>yxpc2II1iQpk~IQqc+K*0vo?wxTX1A;d>9C<``+NBZM(o z{`Ax{|6-mHUt|bMOw=r^p^pF!BLL7k@1bK|)tA5RW>`W|-106hbYQnKwro?OfIvDV zbFe7LrKp1bMIF0%xj&NChlQu*100({LeHmIqo?&;=|AxLUN;y^JZF6Y4=Iq|8S_Qh zF)q)igl9aS6&Bl@ulH4~O72KYwr86gxLK_pQxOpB0{>@Pm>#O!7ZI4ign$q9UU1bv zx9DDXYPQaQT!5Z&Q72u_*RmXXLgV8`0i{AsvBpa8gRiFPyp&C3nD_he^1T}TD(}gg75@O` zZQnDp%_G$6;&kK8foA0Akm;;ZK{KHG-&l!Wz|+>B z3^x)1sf^rGrQANC?cvrn1(6GwQ6RLhS5wn49=Zzv>$EH)Lo_pq(&c`14LysCytVc9 z=>4_M=2a{sBi@~`5VHJvds7n=OrTW%6F0xSE(#a}cKBr8)o;h|Agl@q@KK9gT_33f zo9;_@B`l%;Q%w;Yof z&GFtN{+i_uJJnI);J~*m%A2kB7BhgVtVC7vsNKnS8m`V7nOc$Bf{^;y2Y{Xy1{9Xl3z#ir{L)u3FbMbDQ=`O9+yPjSH@G#Sr?l3o1c3QznH+_cH zW2RzogS9>dhU*eHTl#zLc>IT;fLg3jPYnArAZ)5IeB$fuiX*NO&Z*2|fKhIat1znI z2}Y+yhNY>nB14>Rn?DA|XOTO6EgsDAi&L)bcD#Njk8Xj zidH}o;Qz@JI&2K$m+DFwM5KHIycAnr8a_CePcWjhP0uT0i7G$`SI>NS`KmmFhcr7) ziilDOszl>De+k?t@BMLsu1h-wy{q%K{7C0Vm`0EvB!fC{pP{kMHPnMn`hL=Qm4NfR zGv^qBWJxdk`x(9<0ghBNPFNE=7i6dGo+g&o9JCOt!)qC@uJz;X%$-V~l?ir?0aZBQ zU5qiLKmhIv@J>V~A!KC{JCf4T5k~i3P==E4l?Br#{j?qHdwzy{CKv5khl4p!226?W z3aY-xbFBh+W=8npyRwRz&-QKzspeF&9#PzGMiP2aN#5O|-hPX+Oeh8AP}m>l=hDI? z;9fwjkZTjv+^dYAP4gR={Wu4RAKFZ&r<#n~&L6KF`6Lqu*o#wKrb~2X-cj$ruh{Fn zk_4$xCe??3zzi>&CpK-KCye2;n9NgS4LL$50=b54?Rw*yC&i_}%O>H41C{B>HeUVD zg70%vFxb*j3SZ^H@w3e=lqqd_7mG_xXPP`U$NY?6HSxX*a7Sc#Ij?lTG;5o@44``A zV{|qMZ`|r*-B5w+w&%a2^h{OOUZY^;+V#1C3Tk7d+&;9c2c_Jj)Z<|}*qZd-Vw+_z z6ijiTQ~fgZW)Qxv3+RRBTrraPfjeMfswOa>=>zitdKvWrp5m;#&An22{;@9WHa9RA z8EuxfVgJzkl@`H$WE%`0a-=+bAeeFf%ZWy4m%mhIR6JgwUFmkr`nTpwAO~sx7Is7e z$;d(VxFRKSv`zF#Yc4HIp`Xb2k;F!Owa6Xnw*WW67kaTo$3NP#oufrD3D6Y~rnHxk zk@?fF1!Jdd@@T4LK{PoF`9#;m+=My~O|bvFIg`@HL2UiegK=i59^+htJOn9+7RYRQxSAMAq5}e6 z;eMF6`8Bm8;{%^=U0Ux>VS=>7_ZKIRy2*mpRBrkYL=tpR?;F7ZSJGhhwxsRfXWsF@ zMiij)+{Fk<~nMz5>u0JNV#24!l3Z@HYp4fQ2sjE_DsKg zS(>~|A}AqyeP~htGiB097s_%oBPzFIn}W=$L7`Kx%R5i!jX>|N?fTzivzs}-j9)X8 z#Bq|&2;c18q^Ex5AGdp171T+Rwn1}tNl$36uYLSTfJ}CG-?emqR$x?cSLbwzFnUF6 z|8xZbv#{Mu@s-CbXWvuCPiWV=EJir)#dH&QU;c#*<-ZS#`(Vu8Vi_4Q6!J!Pe(KiaA!+;;k=$u2w>D^wxy96^!~FMKx^92 zb060Hyhzu&-_A*O3=DhzSr3)hF1*lRVAxt8hRUBdd>~YO4buaahTaXoe)_QGy!^3I zW$|f!0;Zq^2ar&}_+ZJi+Io8|f6<%pI;PWUFwEbRX5bA1tctyN62AKrPv^g~s)tS! zW&AeAd4Z7Som^ojI{Wsm3O~)Ef3-;2BICoSvNui0+lhr?$Un=&`UZKx3t(E@q?rt$ zEujDK^!)YfU%uGCmJ0cWdth^{fk|4iI7m-l|tRJWte#0-_O!-iP^;-p#+oDt+%hU zTHpLPS{+jlHLjeEpyg~utgPWHLBuo*pcAmH#|_nZ_=zS4>f;2!CsBOS^xs*}v=!A; zt@%M*fPW7NRx$zc|3lU+eoii-Z^JB)Qbgj(-zSduO_rlMoP~)) zLF&(Y6@~pBdYd8{^AA;v#EPHEm{)Qf@na@aV>4;WjZ`*K9GGj28v3tmI?7pie?afX zc2t4|Y}>GAz`kwv)pI&iit{Teo=Ra8tEnw>UjAR2obO*H7LWK~Fmet6w0e;hoCn!9 z`Ivi1-e=3$5r4jy7Z)*7FfO8^De#*sGmDootWvdb`Ly0_x5UFB-@|Rj=_yEpu3EVO zteo;G*Uqnnv%q(VtN5wSHg3`}ko*hi9Oew7Rx*Q0IZk`L^uHCv0?_Cwa;ULK02>XM z!_Pa@(0ymXKIvt*JUJJ<%RZetHuThbvaL$Yy`pZ#-eic_;cKf;V$<(nEH$y1^ zRsDsLP3&t{xJLfB3Xo6s^$?k_xg7-tr5{ux>sF%qUHeCIG&aDb-p8<8)LX9~Cg4Hw zjTHC$47hGrdH4>d6zgqDyA%$3%&?7?U9(D1hg<=Cz5-0UY}2hAjk55UsXKM{+(ek< zjuaCR2tyhO<~CN41|su{)qa@6%GjBKQ{%*o;b zB$*j77Mx`!(z>Q+N~(LCe`V`yzsR1W z>%){Qpa3avx>BfUx~Y4k(kXbo>8J*ajD-mim^tNY@jQWBcOFID40Os_K}*qDOU2@SI0IgG5c=+; z%sO%hLZ%gwaXZok;!E`pwXA*k%(HF2aI19e#1rj`;rJ)qFK)Y}k}3s~O>ItQ|`=&ue;m2wPz<TOAPv_u(i!Yw78DHsMNuF7P zaFE53YSCr5FwAj>1viJ8&u??zB-SpU9R_kc-?T5b1kS*8BDbZ7rwI3pB99IC3l1;k zBQ>3t2qvKoS*v{Q?TrTyl+3?*MYJO};c}m^302CIr%o|yTiHYCm8Sk)JC!qY)pr7j zuQ+eS(#fe8@4*YI`;&t+Fi>#(o1pmKRzF=l_zDT`pFkZRk>r+*TnV3k%SoS3IhxYj*12tqnybSvbASgPp#0MhTp?la(&;Y_;+b>|3bRq=03N zC=fpQ@1nDQY7a(iv%dod$KyQJUE3i2w&tQMZ%5@UQoWoAD8Ej6ZtqBw+nU$n%fI4o z%L|ivcHl$-gRJX?E4^GByrvPe=x0(5n`86^Yu@^O>7?!U@?bM9pp^(XdEegOU3B1u^T`M31tj1X@& zy}EFYeB~gwHO>CYArMFSi{F6Sw>B*nHkM*cc$Wqj;yX7emVr@a=`ECOfn!6 z1f%6t`r`jHyZ!!+FxEJ2-+~QB^>&KhVd^kNN^>(+&*NR84Tsm`0z{2mSYS`dN_mvgW+uuL0IruSWz&ox#bB{rN2!6Y(e51(2#c6?lM zu6VGKLzV2u6&_F|N`&`d(N7uju@1ZU;1QyRNl)5R$g1CqAxt0&f{_T}nxZ2%dcgQ# zt;73|x^IG%gKmjM!{o*zZA*84z|>-I4_{I>Qmf-9T?kVtre>D9XwMWn&(ai`)A>?c{ z?v`eb?%MAGTG`Y~I!0jN(>T|B8Dh-rBoyyuZ$W|}>?_i9d@T1jyaYHzrl5^r6iDL8 z{NfIzh(JBH>_Mx#tKYL_dy^M=ergM=Xyy^Sx z$m8$du+Q}goy1KwT4sy=sS~)8QkN@`YDE4cM*su*QFuRvUKK%VDuKx=W^*&WPPs-~ zY=(|a^X3s;lQq7A#iqE#P*V1krb>m;5A#UVc)tIP)1|8aWBrRuhZ;I%tec$85hYuo zEmNQ70(@f~-bzpjjb8Bd?@{x_J?IFfG?FQTO0kdq!NK?B+zCGDo$Je*^SnKi7Wth8X^PT zS@VeyRMqWQ><_pM4h%H37=Xc)mGz}9v+ZyLSLR8|P59X5_q%bCH0JSq$XWmQ5sl*) zXD?naq14oI1q&UKjv!NT{GMHFEjv~}_h!PgkdxXxZTwE&vh7z{;U@s6m9Iv@so&JZ z&pTG1M~v=7ZQ#xs6k1yQ-z0^J=mZx4iF(&Q0faIx+inlzFpdv}^(@B$i(Em{PS3;t zZSxK8fiZiV(QR#8aHLRe)ulUlgC_tB88$GVsZt_KBhi%_cLA?p)RScb9{H1YuI2cY z%Hq;bVgnp;VHHNSg2f27ZAPl6K7lddhwZ0-8je=CgDsYdo1!O;v*Z{gsUyCVb}{q# zj!x^y$A0Z5>MgG0^`b?k4&xUF_uA{QNWVN6$py(;_xr7OVt_Juw-%;gfz2Gu^esP& z!&d^l|MG>;-Ik#5fUj=87ixH`p#QNYuAl8eR{!m}MZtgGRNQ@IcwZgs^XF6CxPpSa zkv@MK&m43-{LbR50Vv+zwljnYTkebFv<=RO1=yV3RdbQzvxx;O?qduDF_aQ$Ewl4A zwysph(^THuobt|c`^KdRGnp16Yd}ON7v{YNOwC*Qo2S7qf?L^-6|z5-7O%UlF|qg($X;j zk(5RdL=e>9bNhesoaZ@bFMt<2XB)fY`d-)PB8LEX`^V{ziBm5XVM<;_=sKfXLoOtP zd4cLmbMtI<>4`q^C?Ym7qILh?zPL`tkrv&XOboHxafsf-;U`>yUC8M>VLNDB%S)ET z*%J~Q&Fv9?cjRW>PE+E;__aSET>y&#VSh3u8%g>Bk^0}EUokbJ6ee(14v(bW*1}Qr zKpE5!A#O)Spy&afgsb{*c8jF;Hmu!!NQ`&v-YEH=J#l|P5Ag!rN0oxMVDSOHa@AVo zzI2m2ZGL6R!s*1xv)ZLR2h4`!0XPE3un`SkU|G|ixwKgeC=xuoV+Ty&)>Zd|>~Lfo zd<3Q9!qdiYFQa^~ar`<{O>>}fypK-Rp1NAWg}A$+5`{@uFIwUhJIF(dTYDEq<${^a zFq%LnJNf=?we=J29Q3O(L930rzeTte2RH%f+GIP{j1YR3D`4s8WGa_7&A?cE!V)F? z(ByWtJ&B_va2PDQ-VCn|4vEAc>$sV5?PrV@|G-%oIU*sbseJJUmV~LoT62-5R0dl_ z7$8Ye`M9i-gFJ&RZ{}7GTL+|8KDyG^NE}GTQSoRm=%roT>NJiNiSZV1j zY)U@pUbmLBMkRjbgRL)ar35d!lnb3+1@Yum2b_m?!YVwME`Qo@^H2X4;vy6 z{)>4-T;!8%?TN39o?}eZYs?0dPt6r&Do!s!M!tqVtwp^x`bt(t@_A;XlS=2cR_)WVrw5_zoPhW^Cc>s`G%JL1o z{OE%rf39C=l(u_C@ius}+&rErT&(0aqFm#Z+e@qKc($mq*`t)OM9hN%qQyE+6>rQ1 z5wcNU$75<2=EG?uE;H&qk4%C|2K=tdwwubG_0dG<1Ta??Aq*F71uG)1ZoKbT8%4g@8^TP z{cDOo5Gl1D&y(KcLJ?X?zp6m-rN~5XGDHrLT@n#B)qig;y2M_a+JkK!1Gcpzy%z&1 z5a>3Ji+7*T!iJ6FmzPqn^LHe9vNQqW6|{)3E%YzI`p%Tksn|j2@5srlazfAxUSl~g zriNiA?t}q{;^MQS4Gfjn#QgDv%9U~2LddXrawg&BJ7K8&u2P9fY}`=n1bt>lY2|E` zf|};z*+lH2Szk05AQTI0B5mdshgz(VV@`RNpp`iB=M-0wYP@gOtwowQDj$F{l+nb$ zXP*AXcZ~G^eQF-|pVy>-?oWo`vkKn7H|Y1wqTG+zCnuh5rEz}t`7LQ3yrTc^e8Sbs zVQPf>t+=d{Kiw$3!<*@kJF69Ri0>Sl(oFdj-XG^AiHPq`y1a#782I-dU#%r zKKheQ+WC^$(Twu;W^NO_5(6p z{NE5oviW!Y2IrZP!W8A54R}NFxwGrpY6CXwss&XmLN_&b=6to$hE+lcsJ3_7EaQ4T zK9>LdsV;9rkQA+r^wrvyb5vlx&{`|03^!`L(4L|E!?J&2W*>F;{kuPMmgw<~1!Am- z%ir|piR?R>EFTOobfh(_gSf{sFhuYbeZBa!K7!y^t}m=RCWz@7mF#4(XpF~;*seVK z2OTn|W|j)|NVWQt?Z4_XHvZ3<3jdNR;Y+pyWxtbZiQ-{d&0mv~mk|c?kZK*lLmMPV z@IofLj+B@hCsQ?zOii&)$nRewd*cQd*1ugM?D7ww%96O85|+>+(~7gMX1`rr0m}d) z%{MQ9)&MeZW9Wlvk9y@s!}Fw>9(ofY$!EXb-X9eeYV%%7kACG@Fz|gyw9{j5(4kJ} z-Hn;V_N*oIOjl*pE6+Y$^oz-}?Xji%8LvZaFXzN$8OOiqR;9e}Io@9C}FgqB}H$~*jR%mQ+$DbQXvV@X)g<%zt(kkB; zk?ymH;Do`yo)=gVy?H|R|J@sH=p$KO#SgoS25@L1Wv=Tt=L64bl>VE+7`OTO7z}09AzkKKrVD7Wwy{NYXif!W%_)06$B?% z##O4o)SuK7eBK1b3N5gKU(B75z@bWTXF#bWAzDH>(<{G#gJFCm%G|kQ6;^?{*2~(h z%p3}1)wbiX3_HaAJx2zpbBTu_Q+X~+TLxEZI{~iHMukLmeJH3gsXklH%F?7FV}jxW z=N>$1z?+fqz>6?KGC4_%)xoyQvXZ_W6`v*_u^%Y%w&;zh|N0n#10;4EJN(RmrFKoR zXGsmF8rD!^$$!R5qLMuzqOnvBx;0lQogO{p92c{P+Sts(c%fxrCdl#Jix+{c6|RnD ztqCwJXIl8t3;`E}zW8_aME06U7dM%ihb3TUpR63kh9h$rh>O8HGzgEVM9udtt7V@q zH!g`0gN|QI+zJ)~hAZpzR0{31KJVaf=0leFNEgI~0=~<=u}c9ie1HV!ijyOlMr0K^ z*sDiHw1{jmMAY5R2c3a-lnRm9u}>>qbhSnnpP**S1;R0*?^A$)cW8Ucy3DlK|G059)-Tr-cha(K3``XHTC*o5vQVid%RH_p2Q~K)CLK%Qo8o(0V>L zw(>4=RryM^JLe!sjE=+D&X{T>eRIku`jfryziT%834l^g0mCLr>flbF$wIn+a<2Pf-9(4h535XKDEY%m6uS)Gi;o` z(N&5GHIr1;-V@(pV#ul$vNtH1cpAr;#xWJ2#A<}bYQP2h;Sl?#++Q%7*6I) zI($Gx@Id2!EWx0W8tT(h^$xy8Pi0N3!^4HyJ<)83$Ipdg*qMutzp;ieqA~Wv$l_Wf zs5PXz908YI2x-c-bnE8fY3Jb)ns~nc`7}r>*asn9-jxj z?#7eOoLyAl0 zs)w4#r@N3frN(u|#-28na|-pw%0|+UGc~`yON^Cf9`zoGR(Ow&w1sIH(BCDvYWvT; zs#GlZ99Q1FyRa_3<4Lx25j{*Kk0I}pa;8%oB6msuaq1rg^2mOXpFKwQn7V4j=Q$3w zX1x3w7kag3NL}19W`k=fXmm0rW^T$L1qN$Gis;YYh{8M$Ubi*1w@bq{Z*_wI<>1oV zbOi2CmB^oy4-;hX-Q&rTh3CzpnG+g$VBP=-i1M1_1- zNlywQgyusiMg7?oHRQX&IJ|SfwcDk5a^5xW!bckWPu7d>nJ}d&;@cN}c}> z(}kFHh%$wZke$KoA@0`4664oczVy|Z_o|mn((Jj&Hi+8KDL$Xq{ujmn_$H%CtA|sD zfL5MYmXYAG#{R2+IXkp<$YF-s1d~k5@A8oL!JPCT^=LjxL$691T1zx<>sgmw7~V6V zCg#I?iMN{tnomGIgn=}@D-t_37W>xX%SG>*TgMtt)@NCTG1!n799vA*LF4h2-ldAN zMnZOiSvB(}1n=f(U^u;RpB^!-ep_kD5-+9s&4V~^`;%V-`sZB`#eUF#kVp4nt3q_; zspA4SVu;G+QUl-yD)hJq=Bh!rs$534hL4uhFvyVf9%rq3e5cC-Mw=1rP&N(%9OR6N zjEN#IwN%w=s>@CRCKW1w_8Qz`rfN8v#B|aoq|>rdEJ=2TvUm<_QFaF!8Q5zf%w_OW z$Q(8=QYEt-c8eih24PF~RkGPl*<2-|adOFRG?}f=)Vu$@I*??dC~|HLFQctf41%Jv zBjc>j`TUzXr;QZM}! zSdLwgVNkfBGKH`qWtz1U2Rsc!aasymBW9mC-v91_@xoL2`RlkCvYse+@;>GXNCC3K z5&67ROThuTqPQ!B^Z7SC+%_NX$5z@Rpj>09G$Hi_#ol|LBfMgHvNps|OsuviPY9}aOy0KFg>(wOmF4}Z^8!h(L zi;*oG70hPDaV3G&^hL~85hP9K75~z}59f&oMg~pJ+A~e#Pe@SXG@$aOPS{|ndA


_d;=H^z+#wZlQ66NrUO7m4Gn(D9)MK6M3 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

g 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

BB6D{mh6)^eLa4O^IkpDR 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 literal 0 HcmV?d00001 From 3dd15499e6a1f82db7f8c9306300eadd66f77fcb Mon Sep 17 00:00:00 2001 From: jubnl Date: Mon, 30 Mar 2026 05:37:30 +0200 Subject: [PATCH 12/63] Add documentation --- MCP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MCP.md b/MCP.md index 74f0f2b..0b64b52 100644 --- a/MCP.md +++ b/MCP.md @@ -12,7 +12,7 @@ structured API. - [Limitations & Important Notes](#limitations--important-notes) - [Resources (read-only)](#resources-read-only) - [Tools (read-write)](#tools-read-write) -- [Screenshots](#screenshots) +- [Example](#example) --- From a9948499e4a626f058517f077873fb5fa923096e Mon Sep 17 00:00:00 2001 From: Numira Date: Mon, 30 Mar 2026 09:24:52 +0200 Subject: [PATCH 13/63] Add files via upload Added support for Czech language (complete translation of all strings) --- client/src/i18n/translations/cs.ts | 802 +++++++++++++++++++++++++++++ 1 file changed, 802 insertions(+) create mode 100644 client/src/i18n/translations/cs.ts diff --git a/client/src/i18n/translations/cs.ts b/client/src/i18n/translations/cs.ts new file mode 100644 index 0000000..a470c36 --- /dev/null +++ b/client/src/i18n/translations/cs.ts @@ -0,0 +1,802 @@ +const cs: Record = { + // Společné (Common) + 'common.save': 'Uložit', + 'common.cancel': 'Zrušit', + 'common.delete': 'Smazat', + 'common.edit': 'Upravit', + 'common.add': 'Přidat', + 'common.loading': 'Načítání...', + 'common.error': 'Chyba', + 'common.back': 'Zpět', + 'common.all': 'Vše', + 'common.close': 'Zavřít', + 'common.open': 'Otevřít', + 'common.upload': 'Nahrát', + 'common.search': 'Hledat', + 'common.confirm': 'Potvrdit', + 'common.ok': 'OK', + 'common.yes': 'Ano', + 'common.no': 'Ne', + 'common.nebo': 'nebo', + 'common.none': 'Žádné', + 'common.date': 'Datum', + 'common.rename': 'Přejmenovat', + 'common.name': 'Jméno', + 'common.email': 'E-mail', + 'common.password': 'Heslo', + 'common.saving': 'Ukládání...', + 'common.update': 'Aktualizovat', + 'common.change': 'Změnit', + 'common.uploading': 'Nahrávání…', + 'common.backToPlanning': 'Zpět k plánování', + 'common.reset': 'Resetovat', + + // Navigační lišta (Navbar) + 'nav.trip': 'Cesta', + 'nav.share': 'Sdílet', + 'nav.settings': 'Nastavení', + 'nav.admin': 'Administrace', + 'nav.logout': 'Odhlásit se', + 'nav.lightMode': 'Světlý režim', + 'nav.darkMode': 'Tmavý režim', + 'nav.autoMode': 'Automatický režim', + 'nav.administrator': 'Administrátor', + 'nav.myTrips': 'Moje cesty', + + // Přehled (Dashboard) + 'dashboard.title': 'Moje cesty', + 'dashboard.subtitle.loading': 'Načítání cest...', + 'dashboard.subtitle.cest': '{count} cest ({archived} archivováno)', + 'dashboard.subtitle.empty': 'Začněte svou první cestu', + 'dashboard.subtitle.activeOne': '{count} aktivní cesta', + 'dashboard.subtitle.activeMany': '{count} aktivních cest', + 'dashboard.subtitle.archivedSuffix': ' · {count} archivováno', + 'dashboard.newTrip': 'Nová cesta', + 'dashboard.gridView': 'Mřížka', + 'dashboard.listView': 'Seznam', + 'dashboard.currency': 'Měna', + 'dashboard.timezone': 'Časová pásma', + 'dashboard.localTime': 'Místní čas', + 'dashboard.timezoneCustomTitle': 'Vlastní pásmo', + 'dashboard.timezoneCustomLabelPlaceholder': 'Popisek (volitelné)', + 'dashboard.timezoneCustomTzPlaceholder': 'např. America/New_York', + 'dashboard.timezoneCustomAdd': 'Přidat', + 'dashboard.timezoneCustomErrorEmpty': 'Zadejte identifikátor pásma', + 'dashboard.timezoneCustomErrorInvalid': 'Neplatné pásmo. Použijte formát jako např. Europe/Prague', + 'dashboard.timezoneCustomErrorDuplicate': 'Již bylo přidáno', + 'dashboard.emptyTitle': 'Zatím žádné cesty', + 'dashboard.emptyText': 'Vytvořte svou první cestu a začněte plánovat!', + 'dashboard.emptyButton': 'Vytvořit první cestu', + 'dashboard.nextTrip': 'Další cesta', + 'dashboard.shared': 'Sdílené', + 'dashboard.sharedBy': 'Sdílí {name}', + 'dashboard.days': 'Dní', + 'dashboard.places': 'Míst', + 'dashboard.archive': 'Archivovat', + 'dashboard.restore': 'Obnovit', + 'dashboard.archived': 'Archivováno', + 'dashboard.status.ongoing': 'Probíhající', + 'dashboard.status.today': 'Dnes', + 'dashboard.status.tomorrow': 'Zítra', + 'dashboard.status.past': 'Proběhlé', + 'dashboard.status.daysLeft': 'zbývá {count} dní', + 'dashboard.toast.loadError': 'Nepodařilo se načíst cesty', + 'dashboard.toast.created': 'Cesta byla úspěšně vytvořena!', + 'dashboard.toast.createError': 'Nepodařilo se vytvořit cestu', + 'dashboard.toast.updated': 'Cesta byla aktualizována!', + 'dashboard.toast.updateError': 'Nepodařilo se aktualizovat cestu', + 'dashboard.toast.deleted': 'Cesta byla smazána', + 'dashboard.toast.deleteError': 'Nepodařilo se smazat cestu', + 'dashboard.toast.archived': 'Cesta byla archivována', + 'dashboard.toast.archiveError': 'Nepodařilo se archivovat cestu', + 'dashboard.toast.restored': 'Cesta byla obnovena', + 'dashboard.toast.restoreError': 'Nepodařilo se obnovit cestu', + 'dashboard.confirm.delete': 'Smazat cestu „{title}“? Všechna místa a plány budou trvale smazány.', + 'dashboard.editTrip': 'Upravit cestu', + 'dashboard.createTrip': 'Vytvořit novou cestu', + 'dashboard.tripTitle': 'Název', + 'dashboard.tripTitlePlaceholder': 'např. Léto v Japonsku', + 'dashboard.tripDescription': 'Popis', + 'dashboard.tripDescriptionPlaceholder': 'O čem je tato cesta?', + 'dashboard.startDate': 'Datum začátku', + 'dashboard.endDate': 'Datum konce', + 'dashboard.noDateHint': 'Datum nezadáno – výchozí délka nastavena na 7 dní. Toto lze kdykoli změnit.', + 'dashboard.coverImage': 'Úvodní obrázek', + 'dashboard.addCoverImage': 'Vybrat úvodní obrázek (nebo přetáhnout sem)', + 'dashboard.addMembers': 'Spolucestující', + 'dashboard.addMember': 'Přidat člena', + 'dashboard.coverSaved': 'Úvodní obrázek uložen', + 'dashboard.coverUploadError': 'Nahrávání se nezdařilo', + 'dashboard.coverRemoveError': 'Odstranění se nezdařilo', + 'dashboard.titleRequired': 'Název je povinný', + 'dashboard.endDateError': 'Datum konce musí být po datu začátku', + + // Nastavení (Settings) + 'settings.title': 'Nastavení', + 'settings.subtitle': 'Upravte své osobní nastavení', + 'settings.map': 'Mapy', + 'settings.mapTemplate': 'Šablona mapy', + 'settings.mapTemplatePlaceholder.select': 'Vyberte šablonu...', + 'settings.mapDefaultHint': 'Ponechte prázdné pro OpenStreetMap (výchozí)', + 'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', + 'settings.mapHint': 'URL šablony pro mapové dlaždice', + 'settings.latitude': 'Zeměpisná šířka', + 'settings.longitude': 'Zeměpisná délka', + 'settings.saveMap': 'Uložit nastavení mapy', + 'settings.apiKeys': 'API klíče', + 'settings.mapsKey': 'Google Maps API klíč', + 'settings.mapsKeyHint': 'Pro vyhledávání míst. Vyžaduje Places API (New). Získáte na console.cloud.google.com', + 'settings.weatherKey': 'OpenWeatherMap API klíč', + 'settings.weatherKeyHint': 'Pro předpověď počasí. Zdarma na openweathermap.org/api', + 'settings.keyPlaceholder': 'Vložte klíč...', + 'settings.configured': 'Nastaveno', + 'settings.saveKeys': 'Uložit klíče', + 'settings.display': 'Zobrazení', + 'settings.colorMode': 'Barevné schéma', + 'settings.light': 'Světlé', + 'settings.dark': 'Tmavé', + 'settings.auto': 'Automatické', + 'settings.language': 'Jazyk', + 'settings.temperature': 'Jednotky teploty', + 'settings.timeFormat': 'Formát času', + 'settings.routeCalculation': 'Výpočet trasy', + 'settings.on': 'Zapnuto', + 'settings.off': 'Vypnuto', + 'settings.account': 'Účet', + 'settings.username': 'Uživatelské jméno', + 'settings.email': 'E-mail', + 'settings.role': 'Role', + 'settings.roleAdmin': 'Administrátor', + 'settings.oidcLinked': 'Propojeno přes', + 'settings.changePassword': 'Změnit heslo', + 'settings.currentPassword': 'Současné heslo', + 'settings.currentPasswordRequired': 'Současné heslo je vyžadováno', + 'settings.newPassword': 'Nové heslo', + 'settings.confirmPassword': 'Potvrdit nové heslo', + 'settings.updatePassword': 'Aktualizovat heslo', + 'settings.passwordRequired': 'Zadejte prosím současné i nové heslo', + 'settings.passwordTooShort': 'Heslo musí mít alespoň 8 znaků', + 'settings.passwordMismatch': 'Hesla se neshodují', + 'settings.passwordWeak': 'Heslo musí obsahovat velké a malé písmeno a číslici', + 'settings.passwordChanged': 'Heslo bylo úspěšně změněno', + 'settings.deleteAccount': 'Smazat účet', + 'settings.deleteAccountTitle': 'Smazat váš účet?', + 'settings.deleteAccountWarning': 'Váš účet a všechny vaše cesty, místa a soubory budou trvale smazány. Tuto akci nelze vrátit.', + 'settings.deleteAccountConfirm': 'Smazat natrvalo', + 'settings.deleteBlockedTitle': 'Účet nelze smazat', + 'settings.deleteBlockedMessage': 'Jste jediným administrátorem. Před smazáním svého účtu předejte roli administrátora jinému uživateli.', + 'settings.roleUser': 'Uživatel', + 'settings.saveProfile': 'Uložit profil', + 'settings.toast.mapSaved': 'Nastavení map uloženo', + 'settings.toast.keysSaved': 'API klíče uloženy', + 'settings.toast.displaySaved': 'Nastavení zobrazení uloženo', + 'settings.toast.profileSaved': 'Profil byl uložen', + 'settings.uploadAvatar': 'Nahrát profilový obrázek', + 'settings.removeAvatar': 'Odebrat profilový obrázek', + 'settings.avatarUploaded': 'Profilový obrázek byl aktualizován', + 'settings.avatarRemoved': 'Profilový obrázek byl odstraněn', + 'settings.avatarError': 'Nahrávání se nezdařilo', + 'settings.mfa.title': 'Dvoufaktorové ověření (2FA)', + 'settings.mfa.description': 'Přidá druhý stupeň zabezpečení při přihlašování e-mailem a heslem. Použijte aplikaci (Google Authenticator, Authy apod.).', + 'settings.mfa.enabled': '2FA je pro váš účet aktivní.', + 'settings.mfa.disabled': '2FA není aktivní.', + 'settings.mfa.setup': 'Nastavit autentizační aplikaci', + 'settings.mfa.scanQr': 'Naskenujte tento QR kód ve vaší aplikaci nebo zadejte kód ručně.', + 'settings.mfa.secretLabel': 'Tajný klíč (pro ruční zadání)', + 'settings.mfa.codePlaceholder': '6místný kód', + 'settings.mfa.enable': 'Zapnout 2FA', + 'settings.mfa.cancelSetup': 'Zrušit', + 'settings.mfa.disableTitle': 'Vypnout 2FA', + 'settings.mfa.disableHint': 'Zadejte své heslo k účtu a aktuální kód z aplikace.', + 'settings.mfa.disable': 'Vypnout 2FA', + 'settings.mfa.toastEnabled': 'Dvoufaktorové ověření bylo zapnuto', + 'settings.mfa.toastDisabled': 'Dvoufaktorové ověření bylo vypnuto', + 'settings.mfa.demoBlocked': 'Není k dispozici v demo režimu', + + // Přihlášení (Login) + 'login.error': 'Přihlášení se nezdařilo. Zkontrolujte prosím své údaje.', + 'login.tagline': 'Vaše cesty.\nVáš plán.', + 'login.description': 'Plánujte cesty společně s interaktivními mapami, rozpočty a synchronizací v reálném čase.', + 'login.features.maps': 'Interaktivní mapy', + 'login.features.mapsDesc': 'Google Places, trasy a shlukování bodů', + 'login.features.realtime': 'Synchronizace v reálném čase', + 'login.features.realtimeDesc': 'Plánujte společně přes WebSocket', + 'login.features.budget': 'Sledování rozpočtu', + 'login.features.budgetDesc': 'Kategorie, grafy a náklady na osobu', + 'login.features.collab': 'Spolupráce', + 'login.features.collabDesc': 'Více uživatelů se sdílenými cestami', + 'login.features.packing': 'Seznamy věcí', + 'login.features.packingDesc': 'Kategorie, pokrok v balení a návrhy', + 'login.features.bookings': 'Rezervace', + 'login.features.bookingsDesc': 'Lety, hotely, restaurace a další', + 'login.features.files': 'Dokumenty', + 'login.features.filesDesc': 'Nahrávejte a spravujte dokumenty', + 'login.features.routes': 'Chytré trasy', + 'login.features.routesDesc': 'Automatická optimalizace a export do Google Maps', + 'login.selfHosted': 'Self-hosted · Open Source · Vaše data zůstávají u vás', + 'login.title': 'Přihlásit se', + 'login.subtitle': 'Vítejte zpět', + 'login.signingIn': 'Přihlašování…', + 'login.signIn': 'Přihlásit se', + 'login.createAdmin': 'Vytvořit účet administrátora', + 'login.createAdminHint': 'Nastavte první administrátorský účet pro TREK.', + 'login.createAccount': 'Vytvořit účet', + 'login.createAccountHint': 'Zaregistrujte si nový účet.', + 'login.creating': 'Vytváření…', + 'login.noAccount': 'Nemáte účet?', + 'login.hasAccount': 'Již máte účet?', + 'login.register': 'Registrovat se', + 'login.emailPlaceholder': 'vas@email.cz', + 'login.username': 'Uživatelské jméno', + 'login.oidc.registrationDisabled': 'Registrace je zakázána. Kontaktujte svého administrátora.', + 'login.oidc.noEmail': 'Od poskytovatele nebyl přijat žádný e-mail.', + 'login.oidc.tokenFailed': 'Ověření se nezdařilo.', + 'login.oidc.invalidState': 'Neplatná relace. Zkuste to prosím znovu.', + 'login.demoFailed': 'Přihlášení do dema se nezdařilo', + 'login.oidcSignIn': 'Přihlásit se přes {name}', + 'login.oidcOnly': 'Ověřování heslem je zakázáno. Přihlaste se prosím přes SSO poskytovatele.', + 'login.demoHint': 'Vyzkoušejte demo – registrace není nutná', + 'login.mfaTitle': 'Dvoufaktorové ověření', + 'login.mfaSubtitle': 'Zadejte 6místný kód z vaší autentizační aplikace.', + 'login.mfaCodeLabel': 'Ověřovací kód', + 'login.mfaCodeRequired': 'Zadejte kód z aplikace.', + 'login.mfaHint': 'Otevřete Google Authenticator, Authy nebo jinou TOTP aplikaci.', + 'login.mfaBack': '← Zpět k přihlášení', + 'login.mfaVerify': 'Ověřit', + + // Registrace (Register) + 'register.passwordMismatch': 'Hesla se neshodují', + 'register.passwordTooShort': 'Heslo musí mít alespoň 6 znaků', + 'register.failed': 'Registrace se nezdařila', + 'register.getStarted': 'Začínáme', + 'register.subtitle': 'Vytvořte si účet a začněte plánovat svou vysněnou cestu.', + 'register.feature1': 'Neomezené plány cest', + 'register.feature2': 'Zobrazení na interaktivní mapě', + 'register.feature3': 'Správa míst a kategorií', + 'register.feature4': 'Sledování rezervací', + 'register.feature5': 'Vytváření seznamů věcí', + 'register.feature6': 'Ukládání fotek a souborů', + 'register.createAccount': 'Vytvořit účet', + 'register.startPlanning': 'Začít plánovat', + 'register.minChars': 'Min. 6 znaků', + 'register.confirmPassword': 'Potvrdit heslo', + 'register.repeatPassword': 'Heslo znovu', + 'register.registering': 'Registrace...', + 'register.register': 'Registrovat se', + 'register.hasAccount': 'Již máte účet?', + 'register.signIn': 'Přihlásit se', + + // Administrace (Admin) + 'admin.title': 'Administrace', + 'admin.subtitle': 'Správa uživatelů a systémová nastavení', + 'admin.tabs.users': 'Uživatelé', + 'admin.tabs.categories': 'Kategorie', + 'admin.tabs.backup': 'Zálohování', + 'admin.stats.users': 'Uživatelé', + 'admin.stats.cest': 'Cesty', + 'admin.stats.places': 'Místa', + 'admin.stats.photos': 'Fotky', + 'admin.stats.files': 'Soubory', + 'admin.table.user': 'Uživatel', + 'admin.table.email': 'E-mail', + 'admin.table.role': 'Role', + 'admin.table.created': 'Vytvořeno', + 'admin.table.lastLogin': 'Poslední přihlášení', + 'admin.table.actions': 'Akce', + 'admin.you': '(Vy)', + 'admin.editUser': 'Upravit uživatele', + 'admin.newPassword': 'Nové heslo', + 'admin.newPasswordHint': 'Ponechte prázdné pro zachování současného hesla', + 'admin.deleteUser': 'Smazat uživatele „{name}“? Všechny jeho cesty budou trvale smazány.', + 'admin.deleteUserTitle': 'Smazat uživatele', + 'admin.newPasswordPlaceholder': 'Zadejte nové heslo…', + 'admin.toast.loadError': 'Nepodařilo se načíst data administrace', + 'admin.toast.userUpdated': 'Uživatel byl aktualizován', + 'admin.toast.updateError': 'Aktualizace se nezdařila', + 'admin.toast.userDeleted': 'Uživatel byl smazán', + 'admin.toast.deleteError': 'Smazání se nezdařilo', + 'admin.toast.cannotDeleteSelf': 'Nemůžete smazat svůj vlastní účet', + 'admin.toast.userCreated': 'Uživatel byl vytvořen', + 'admin.toast.createError': 'Nepodařilo se vytvořit uživatele', + 'admin.toast.fieldsRequired': 'Uživatelské jméno, e-mail a heslo jsou povinné', + 'admin.createUser': 'Vytvořit uživatele', + 'admin.invite.title': 'Pozvánky', + 'admin.invite.subtitle': 'Vytvářejte jednorázové registrační odkazy', + 'admin.invite.create': 'Vytvořit odkaz', + 'admin.invite.createAndCopy': 'Vytvořit a zkopírovat', + 'admin.invite.empty': 'Zatím nebyly vytvořeny žádné pozvánky', + 'admin.invite.maxUses': 'Max. použití', + 'admin.invite.expiry': 'Vyprší za', + 'admin.invite.uses': 'použito', + 'admin.invite.expiresAt': 'vyprší', + 'admin.invite.createdBy': 'vytvořil', + 'admin.invite.active': 'Aktivní', + 'admin.invite.expired': 'Expirované', + 'admin.invite.usedUp': 'Využito', + 'admin.invite.copied': 'Odkaz byl zkopírován do schránky', + 'admin.invite.copyLink': 'Kopírovat odkaz', + 'admin.invite.deleted': 'Pozvánka smazána', + 'admin.invite.createError': 'Nepodařilo se vytvořit pozvánku', + 'admin.invite.deleteError': 'Nepodařilo se smazat pozvánku', + 'admin.tabs.settings': 'Nastavení', + 'admin.allowRegistration': 'Povolit registraci', + 'admin.allowRegistrationHint': 'Noví uživatelé se mohou sami registrovat', + 'admin.apiKeys': 'API klíče', + 'admin.apiKeysHint': 'Volitelné. Povoluje rozšířená data o místech (fotky, počasí).', + 'admin.mapsKey': 'Google Maps API klíč', + 'admin.mapsKeyHint': 'Povinné pro hledání míst. Získáte na console.cloud.google.com', + 'admin.mapsKeyHintLong': 'Bez API klíče se pro hledání používá OpenStreetMap. S Google klíčem lze načítat fotky, hodnocení a otevírací dobu.', + 'admin.recommended': 'Doporučeno', + 'admin.weatherKey': 'OpenWeatherMap API klíč', + 'admin.weatherKeyHint': 'Pro data o počasí. Zdarma na openweathermap.org', + 'admin.validateKey': 'Testovat', + 'admin.keyValid': 'Připojeno', + 'admin.keyInvalid': 'Neplatný', + 'admin.keySaved': 'API klíče byly uloženy', + 'admin.oidcTitle': 'Jednotné přihlášení (OIDC)', + 'admin.oidcSubtitle': 'Povolit přihlášení přes externí poskytovatele (Google, Apple, Authentik, Keycloak).', + 'admin.oidcDisplayName': 'Zobrazované jméno', + 'admin.oidcIssuer': 'URL vydavatele (Issuer)', + 'admin.oidcIssuerHint': 'OpenID Connect Issuer URL, např. https://accounts.google.com', + 'admin.oidcSaved': 'Konfigurace OIDC uložena', + 'admin.oidcOnlyMode': 'Zakázat ověřování heslem', + 'admin.oidcOnlyModeHint': 'Pokud je zapnuto, je povolen pouze SSO login. Registrace i přihlášení heslem budou zablokovány.', + + // Typy souborů (File Types) + 'admin.fileTypes': 'Povolené typy souborů', + 'admin.fileTypesHint': 'Nastavte, které typy souborů mohou uživatelé nahrávat.', + 'admin.fileTypesFormat': 'Přípony oddělené čárkou (např. jpg,png,pdf,doc). Použijte * pro všechny typy.', + 'admin.fileTypesSaved': 'Nastavení souborů uloženo', + + // Šablony balení (Packing Templates) + 'admin.bagTracking.title': 'Sledování zavazadel', + 'admin.bagTracking.subtitle': 'Povolit váhu a přiřazení k zavazadlům u položek balení', + 'admin.tabs.config': 'Konfigurace', + 'admin.tabs.templates': 'Šablony seznamů', + 'admin.packingTemplates.title': 'Šablony pro balení', + 'admin.packingTemplates.subtitle': 'Vytvářejte opakovaně použitelné seznamy pro své cesty', + 'admin.packingTemplates.create': 'Nová šablona', + 'admin.packingTemplates.namePlaceholder': 'Název šablony (např. Dovolená u moře)', + 'admin.packingTemplates.empty': 'Zatím nejsou vytvořeny žádné šablony', + 'admin.packingTemplates.items': 'položek', + 'admin.packingTemplates.categories': 'kategorií', + 'admin.packingTemplates.itemName': 'Název položky', + 'admin.packingTemplates.itemCategory': 'Kategorie', + 'admin.packingTemplates.categoryName': 'Název kategorie (např. Oblečení)', + 'admin.packingTemplates.addCategory': 'Přidat kategorii', + 'admin.packingTemplates.created': 'Šablona vytvořena', + 'admin.packingTemplates.deleted': 'Šablona smazána', + 'admin.packingTemplates.loadError': 'Nepodařilo se načíst šablony', + 'admin.packingTemplates.createError': 'Nepodařilo se vytvořit šablonu', + 'admin.packingTemplates.deleteError': 'Nepodařilo se smazat šablonu', + 'admin.packingTemplates.saveError': 'Uložení se nezdařilo', + + // Doplňky (Addons) + 'admin.tabs.addons': 'Doplňky', + 'admin.addons.title': 'Doplňky', + 'admin.addons.subtitle': 'Zapněte nebo vypněte funkce a přizpůsobte si TREK.', + 'admin.addons.catalog.memories.name': 'Vzpomínky', + 'admin.addons.catalog.memories.description': 'Sdílená fotoalba pro každou cestu', + 'admin.addons.catalog.packing.name': 'Balení', + 'admin.addons.catalog.packing.description': 'Seznamy věcí pro přípravu na cestu', + 'admin.addons.catalog.budget.name': 'Rozpočet', + 'admin.addons.catalog.budget.description': 'Sledování výdajů a plánování rozpočtu cesty', + 'admin.addons.catalog.documents.name': 'Dokumenty', + 'admin.addons.catalog.documents.description': 'Ukládání a správa cestovních dokladů', + 'admin.addons.catalog.vacay.name': 'Dovolená (Vacay)', + 'admin.addons.catalog.vacay.description': 'Osobní plánovač dovolené s kalendářem', + 'admin.addons.catalog.atlas.name': 'Atlas', + 'admin.addons.catalog.atlas.description': 'Mapa světa s navštívenými zeměmi a statistikami', + 'admin.addons.catalog.collab.name': 'Spolupráce', + 'admin.addons.catalog.collab.description': 'Poznámky v reálném čase, hlasování a chat pro plánování', + 'admin.addons.enabled': 'Povoleno', + 'admin.addons.disabled': 'Zakázáno', + 'admin.addons.type.trip': 'Cesta', + 'admin.addons.type.global': 'Globální', + 'admin.addons.tripHint': 'Dostupné jako karta v rámci každé cesty', + 'admin.addons.globalHint': 'Dostupné jako samostatná sekce v hlavní navigaci', + 'admin.addons.toast.updated': 'Doplněk byl aktualizován', + 'admin.addons.toast.error': 'Aktualizace doplňku se nezdařila', + 'admin.addons.noAddons': 'Žádné doplňky nejsou k dispozici', + + // Počasí (Weather) + 'admin.weather.title': 'Data o počasí', + 'admin.weather.badge': 'Od 24. března 2026', + 'admin.weather.description': 'TREK používá Open-Meteo jako zdroj dat. Je to bezplatná open-source služba – není vyžadován API klíč.', + 'admin.weather.forecast': 'Předpověď na 16 dní', + 'admin.weather.forecastDesc': 'Dříve 5 dní (OpenWeatherMap)', + 'admin.weather.climate': 'Historická klimatická data', + 'admin.weather.climateDesc': 'Průměry za posledních 85 let pro dny mimo 16denní předpověď', + 'admin.weather.requests': '10 000 požadavků denně', + 'admin.weather.requestsDesc': 'Zdarma, bez nutnosti klíče', + 'admin.weather.locationHint': 'Počasí se určuje podle prvního místa se souřadnicemi v daném dni.', + + // Aktualizace (Updates) + 'admin.update.available': 'Dostupná aktualizace', + 'admin.update.text': 'TREK {version} je k dispozici. Aktuálně používáte verzi {current}.', + 'admin.update.button': 'Zobrazit na GitHubu', + 'admin.update.install': 'Instalovat aktualizaci', + 'admin.update.confirmTitle': 'Instalovat aktualizaci?', + 'admin.update.confirmText': 'TREK bude aktualizován z verze {current} na {version}. Server se poté automaticky restartuje.', + 'admin.update.dataInfo': 'Všechna vaše data (cesty, uživatelé, API klíče, soubory) budou zachována.', + 'admin.update.warning': 'Aplikace bude během restartu krátce nedostupná.', + 'admin.update.confirm': 'Aktualizovat nyní', + 'admin.update.installing': 'Aktualizace probíhá…', + 'admin.update.success': 'Aktualizace byla nainstalována! Server se restartuje…', + 'admin.update.failed': 'Aktualizace se nezdařila', + 'admin.update.backupHint': 'Před aktualizací doporučujeme vytvořit zálohu.', + 'admin.update.backupLink': 'Přejít na zálohování', + 'admin.update.howTo': 'Jak aktualizovat', + 'admin.update.dockerText': 'Váš TREK běží v Dockeru. Pro aktualizaci na verzi {version} spusťte na svém serveru tyto příkazy:', + + // Vacay doplněk + 'vacay.subtitle': 'Plánování a správa dovolené', + 'vacay.settings': 'Nastavení', + 'vacay.year': 'Rok', + 'vacay.addYear': 'Přidat rok', + 'vacay.removeYear': 'Odebrat rok', + 'vacay.removeYearConfirm': 'Odebrat rok {year}?', + 'vacay.removeYearHint': 'Všechny záznamy o dovolené a firemní svátky pro tento rok budou trvale smazány.', + 'vacay.remove': 'Odebrat', + 'vacay.persons': 'Osoby', + 'vacay.noPersons': 'Žádné osoby nebyly přidány', + 'vacay.addPerson': 'Přidat osobu', + 'vacay.editPerson': 'Upravit osobu', + 'vacay.removePerson': 'Odebrat osobu', + 'vacay.removePersonConfirm': 'Odebrat osobu {name}?', + 'vacay.personName': 'Jméno', + 'vacay.personNamePlaceholder': 'Zadejte jméno', + 'vacay.color': 'Barva', + 'vacay.add': 'Přidat', + 'vacay.legend': 'Legenda', + 'vacay.publicHoliday': 'Státní svátek', + 'vacay.companyHoliday': 'Firemní volno', + 'vacay.weekend': 'Víkend', + 'vacay.modeVacation': 'Dovolená', + 'vacay.modeCompany': 'Firemní volno', + 'vacay.entitlement': 'Nárok', + 'vacay.entitlementDays': 'Dní', + 'vacay.used': 'Vyčerpáno', + 'vacay.remaining': 'Zbývá', + 'vacay.carriedOver': 'z roku {year}', + 'vacay.blockWeekends': 'Blokovat víkendy', + 'vacay.blockWeekendsHint': 'Zamezit zadávání dovolené na víkendové dny', + 'vacay.mon': 'Po', + 'vacay.tue': 'Út', + 'vacay.wed': 'St', + 'vacay.thu': 'Čt', + 'vacay.fri': 'Pá', + 'vacay.sat': 'So', + 'vacay.sun': 'Ne', + 'vacay.publicHolidays': 'Státní svátky', + 'vacay.publicHolidaysHint': 'Zobrazit státní svátky v kalendáři', + 'vacay.selectCountry': 'Vyberte zemi', + 'vacay.selectRegion': 'Vyberte region (volitelné)', + 'vacay.addCalendar': 'Přidat kalendář', + 'vacay.noCalendars': 'Zatím nebyly přidány žádné svátkové kalendáře', + 'vacay.companyHolidays': 'Firemní volno', + 'vacay.carryOver': 'Převod dovolené', + 'vacay.carryOverHint': 'Automaticky převádět zbývající dny do dalšího roku', + 'vacay.sharing': 'Sdílení', + 'vacay.owner': 'Vlastník', + 'vacay.shareSuccess': 'Plán byl úspěšně sdílen', + 'vacay.shareError': 'Nepodařilo se sdílet plán', + 'vacay.dissolve': 'Zrušit propojení', + 'vacay.dissolveHint': 'Znovu oddělit kalendáře. Vaše záznamy zůstanou zachovány.', + 'vacay.dissolveAction': 'Oddělit', + 'vacay.dissolved': 'Kalendáře byly odděleny', + 'vacay.fusedWith': 'Propojeno s', + 'vacay.you': 'vy', + 'vacay.noData': 'Žádná data', + 'vacay.changeColor': 'Změnit barvu', + 'vacay.inviteUser': 'Pozvat uživatele', + 'vacay.inviteHint': 'Pozvěte jiného uživatele TREK ke sdílení společného kalendáře dovolených.', + 'vacay.selectUser': 'Vyberte uživatele', + 'vacay.sendInvite': 'Odeslat pozvánku', + 'vacay.inviteSent': 'Pozvánka odeslána', + 'vacay.inviteError': 'Nepodařilo se odeslat pozvánku', + 'vacay.pending': 'čeká na vyřízení', + 'vacay.accept': 'Přijmout', + 'vacay.decline': 'Odmítnout', + 'vacay.acceptFusion': 'Přijmout a propojit', + 'vacay.inviteTitle': 'Žádost o propojení', + 'vacay.inviteWantsToFuse': 'vás zve ke sdílení kalendáře dovolených.', + 'vacay.fuseInfo1': 'Oba uvidíte všechny záznamy v jednom sdíleném kalendáři.', + 'vacay.fuseInfo2': 'Obě strany mohou vytvářet a upravovat záznamy tomu druhému.', + 'vacay.fuseInfo3': 'Obě strany mohou měnit nároky na dovolenou.', + 'vacay.fuseInfo4': 'Nastavení (svátky, firemní volno) jsou sdílená.', + 'vacay.fuseInfo5': 'Propojení lze kdykoli zrušit bez ztráty dat.', + + // Atlas doplněk + 'atlas.subtitle': 'Vaše stopa ve světě', + 'atlas.countries': 'Země', + 'atlas.cest': 'Cesty', + 'atlas.places': 'Místa', + 'atlas.unmark': 'Odebrat', + 'atlas.confirmMark': 'Označit tuto zemi jako navštívenou?', + 'atlas.confirmUnmark': 'Odebrat tuto zemi ze seznamu navštívených?', + 'atlas.markVisited': 'Označit jako navštívené', + 'atlas.markVisitedHint': 'Přidat tuto zemi do seznamu navštívených', + 'atlas.addToBucket': 'Přidat do seznamu přání (Bucket list)', + 'atlas.addToBucketHint': 'Uložit jako místo, které chcete navštívit', + 'atlas.bucketWhen': 'Kdy plánujete návštěvu?', + 'atlas.statsTab': 'Statistiky', + 'atlas.bucketTab': 'Bucket List', + 'atlas.addBucket': 'Přidat na Bucket List', + 'atlas.bucketNamePlaceholder': 'Místo nebo destinace...', + 'atlas.bucketNotesPlaceholder': 'Poznámky (volitelné)', + 'atlas.bucketEmpty': 'Váš seznam přání je prázdný', + 'atlas.bucketEmptyHint': 'Přidejte místa, která sníte navštívit', + 'atlas.days': 'Dní', + 'atlas.visitedCountries': 'Navštívené země', + 'atlas.cities': 'Města', + 'atlas.noData': 'Zatím žádná cestovatelská data', + 'atlas.noDataHint': 'Vytvořte cestu a přidejte místa, abyste viděli svou mapu světa', + 'atlas.lastTrip': 'Poslední cesta', + 'atlas.nextTrip': 'Další cesta', + 'atlas.daysLeft': 'dní zbývá', + 'atlas.streak': 'Série', + 'atlas.year': 'rok', + 'atlas.years': 'roky/let', + 'atlas.yearInRow': 'rok v řadě', + 'atlas.yearsInRow': 'let v řadě', + 'atlas.tripIn': 'cesta v roce', + 'atlas.tripsIn': 'cest v roce', + 'atlas.since': 'od', + 'atlas.europe': 'Evropa', + 'atlas.asia': 'Asie', + 'atlas.northAmerica': 'S. Amerika', + 'atlas.southAmerica': 'J. Amerika', + 'atlas.africa': 'Afrika', + 'atlas.oceania': 'Oceánie', + 'atlas.other': 'Ostatní', + 'atlas.firstVisit': 'První cesta', + 'atlas.lastVisitLabel': 'Poslední cesta', + 'atlas.tripSingular': 'Cesta', + 'atlas.tripPlural': 'Cesty', + 'atlas.placeVisited': 'Navštívené místo', + 'atlas.placesVisited': 'Navštívená místa', + + // Plánovač cesty (Trip Planner) + 'trip.tabs.plan': 'Plán', + 'trip.tabs.reservations': 'Rezervace', + 'trip.tabs.reservationsShort': 'Rez.', + 'trip.tabs.packing': 'Seznam věcí', + 'trip.tabs.packingShort': 'Balení', + 'trip.tabs.budget': 'Rozpočet', + 'trip.tabs.files': 'Soubory', + 'trip.loading': 'Načítání cesty...', + 'trip.mobilePlan': 'Plán', + 'trip.mobilePlaces': 'Místa', + 'trip.toast.placeUpdated': 'Místo bylo aktualizováno', + 'trip.toast.placeAdded': 'Místo bylo přidáno', + 'trip.toast.placeDeleted': 'Místo bylo smazáno', + 'trip.toast.selectDay': 'Prosím nejdříve vyberte den', + 'trip.toast.assignedToDay': 'Místo bylo přiřazeno ke dni', + 'trip.toast.reorderError': 'Nepodařilo se změnit pořadí', + 'trip.toast.reservationUpdated': 'Rezervace aktualizována', + 'trip.toast.reservationAdded': 'Rezervace přidána', + 'trip.toast.deleted': 'Smazáno', + 'trip.confirm.deletePlace': 'Opravdu chcete toto místo smazat?', + + // Denní plán (Day Plan) + 'dayplan.emptyDay': 'Na tento den nejsou naplánována žádná místa', + 'dayplan.addNote': 'Přidat poznámku', + 'dayplan.editNote': 'Upravit poznámku', + 'dayplan.noteAdd': 'Přidat poznámku', + 'dayplan.noteEdit': 'Upravit poznámku', + 'dayplan.noteTitle': 'Poznámka', + 'dayplan.noteSubtitle': 'Poznámka ke dni', + 'dayplan.totalCost': 'Celkové náklady', + 'dayplan.days': 'Dny', + 'dayplan.dayN': 'Den {n}', + 'dayplan.calculating': 'Počítání...', + 'dayplan.route': 'Trasa', + 'dayplan.optimize': 'Optimalizovat', + 'dayplan.optimized': 'Trasa optimalizována', + 'dayplan.routeError': 'Nepodařilo se vypočítat trasu', + 'dayplan.toast.needTwoPlaces': 'Pro optimalizaci trasy jsou potřeba alespoň dvě místa', + 'dayplan.toast.routeOptimized': 'Trasa byla optimalizována', + 'dayplan.toast.noGeoPlaces': 'Nebyla nalezena žádná místa se souřadnicemi pro výpočet trasy', + 'dayplan.confirmed': 'Potvrzeno', + 'dayplan.pendingRes': 'Čeká na potvrzení', + 'dayplan.pdf': 'PDF', + 'dayplan.pdfTooltip': 'Exportovat denní plán do PDF', + 'dayplan.pdfError': 'Export do PDF se nezdařil', + + // Boční panel míst (Places Sidebar) + 'places.addPlace': 'Přidat místo/aktivitu', + 'places.assignToDay': 'Přidat do kterého dne?', + 'places.all': 'Vše', + 'places.unplanned': 'Nezařazené', + 'places.search': 'Hledat místa...', + 'places.allCategories': 'Všechny kategorie', + 'places.count': '{count} míst', + 'places.countSingular': '1 místo', + 'places.allPlanned': 'Všechna místa jsou naplánována', + 'places.noneFound': 'Žádná místa nebyla nalezena', + 'places.editPlace': 'Upravit místo', + 'places.formName': 'Název', + 'places.formNamePlaceholder': 'např. Eiffelova věž', + 'places.formDescription': 'Popis', + 'places.formDescriptionPlaceholder': 'Krátký popis...', + 'places.formAddress': 'Adresa', + 'places.formAddressPlaceholder': 'Ulice, město, země', + 'places.formLat': 'Zeměpisná šířka', + 'places.formLng': 'Zeměpisná délka', + 'places.formCategory': 'Kategorie', + 'places.noCategory': 'Bez kategorie', + 'places.categoryNamePlaceholder': 'Název kategorie', + 'places.formTime': 'Čas', + 'places.startTime': 'Od', + 'places.endTime': 'Do', + 'places.endTimeBeforeStart': 'Čas konce je před časem začátku', + 'places.timeCollision': 'Časový překryv s:', + 'places.formWebsite': 'Webové stránky', + 'places.formNotesPlaceholder': 'Osobní poznámky...', + 'places.formReservation': 'Rezervace', + 'places.reservationNotesPlaceholder': 'Poznámky k rezervaci, potvrzovací kód...', + 'places.mapsSearchPlaceholder': 'Hledat místa...', + 'places.mapsSearchError': 'Hledání místa se nezdařilo.', + 'places.osmHint': 'Používáte hledání přes OpenStreetMap (bez fotek a hodnocení). Pro plné detaily přidejte Google API klíč v nastavení.', + 'places.osmActive': 'Hledání přes OpenStreetMap.', + 'places.categoryCreateError': 'Nepodařilo se vytvořit kategorii', + 'places.nameRequired': 'Prosím zadejte název', + 'places.saveError': 'Uložení se nezdařilo', + + // Rezervace (Reservations) + 'reservations.time': 'Čas', + 'reservations.timeAlt': 'Čas (alternativní, např. 19:30)', + 'reservations.notes': 'Poznámky', + 'reservations.notesPlaceholder': 'Další poznámky...', + 'reservations.meta.airline': 'Letecká společnost', + 'reservations.meta.flightNumber': 'Číslo letu', + 'reservations.meta.from': 'Z', + 'reservations.meta.to': 'Do', + 'reservations.meta.trainNumber': 'Číslo vlaku', + 'reservations.meta.platform': 'Nástupiště', + 'reservations.meta.seat': 'Sedadlo', + 'reservations.meta.checkIn': 'Check-in', + 'reservations.meta.checkOut': 'Check-out', + 'reservations.meta.linkAccommodation': 'Ubytování', + 'reservations.meta.pickAccommodation': 'Propojit s ubytováním', + 'reservations.meta.noAccommodation': 'Nic', + 'reservations.meta.hotelPlace': 'Ubytování', + 'reservations.meta.pickHotel': 'Vybrat ubytování', + 'reservations.meta.fromDay': 'Od dne', + 'reservations.meta.toDay': 'Do dne', + 'reservations.meta.selectDay': 'Vyberte den', + 'reservations.type.flight': 'Let', + 'reservations.type.hotel': 'Ubytování', + 'reservations.type.restaurant': 'Restaurace', + 'reservations.type.train': 'Vlak', + 'reservations.type.car': 'Pronájem auta', + 'reservations.type.cruise': 'Plavba', + 'reservations.type.event': 'Událost', + 'reservations.type.tour': 'Prohlídka', + 'reservations.type.other': 'Jiné', + 'reservations.confirm.delete': 'Opravdu chcete smazat rezervaci „{name}“?', + 'reservations.toast.updated': 'Rezervace aktualizována', + 'reservations.toast.removed': 'Rezervace smazána', + 'reservations.toast.fileUploaded': 'Soubor byl nahrán', + 'reservations.toast.uploadError': 'Nahrávání se nezdařilo', + 'reservations.newTitle': 'Nová rezervace', + 'reservations.bookingType': 'Typ rezervace', + 'reservations.titleLabel': 'Název', + 'reservations.titlePlaceholder': 'např. Let LH123, Hotel Adlon...', + 'reservations.locationAddress': 'Místo / Adresa', + 'reservations.locationPlaceholder': 'Adresa, letiště, hotel...', + 'reservations.confirmationCode': 'Rezervační kód', + 'reservations.confirmationPlaceholder': 'např. ABC12345', + 'reservations.day': 'Den', + 'reservations.noDay': 'Žádný den', + 'reservations.place': 'Místo', + 'reservations.noPlace': 'Žádné místo', + 'reservations.pendingSave': 'bude uloženo…', + 'reservations.uploading': 'Nahrávání...', + 'reservations.attachFile': 'Přiložit soubor', + 'reservations.linkExisting': 'Propojit stávající soubor', + 'reservations.toast.saveError': 'Uložení se nezdařilo', + 'reservations.toast.updateError': 'Aktualizace se nezdařila', + 'reservations.toast.deleteError': 'Smazání se nezdařilo', + 'reservations.confirm.remove': 'Odstranit rezervaci pro „{name}“?', + + // Soubory (Files) + 'files.toast.deleted': 'Soubor byl smazán', + 'files.toast.deleteError': 'Nepodařilo se smazat soubor', + 'files.sourcePlan': 'Denní plán', + 'files.sourceBooking': 'Rezervace', + 'files.attach': 'Přiložit', + 'files.pasteHint': 'Můžete také vložit obrázek ze schránky (Ctrl+V)', + 'files.trash': 'Koš', + 'files.trashEmpty': 'Koš je prázdný', + 'files.emptyTrash': 'Vysypat koš', + 'files.restore': 'Obnovit', + 'files.star': 'Označit hvězdičkou', + 'files.unstar': 'Odebrat hvězdičku', + 'files.assign': 'Přiřadit', + 'files.assignTitle': 'Přiřadit soubor', + 'files.assignPlace': 'Místo', + 'files.assignBooking': 'Rezervace', + 'files.unassigned': 'Nepřiřazeno', + 'files.unlink': 'Zrušit propojení', + 'files.toast.trashed': 'Přesunuto do koše', + 'files.toast.restored': 'Soubor byl obnoven', + 'files.toast.trashEmptied': 'Koš byl vysypán', + 'files.toast.assigned': 'Soubor byl přiřazen', + 'files.toast.assignError': 'Přiřazení se nezdařilo', + 'files.toast.restoreError': 'Obnovení se nezdařilo', + 'files.confirm.permanentDelete': 'Trvale smazat tento soubor? Tuto akci nelze vrátit.', + 'files.confirm.emptyTrash': 'Trvale smazat všechny soubory v koši? Tuto akci nelze vrátit.', + 'files.noteLabel': 'Poznámka', + 'files.notePlaceholder': 'Přidat poznámku...', + + // Balení (Packing) + 'packing.title': 'Seznam věcí', + 'packing.empty': 'Seznam věcí je prázdný', + 'packing.progress': '{packed} z {total} zabaleno ({percent} %)', + 'packing.clearChecked': 'Odstranit {count} hotových', + 'packing.clearCheckedShort': 'Odstranit {count}', + 'packing.suggestions': 'Návrhy', + 'packing.suggestionsTitle': 'Přidat návrhy', + 'packing.allSuggested': 'Všechny návrhy byly přidány', + 'packing.allPacked': 'Vše je zabaleno!', + 'packing.addPlaceholder': 'Přidat novou položku...', + 'packing.categoryPlaceholder': 'Kategorie...', + 'packing.filterAll': 'Vše', + 'packing.filterOpen': 'K zabalení', + 'packing.filterDone': 'Hotovo', + 'packing.emptyTitle': 'Seznam věcí je prázdný', + 'packing.emptyHint': 'Přidejte položky nebo použijte návrhy', + 'packing.emptyFiltered': 'Žádné položky neodpovídají filtru', + 'packing.menuRename': 'Přejmenovat', + 'packing.menuCheckAll': 'Označit vše', + 'packing.menuUncheckAll': 'Odznačit vše', + 'packing.menuDeleteCat': 'Smazat kategorii', + 'packing.assignUser': 'Přiřadit uživateli', + 'packing.noMembers': 'Žádní členové cesty', + 'packing.addItem': 'Přidat položku', + 'packing.addItemPlaceholder': 'Název položky...', + 'packing.addCategory': 'Přidat kategorii', + 'packing.newCategoryPlaceholder': 'Název kategorie (např. Oblečení)', + + // Spolupráce (Collab / Chat) + 'collab.chat.today': 'Dnes', + 'collab.chat.yesterday': 'Včera', + 'collab.chat.deletedMessage': 'smazal zprávu', + 'collab.chat.loadMore': 'Načíst starší zprávy', + 'collab.chat.justNow': 'právě teď', + 'collab.chat.minutesAgo': 'před {n} min', + 'collab.chat.hoursAgo': 'před {n} h', + 'collab.notes.title': 'Poznámky', + 'collab.notes.new': 'Nová poznámka', + 'collab.notes.empty': 'Zatím žádné poznámky', + 'collab.notes.emptyHint': 'Začněte zapisovat nápady a plány', + 'collab.notes.all': 'Vše', + 'collab.notes.titlePlaceholder': 'Poznámka...', + 'collab.notes.noCategory': 'Bez kategorie', + 'collab.notes.color': 'Barva', + 'collab.notes.save': 'Uložit', + 'collab.notes.cancel': 'Zrušit', + 'collab.notes.edit': 'Upravit', + 'collab.notes.delete': 'Smazat', + 'collab.notes.pin': 'Připnout', + 'collab.notes.unpin': 'Odepnout', + 'collab.notes.daysAgo': 'před {n} dny', + 'collab.notes.categorySettings': 'Spravovat kategorie', + 'collab.notes.create': 'Vytvořit', + 'collab.notes.website': 'Webové stránky', + 'collab.notes.websitePlaceholder': 'https://...', + 'collab.notes.attachFiles': 'Přiložit soubory', + 'collab.notes.noCategoriesYet': 'Zatím žádné kategorie', + 'collab.notes.emptyDesc': 'Vytvořte poznámku a začněte', + 'collab.polls.title': 'Hlasování', + 'collab.polls.new': 'Nové hlasování', + 'collab.polls.empty': 'Zatím žádná hlasování', + 'collab.polls.emptyHint': 'Zeptejte se skupiny a hlasujte společně', + 'collab.polls.question': 'Otázka', + 'collab.polls.questionPlaceholder': 'Co bychom měli dělat?', + 'collab.polls.addOption': '+ Přidat možnost', + 'collab.polls.optionPlaceholder': 'Možnost {n}', + 'collab.polls.create': 'Vytvořit', +}; \ No newline at end of file From 874c1292c78e5e0a291e81855a010fca7b381746 Mon Sep 17 00:00:00 2001 From: Numira Date: Mon, 30 Mar 2026 09:32:34 +0200 Subject: [PATCH 14/63] Add Czech language support to translation context --- client/src/i18n/TranslationContext.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/client/src/i18n/TranslationContext.tsx b/client/src/i18n/TranslationContext.tsx index 64dd34c..0bf408e 100644 --- a/client/src/i18n/TranslationContext.tsx +++ b/client/src/i18n/TranslationContext.tsx @@ -9,6 +9,7 @@ import zh from './translations/zh' import nl from './translations/nl' import ar from './translations/ar' import br from './translations/br' +import cs from './translations/cs' type TranslationStrings = Record @@ -19,13 +20,14 @@ export const SUPPORTED_LANGUAGES = [ { value: 'fr', label: 'Français' }, { value: 'nl', label: 'Nederlands' }, { value: 'br', label: 'Português (Brasil)' }, + { value: 'cs', label: 'Česky' }, { value: 'ru', label: 'Русский' }, { value: 'zh', label: '中文' }, { value: 'ar', label: 'العربية' }, ] as const -const translations: Record = { de, en, es, fr, ru, zh, nl, ar, br } -const LOCALES: Record = { de: 'de-DE', en: 'en-US', es: 'es-ES', fr: 'fr-FR', ru: 'ru-RU', zh: 'zh-CN', nl: 'nl-NL', ar: 'ar-SA', br: 'pt-BR' } +const translations: Record = { de, en, es, fr, ru, zh, nl, ar, br, cs } +const LOCALES: Record = { de: 'de-DE', en: 'en-US', es: 'es-ES', fr: 'fr-FR', ru: 'ru-RU', zh: 'zh-CN', nl: 'nl-NL', ar: 'ar-SA', br: 'pt-BR', cs: 'cs-CZ' } const RTL_LANGUAGES = new Set(['ar']) export function getLocaleForLanguage(language: string): string { @@ -34,7 +36,7 @@ export function getLocaleForLanguage(language: string): string { export function getIntlLanguage(language: string): string { if (language === 'br') return 'pt-BR' - return ['de', 'es', 'fr', 'ru', 'zh', 'nl', 'ar'].includes(language) ? language : 'en' + return ['de', 'es', 'fr', 'ru', 'zh', 'nl', 'ar', 'cs'].includes(language) ? language : 'en' } export function isRtlLanguage(language: string): boolean { From 267271d97aceb8e6136e9f44b047eeb0e8b39bc4 Mon Sep 17 00:00:00 2001 From: Numira Date: Mon, 30 Mar 2026 09:40:11 +0200 Subject: [PATCH 15/63] Change GeoJSON fetch URL to 50m resolution Updated GeoJSON data source for country boundaries. --- client/src/pages/AtlasPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/pages/AtlasPage.tsx b/client/src/pages/AtlasPage.tsx index 59723d2..1687dfc 100644 --- a/client/src/pages/AtlasPage.tsx +++ b/client/src/pages/AtlasPage.tsx @@ -179,7 +179,7 @@ export default function AtlasPage(): React.ReactElement { // Load GeoJSON world data (direct GeoJSON, no conversion needed) useEffect(() => { - fetch('https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_110m_admin_0_countries.geojson') + fetch('https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_50m_admin_0_countries.geojson') .then(r => r.json()) .then(geo => { // Dynamically build A2→A3 mapping from GeoJSON From 21ed7ea4a2b394e9a36f94b215214f1154d00973 Mon Sep 17 00:00:00 2001 From: Numira Date: Mon, 30 Mar 2026 10:03:11 +0200 Subject: [PATCH 16/63] Change GeoJSON fetch URL to 110m resolution Updated GeoJSON data source to use 110m resolution. --- client/src/pages/AtlasPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/pages/AtlasPage.tsx b/client/src/pages/AtlasPage.tsx index 1687dfc..59723d2 100644 --- a/client/src/pages/AtlasPage.tsx +++ b/client/src/pages/AtlasPage.tsx @@ -179,7 +179,7 @@ export default function AtlasPage(): React.ReactElement { // Load GeoJSON world data (direct GeoJSON, no conversion needed) useEffect(() => { - fetch('https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_50m_admin_0_countries.geojson') + fetch('https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_110m_admin_0_countries.geojson') .then(r => r.json()) .then(geo => { // Dynamically build A2→A3 mapping from GeoJSON From 3074724f2f360a221f51664b79cefe09d2b94f2d Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 30 Mar 2026 10:15:27 +0200 Subject: [PATCH 17/63] =?UTF-8?q?feat:=20show=20transport=20bookings=20in?= =?UTF-8?q?=20day=20plan=20timeline=20=E2=80=94=20closes=20#37?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Transport reservations (flights, trains, buses, cars, cruises) now appear directly in the day plan timeline based on their reservation date/time. - Transport cards display inline with places and notes, sorted by time - Click to open detail modal with all booking data and linked files - Persistent positioning via new day_plan_position field on reservations - Free drag & drop: places can be moved between/around transport entries - Arrow reorder works on the full visual list including transports - Timed places show confirmation popup when reorder breaks chronology - Custom delete confirmation popup for reservations - DB migration adds day_plan_position column to reservations table - New batch endpoint PUT /reservations/positions for position updates - i18n keys added for DE and EN --- client/src/api/client.ts | 1 + .../src/components/Planner/DayPlanSidebar.tsx | 673 ++++++++++++++++-- .../components/Planner/ReservationsPanel.tsx | 46 +- client/src/i18n/translations/de.ts | 8 + client/src/i18n/translations/en.ts | 8 + client/src/pages/TripPlannerPage.tsx | 3 +- client/src/types.ts | 16 +- server/src/db/migrations.ts | 4 + server/src/routes/reservations.ts | 23 + 9 files changed, 721 insertions(+), 61 deletions(-) diff --git a/client/src/api/client.ts b/client/src/api/client.ts index 6726140..75c6a8e 100644 --- a/client/src/api/client.ts +++ b/client/src/api/client.ts @@ -207,6 +207,7 @@ export const reservationsApi = { create: (tripId: number | string, data: Record) => apiClient.post(`/trips/${tripId}/reservations`, data).then(r => r.data), update: (tripId: number | string, id: number, data: Record) => apiClient.put(`/trips/${tripId}/reservations/${id}`, data).then(r => r.data), delete: (tripId: number | string, id: number) => apiClient.delete(`/trips/${tripId}/reservations/${id}`).then(r => r.data), + updatePositions: (tripId: number | string, positions: { id: number; day_plan_position: number }[]) => apiClient.put(`/trips/${tripId}/reservations/positions`, { positions }).then(r => r.data), } export const weatherApi = { diff --git a/client/src/components/Planner/DayPlanSidebar.tsx b/client/src/components/Planner/DayPlanSidebar.tsx index 915da19..277662f 100644 --- a/client/src/components/Planner/DayPlanSidebar.tsx +++ b/client/src/components/Planner/DayPlanSidebar.tsx @@ -7,6 +7,7 @@ import ReactDOM from 'react-dom' import { ChevronDown, ChevronRight, ChevronUp, Navigation, RotateCcw, ExternalLink, Clock, Pencil, GripVertical, Ticket, Plus, FileText, Check, Trash2, Info, MapPin, Star, Heart, Camera, Lightbulb, Flag, Bookmark, Train, Bus, Plane, Car, Ship, Coffee, ShoppingBag, AlertTriangle, FileDown, Lock, Hotel, Utensils, Users } from 'lucide-react' const RES_ICONS = { flight: Plane, hotel: Hotel, restaurant: Utensils, train: Train, car: Car, cruise: Ship, event: Ticket, tour: Users, other: FileText } +import { assignmentsApi, reservationsApi } from '../../api/client' import { downloadTripPDF } from '../PDF/TripPDF' import { calculateRoute, generateGoogleMapsUrl, optimizeRoute } from '../Map/RouteCalculator' import PlaceAvatar from '../shared/PlaceAvatar' @@ -74,6 +75,7 @@ interface DayPlanSidebarProps { onDeletePlace: (placeId: number) => void reservations?: Reservation[] onAddReservation: () => void + onNavigateToFiles?: () => void } export default function DayPlanSidebar({ @@ -85,6 +87,7 @@ export default function DayPlanSidebar({ onAssignToDay, onRemoveAssignment, onEditPlace, onDeletePlace, reservations = [], onAddReservation, + onNavigateToFiles, }: DayPlanSidebarProps) { const toast = useToast() const { t, language, locale } = useTranslation() @@ -108,11 +111,22 @@ export default function DayPlanSidebar({ const [draggingId, setDraggingId] = useState(null) const [lockedIds, setLockedIds] = useState(new Set()) const [lockHoverId, setLockHoverId] = useState(null) - const [dropTargetKey, setDropTargetKey] = useState(null) + const [dropTargetKey, _setDropTargetKey] = useState(null) + const dropTargetRef = useRef(null) + const setDropTargetKey = (key) => { dropTargetRef.current = key; _setDropTargetKey(key) } const [dragOverDayId, setDragOverDayId] = useState(null) const [hoveredId, setHoveredId] = useState(null) + const [transportDetail, setTransportDetail] = useState(null) + const [timeConfirm, setTimeConfirm] = useState<{ + dayId: number; fromId: number; time: string; + // For drag & drop reorder + fromType?: string; toType?: string; toId?: number; insertAfter?: boolean; + // For arrow reorder + reorderIds?: number[]; + } | null>(null) const inputRef = useRef(null) - const dragDataRef = useRef(null) // Speichert Drag-Daten als Backup (dataTransfer geht bei Re-Render verloren) + const dragDataRef = useRef(null) + const initedTransportIds = useRef(new Set()) // Speichert Drag-Daten als Backup (dataTransfer geht bei Re-Render verloren) const currency = trip?.currency || 'EUR' @@ -176,15 +190,94 @@ export default function DayPlanSidebar({ }) } + const TRANSPORT_TYPES = new Set(['flight', 'train', 'bus', 'car', 'cruise']) + + const getTransportForDay = (dayId: number) => { + const day = days.find(d => d.id === dayId) + if (!day?.date) return [] + return reservations.filter(r => { + if (!r.reservation_time || !TRANSPORT_TYPES.has(r.type)) return false + const resDate = r.reservation_time.split('T')[0] + return resDate === day.date + }) + } + const getDayAssignments = (dayId) => (assignments[String(dayId)] || []).slice().sort((a, b) => a.order_index - b.order_index) + // Helper: parse time string ("HH:MM" or ISO) to minutes since midnight, or null + const parseTimeToMinutes = (time?: string | null): number | null => { + if (!time) return null + // ISO-Format "2025-03-30T09:00:00" + if (time.includes('T')) { + const [h, m] = time.split('T')[1].split(':').map(Number) + return h * 60 + m + } + // Einfaches "HH:MM" Format + const parts = time.split(':').map(Number) + if (parts.length >= 2 && !isNaN(parts[0]) && !isNaN(parts[1])) return parts[0] * 60 + parts[1] + return null + } + + // Compute initial day_plan_position for a transport based on time + const computeTransportPosition = (r, da) => { + const minutes = parseTimeToMinutes(r.reservation_time) ?? 0 + // Find the last place with time <= transport time + let afterIdx = -1 + for (const a of da) { + const pm = parseTimeToMinutes(a.place?.place_time) + if (pm !== null && pm <= minutes) afterIdx = a.order_index + } + // Position: midpoint between afterIdx and afterIdx+1 (leaves room for other items) + return afterIdx >= 0 ? afterIdx + 0.5 : da.length + 0.5 + } + + // Auto-initialize transport positions on first render if not set + const initTransportPositions = (dayId) => { + const da = getDayAssignments(dayId) + const transport = getTransportForDay(dayId) + const needsInit = transport.filter(r => r.day_plan_position == null && !initedTransportIds.current.has(r.id)) + if (needsInit.length === 0) return + + const sorted = [...needsInit].sort((a, b) => + (parseTimeToMinutes(a.reservation_time) ?? 0) - (parseTimeToMinutes(b.reservation_time) ?? 0) + ) + const positions = sorted.map((r, idx) => ({ + id: r.id, + day_plan_position: computeTransportPosition(r, da) + idx * 0.01, + })) + // Mark as initialized immediately to prevent re-entry + for (const p of positions) { + initedTransportIds.current.add(p.id) + const res = reservations.find(x => x.id === p.id) + if (res) res.day_plan_position = p.day_plan_position + } + // Persist to server (fire and forget) + reservationsApi.updatePositions(tripId, positions).catch(() => {}) + } + const getMergedItems = (dayId) => { const da = getDayAssignments(dayId) const dn = (dayNotes[String(dayId)] || []).slice().sort((a, b) => a.sort_order - b.sort_order) + const transport = getTransportForDay(dayId) + + // Initialize positions for transports that don't have one yet + if (transport.some(r => r.day_plan_position == null)) { + initTransportPositions(dayId) + } + + // All items use the same sortKey space: + // - Places: order_index (0, 1, 2, ...) + // - Notes: sort_order (floats between place indices) + // - Transports: day_plan_position (persisted float) return [ - ...da.map(a => ({ type: 'place', sortKey: a.order_index, data: a })), - ...dn.map(n => ({ type: 'note', sortKey: n.sort_order, data: n })), + ...da.map(a => ({ type: 'place' as const, sortKey: a.order_index, data: a })), + ...dn.map(n => ({ type: 'note' as const, sortKey: n.sort_order, data: n })), + ...transport.map(r => ({ + type: 'transport' as const, + sortKey: r.day_plan_position ?? computeTransportPosition(r, da), + data: r, + })), ].sort((a, b) => a.sortKey - b.sortKey) } @@ -195,6 +288,41 @@ export default function DayPlanSidebar({ }) } + // Check if a proposed reorder of place IDs would break chronological order + // of ALL timed items (places with time + transport bookings) + const wouldBreakChronology = (dayId: number, newPlaceIds: number[]) => { + const da = getDayAssignments(dayId) + const transport = getTransportForDay(dayId) + + // Simulate the merged list with places in new order + transports at their positions + // Places get sequential integer positions + const simItems: { pos: number; minutes: number }[] = [] + newPlaceIds.forEach((id, idx) => { + const a = da.find(x => x.id === id) + const m = parseTimeToMinutes(a?.place?.place_time) + if (m !== null) simItems.push({ pos: idx, minutes: m }) + }) + + // Transports: compute where they'd go with the new place order + for (const r of transport) { + const rMin = parseTimeToMinutes(r.reservation_time) + if (rMin === null) continue + // Find the last place (in new order) with time <= transport time + let afterIdx = -1 + newPlaceIds.forEach((id, idx) => { + const a = da.find(x => x.id === id) + const pm = parseTimeToMinutes(a?.place?.place_time) + if (pm !== null && pm <= rMin) afterIdx = idx + }) + const pos = afterIdx >= 0 ? afterIdx + 0.5 : newPlaceIds.length + 0.5 + simItems.push({ pos, minutes: rMin }) + } + + // Sort by position and check chronological order + simItems.sort((a, b) => a.pos - b.pos) + return !simItems.every((item, i) => i === 0 || item.minutes >= simItems[i - 1].minutes) + } + const openEditNote = (dayId, note, e) => { e?.stopPropagation() _openEditNote(dayId, note) @@ -205,49 +333,180 @@ export default function DayPlanSidebar({ await _deleteNote(dayId, noteId) } - const handleMergedDrop = async (dayId, fromType, fromId, toType, toId, insertAfter = false) => { - const m = getMergedItems(dayId) - const fromIdx = m.findIndex(i => i.type === fromType && i.data.id === fromId) - const toIdx = m.findIndex(i => i.type === toType && i.data.id === toId) - if (fromIdx === -1 || toIdx === -1 || fromIdx === toIdx) return + // Unified reorder: assigns positions to ALL item types based on new visual order + const applyMergedOrder = async (dayId: number, newOrder: { type: string; data: any }[]) => { + // Places get sequential integer positions (0, 1, 2, ...) + // Non-place items between place N-1 and place N get fractional positions + const assignmentIds: number[] = [] + const noteUpdates: { id: number; sort_order: number }[] = [] + const transportUpdates: { id: number; day_plan_position: number }[] = [] - // Neue Reihenfolge erstellen — VOR dem Ziel einfügen (Standard), oder NACH dem Ziel wenn insertAfter - const newOrder = [...m] - const [moved] = newOrder.splice(fromIdx, 1) - let adjustedTo = fromIdx < toIdx ? toIdx - 1 : toIdx - if (insertAfter) adjustedTo += 1 - newOrder.splice(adjustedTo, 0, moved) - - // Orte: neuer order_index über onReorder - const assignmentIds = newOrder.filter(i => i.type === 'place').map(i => i.data.id) - - // Notizen: sort_order muss ZWISCHEN den umgebenden order_indices der Orte liegen, niemals gleich sein. - // Formel: Notiz zwischen placesBefore-1 und placesBefore ergibt (placesBefore - 1) + rank/(count+1) - // z.B. einzelne Notiz nach 2 Orten → (2-1) + 0.5 = 1.5 (zwischen order_index 1 und 2) - const groups = {} - let pc = 0 - newOrder.forEach(item => { - if (item.type === 'place') { pc++ } - else { if (!groups[pc]) groups[pc] = []; groups[pc].push(item.data.id) } - }) - const noteChanges = [] - Object.entries(groups).forEach(([pb, ids]) => { - ids.forEach((id, i) => { - noteChanges.push({ id, sort_order: (Number(pb) - 1) + (i + 1) / (ids.length + 1) }) - }) - }) + let placeCount = 0 + let i = 0 + while (i < newOrder.length) { + if (newOrder[i].type === 'place') { + assignmentIds.push(newOrder[i].data.id) + placeCount++ + i++ + } else { + // Collect consecutive non-place items + const group: { type: string; data: any }[] = [] + while (i < newOrder.length && newOrder[i].type !== 'place') { + group.push(newOrder[i]) + i++ + } + // Fractional positions between (placeCount-1) and placeCount + const base = placeCount > 0 ? placeCount - 1 : -1 + group.forEach((g, idx) => { + const pos = base + (idx + 1) / (group.length + 1) + if (g.type === 'note') noteUpdates.push({ id: g.data.id, sort_order: pos }) + else if (g.type === 'transport') transportUpdates.push({ id: g.data.id, day_plan_position: pos }) + }) + } + } try { if (assignmentIds.length) await onReorder(dayId, assignmentIds) - for (const n of noteChanges) { + for (const n of noteUpdates) { await tripStore.updateDayNote(tripId, dayId, n.id, { sort_order: n.sort_order }) } + if (transportUpdates.length) { + for (const tu of transportUpdates) { + const res = reservations.find(r => r.id === tu.id) + if (res) res.day_plan_position = tu.day_plan_position + } + await reservationsApi.updatePositions(tripId, transportUpdates) + } } catch (err: unknown) { toast.error(err instanceof Error ? err.message : 'Unknown error') } + } + + const handleMergedDrop = async (dayId, fromType, fromId, toType, toId, insertAfter = false) => { + // Transport bookings themselves cannot be dragged + if (fromType === 'transport') { + toast.error(t('dayplan.cannotReorderTransport')) + setDraggingId(null); setDropTargetKey(null); dragDataRef.current = null + return + } + + const m = getMergedItems(dayId) + + // Check if a timed place is being moved → would it break chronological order? + if (fromType === 'place') { + const fromItem = m.find(i => i.type === 'place' && i.data.id === fromId) + const fromMinutes = parseTimeToMinutes(fromItem?.data?.place?.place_time) + if (fromItem && fromMinutes !== null) { + const fromIdx = m.findIndex(i => i.type === fromType && i.data.id === fromId) + const toIdx = m.findIndex(i => i.type === toType && i.data.id === toId) + if (fromIdx !== -1 && toIdx !== -1) { + const simulated = [...m] + const [moved] = simulated.splice(fromIdx, 1) + let insertIdx = simulated.findIndex(i => i.type === toType && i.data.id === toId) + if (insertIdx === -1) insertIdx = simulated.length + if (insertAfter) insertIdx += 1 + simulated.splice(insertIdx, 0, moved) + + const timedInOrder = simulated + .map(i => { + if (i.type === 'transport') return parseTimeToMinutes(i.data?.reservation_time) + if (i.type === 'place') return parseTimeToMinutes(i.data?.place?.place_time) + return null + }) + .filter(t => t !== null) + const isChronological = timedInOrder.every((t, i) => i === 0 || t >= timedInOrder[i - 1]) + + if (!isChronological) { + const placeTime = fromItem.data.place.place_time + const timeStr = placeTime.includes(':') ? placeTime.substring(0, 5) : placeTime + setTimeConfirm({ dayId, fromType, fromId, toType, toId, insertAfter, time: timeStr }) + setDraggingId(null); setDropTargetKey(null); dragDataRef.current = null + return + } + } + } + } + + // Build new order: remove the dragged item, insert at target position + const fromIdx = m.findIndex(i => i.type === fromType && i.data.id === fromId) + const toIdx = m.findIndex(i => i.type === toType && i.data.id === toId) + if (fromIdx === -1 || toIdx === -1 || fromIdx === toIdx) { + setDraggingId(null); setDropTargetKey(null); dragDataRef.current = null + return + } + + const newOrder = [...m] + const [moved] = newOrder.splice(fromIdx, 1) + let adjustedTo = newOrder.findIndex(i => i.type === toType && i.data.id === toId) + if (adjustedTo === -1) adjustedTo = newOrder.length + if (insertAfter) adjustedTo += 1 + newOrder.splice(adjustedTo, 0, moved) + + await applyMergedOrder(dayId, newOrder) setDraggingId(null) setDropTargetKey(null) dragDataRef.current = null } + const confirmTimeRemoval = async () => { + if (!timeConfirm) return + const saved = { ...timeConfirm } + const { dayId, fromId, reorderIds, fromType, toType, toId, insertAfter } = saved + setTimeConfirm(null) + + // Remove time from assignment + try { + await assignmentsApi.updateTime(tripId, fromId, { place_time: null, end_time: null }) + const key = String(dayId) + const currentAssignments = { ...assignments } + if (currentAssignments[key]) { + currentAssignments[key] = currentAssignments[key].map(a => + a.id === fromId ? { ...a, place: { ...a.place, place_time: null, end_time: null } } : a + ) + tripStore.setAssignments(currentAssignments) + } + } catch (err) { + toast.error(err instanceof Error ? err.message : 'Unknown error') + return + } + + // Build new merged order from either arrow reorderIds or drag & drop params + const m = getMergedItems(dayId) + + if (reorderIds) { + // Arrow reorder: rebuild merged list with places in the new order, + // keeping transports and notes at their relative positions + const newMerged: typeof m = [] + let rIdx = 0 + for (const item of m) { + if (item.type === 'place') { + // Replace with the place from reorderIds at this position + const nextId = reorderIds[rIdx++] + const replacement = m.find(i => i.type === 'place' && i.data.id === nextId) + if (replacement) newMerged.push(replacement) + } else { + newMerged.push(item) + } + } + await applyMergedOrder(dayId, newMerged) + return + } + + // Drag & drop reorder + if (fromType && toType) { + const fromIdx = m.findIndex(i => i.type === fromType && i.data.id === fromId) + const toIdx = m.findIndex(i => i.type === toType && i.data.id === toId) + if (fromIdx === -1 || toIdx === -1 || fromIdx === toIdx) return + + const newOrder = [...m] + const [moved] = newOrder.splice(fromIdx, 1) + let adjustedTo = newOrder.findIndex(i => i.type === toType && i.data.id === toId) + if (adjustedTo === -1) adjustedTo = newOrder.length + if (insertAfter) adjustedTo += 1 + newOrder.splice(adjustedTo, 0, moved) + + await applyMergedOrder(dayId, newOrder) + } + } + const moveNote = async (dayId, noteId, direction) => { await _moveNote(dayId, noteId, direction, getMergedItems) } @@ -542,11 +801,34 @@ export default function DayPlanSidebar({ {isExpanded && (

{ e.preventDefault(); if (draggingId) setDropTargetKey(`end-${day.id}`) }} + onDragOver={e => { e.preventDefault(); const cur = dropTargetRef.current; if (draggingId && (!cur || cur.startsWith('end-'))) setDropTargetKey(`end-${day.id}`) }} onDrop={e => { e.preventDefault() - const { assignmentId, noteId, fromDayId } = getDragData(e) - if (!assignmentId && !noteId) { dragDataRef.current = null; window.__dragData = null; return } + const { placeId, assignmentId, noteId, fromDayId } = getDragData(e) + // Drop on transport card (detected via dropTargetRef for sync accuracy) + if (dropTargetRef.current?.startsWith('transport-')) { + const transportId = Number(dropTargetRef.current.replace('transport-', '')) + + if (placeId) { + onAssignToDay?.(parseInt(placeId), day.id) + } else if (assignmentId && fromDayId !== day.id) { + tripStore.moveAssignment(tripId, Number(assignmentId), fromDayId, day.id).catch((err: unknown) => toast.error(err instanceof Error ? err.message : 'Unknown error')) + } else if (assignmentId) { + handleMergedDrop(day.id, 'place', Number(assignmentId), 'transport', transportId) + } else if (noteId && fromDayId !== day.id) { + tripStore.moveDayNote(tripId, fromDayId, day.id, Number(noteId)).catch((err: unknown) => toast.error(err instanceof Error ? err.message : 'Unknown error')) + } else if (noteId) { + handleMergedDrop(day.id, 'note', Number(noteId), 'transport', transportId) + } + setDraggingId(null); setDropTargetKey(null); dragDataRef.current = null; window.__dragData = null + return + } + + if (!assignmentId && !noteId && !placeId) { dragDataRef.current = null; window.__dragData = null; return } + if (placeId) { + onAssignToDay?.(parseInt(placeId), day.id) + setDropTargetKey(null); window.__dragData = null; return + } if (assignmentId && fromDayId !== day.id) { tripStore.moveAssignment(tripId, Number(assignmentId), fromDayId, day.id).catch((err: unknown) => toast.error(err instanceof Error ? err.message : 'Unknown error')) setDraggingId(null); setDropTargetKey(null); dragDataRef.current = null; return @@ -577,7 +859,7 @@ export default function DayPlanSidebar({
) : ( merged.map((item, idx) => { - const itemKey = item.type === 'place' ? `place-${item.data.id}` : `note-${item.data.id}` + const itemKey = item.type === 'transport' ? `transport-${item.data.id}` : (item.type === 'place' ? `place-${item.data.id}` : `note-${item.data.id}`) const showDropLine = (!!draggingId || !!dropTargetKey) && dropTargetKey === itemKey if (item.type === 'place') { @@ -590,20 +872,39 @@ export default function DayPlanSidebar({ const isHovered = hoveredId === assignment.id const placeIdx = placeItems.findIndex(i => i.data.id === assignment.id) - const moveUp = (e) => { - e.stopPropagation() - if (placeIdx === 0) return - const ids = placeItems.map(i => i.data.id) - ;[ids[placeIdx - 1], ids[placeIdx]] = [ids[placeIdx], ids[placeIdx - 1]] - onReorder(day.id, ids) - } - const moveDown = (e) => { - e.stopPropagation() - if (placeIdx === placeItems.length - 1) return - const ids = placeItems.map(i => i.data.id) - ;[ids[placeIdx], ids[placeIdx + 1]] = [ids[placeIdx + 1], ids[placeIdx]] - onReorder(day.id, ids) + const arrowMove = (direction: 'up' | 'down') => { + const m = getMergedItems(day.id) + const myIdx = m.findIndex(i => i.type === 'place' && i.data.id === assignment.id) + if (myIdx === -1) return + const targetIdx = direction === 'up' ? myIdx - 1 : myIdx + 1 + if (targetIdx < 0 || targetIdx >= m.length) return + + // Build new order: swap this item with its neighbor in the merged list + const newOrder = [...m] + ;[newOrder[myIdx], newOrder[targetIdx]] = [newOrder[targetIdx], newOrder[myIdx]] + + // Check chronological order of all timed items in the new order + const placeTime = place.place_time + if (parseTimeToMinutes(placeTime) !== null) { + const timedInNewOrder = newOrder + .map(i => { + if (i.type === 'transport') return parseTimeToMinutes(i.data?.reservation_time) + if (i.type === 'place') return parseTimeToMinutes(i.data?.place?.place_time) + return null + }) + .filter(t => t !== null) + const isChronological = timedInNewOrder.every((t, i) => i === 0 || t >= timedInNewOrder[i - 1]) + if (!isChronological) { + const timeStr = placeTime.includes(':') ? placeTime.substring(0, 5) : placeTime + // Store the new merged order for confirm action + setTimeConfirm({ dayId: day.id, fromId: assignment.id, time: timeStr, reorderIds: newOrder.filter(i => i.type === 'place').map(i => i.data.id) }) + return + } + } + applyMergedOrder(day.id, newOrder) } + const moveUp = (e) => { e.stopPropagation(); arrowMove('up') } + const moveDown = (e) => { e.stopPropagation(); arrowMove('down') } return ( @@ -773,10 +1074,10 @@ export default function DayPlanSidebar({ )}

*r{gUrfAKnFg6@cjl}Z}9wYo$l}V|IW<5 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¨RM%_7buKI`JjgJ}3*P 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%0DJqBbj>t%^MdDh_<@ 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

- -
@@ -785,6 +1086,90 @@ export default function DayPlanSidebar({ ) } + // Transport booking (flight, train, bus, car, cruise) + if (item.type === 'transport') { + const res = item.data + const TransportIcon = RES_ICONS[res.type] || Ticket + const color = '#3b82f6' + const meta = typeof res.metadata === 'string' ? JSON.parse(res.metadata || '{}') : (res.metadata || {}) + const isTransportHovered = hoveredId === `transport-${res.id}` + + // Subtitle aus Metadaten zusammensetzen + let subtitle = '' + if (res.type === 'flight') { + const parts = [meta.airline, meta.flight_number].filter(Boolean) + if (meta.departure_airport || meta.arrival_airport) + parts.push([meta.departure_airport, meta.arrival_airport].filter(Boolean).join(' → ')) + subtitle = parts.join(' · ') + } else if (res.type === 'train') { + subtitle = [meta.train_number, meta.platform ? `Gl. ${meta.platform}` : '', meta.seat ? `Sitz ${meta.seat}` : ''].filter(Boolean).join(' · ') + } + + return ( + + {showDropLine &&
} +
setTransportDetail(res)} + onDragOver={e => { e.preventDefault(); e.stopPropagation(); setDropTargetKey(`transport-${res.id}`) }} + onDrop={e => { + e.preventDefault(); e.stopPropagation() + const { placeId, assignmentId: fromAssignmentId, noteId, fromDayId } = getDragData(e) + if (placeId) { + onAssignToDay?.(parseInt(placeId), day.id) + } else if (fromAssignmentId && fromDayId !== day.id) { + tripStore.moveAssignment(tripId, Number(fromAssignmentId), fromDayId, day.id).catch((err: unknown) => toast.error(err instanceof Error ? err.message : 'Unknown error')) + } else if (fromAssignmentId) { + handleMergedDrop(day.id, 'place', Number(fromAssignmentId), 'transport', res.id) + } else if (noteId && fromDayId !== day.id) { + tripStore.moveDayNote(tripId, fromDayId, day.id, Number(noteId)).catch((err: unknown) => toast.error(err instanceof Error ? err.message : 'Unknown error')) + } else if (noteId) { + handleMergedDrop(day.id, 'note', Number(noteId), 'transport', res.id) + } + setDraggingId(null); setDropTargetKey(null); dragDataRef.current = null; window.__dragData = null + }} + onMouseEnter={() => setHoveredId(`transport-${res.id}`)} + onMouseLeave={() => setHoveredId(null)} + style={{ + display: 'flex', alignItems: 'center', gap: 8, + padding: '7px 8px 7px 10px', + margin: '1px 8px', + borderRadius: 6, + border: `1px solid ${color}33`, + background: isTransportHovered ? `${color}12` : `${color}08`, + cursor: 'pointer', userSelect: 'none', + transition: 'background 0.1s', + }} + > +
+ +
+
+
+ + {res.title} + + {res.reservation_time?.includes('T') && ( + + + {new Date(res.reservation_time).toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit', hour12: timeFormat === '12h' })} + {res.reservation_end_time?.includes('T') && ` – ${new Date(res.reservation_end_time).toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit', hour12: timeFormat === '12h' })}`} + + )} +
+ {subtitle && ( +
+ {subtitle} +
+ )} +
+
+ + ) + } + // Notizkarte const note = item.data const isNoteHovered = hoveredId === `note-${note.id}` @@ -991,6 +1376,186 @@ export default function DayPlanSidebar({ document.body ))} + {/* Confirm: remove time when reordering a timed place */} + {timeConfirm && ReactDOM.createPortal( +
setTimeConfirm(null)}> +
e.stopPropagation()}> +
+
+ +
+
+ {t('dayplan.confirmRemoveTimeTitle')} +
+
+
+ {t('dayplan.confirmRemoveTimeBody', { time: timeConfirm.time })} +
+
+ + +
+
+
, + document.body + )} + + {/* Transport-Detail-Modal */} + {transportDetail && ReactDOM.createPortal( +
setTransportDetail(null)}> +
e.stopPropagation()}> + {(() => { + const res = transportDetail + const TransportIcon = RES_ICONS[res.type] || Ticket + const TRANSPORT_COLORS = { flight: '#3b82f6', train: '#06b6d4', bus: '#f59e0b', car: '#6b7280', cruise: '#0ea5e9' } + const color = TRANSPORT_COLORS[res.type] || 'var(--text-muted)' + const meta = typeof res.metadata === 'string' ? JSON.parse(res.metadata || '{}') : (res.metadata || {}) + + const detailFields = [] + if (res.type === 'flight') { + if (meta.airline) detailFields.push({ label: t('reservations.meta.airline'), value: meta.airline }) + if (meta.flight_number) detailFields.push({ label: t('reservations.meta.flightNumber'), value: meta.flight_number }) + if (meta.departure_airport) detailFields.push({ label: t('reservations.meta.from'), value: meta.departure_airport }) + if (meta.arrival_airport) detailFields.push({ label: t('reservations.meta.to'), value: meta.arrival_airport }) + if (meta.seat) detailFields.push({ label: t('reservations.meta.seat'), value: meta.seat }) + } else if (res.type === 'train') { + if (meta.train_number) detailFields.push({ label: t('reservations.meta.trainNumber'), value: meta.train_number }) + if (meta.platform) detailFields.push({ label: t('reservations.meta.platform'), value: meta.platform }) + if (meta.seat) detailFields.push({ label: t('reservations.meta.seat'), value: meta.seat }) + } + if (res.confirmation_number) detailFields.push({ label: t('reservations.confirmationCode'), value: res.confirmation_number }) + if (res.location) detailFields.push({ label: t('reservations.locationAddress'), value: res.location }) + + return ( + <> + {/* Header */} +
+
+ +
+
+
{res.title}
+
+ {res.reservation_time?.includes('T') + ? new Date(res.reservation_time).toLocaleString(locale, { weekday: 'short', day: 'numeric', month: 'short', hour: '2-digit', minute: '2-digit', hour12: timeFormat === '12h' }) + : res.reservation_time + ? new Date(res.reservation_time + 'T00:00:00').toLocaleDateString(locale, { weekday: 'short', day: 'numeric', month: 'short' }) + : '' + } + {res.reservation_end_time?.includes('T') && ` – ${new Date(res.reservation_end_time).toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit', hour12: timeFormat === '12h' })}`} +
+
+
+ {(res.status === 'confirmed' ? t('planner.resConfirmed') : t('planner.resPending')).replace(/\s*·\s*$/, '')} +
+
+ + {/* Detail-Felder */} + {detailFields.length > 0 && ( +
+ {detailFields.map((f, i) => ( +
+
{f.label}
+
{f.value}
+
+ ))} +
+ )} + + {/* Notizen */} + {res.notes && ( +
+
{t('reservations.notes')}
+
{res.notes}
+
+ )} + + {/* Dateien */} + {(() => { + const resFiles = (tripStore.files || []).filter(f => + !f.deleted_at && ( + f.reservation_id === res.id || + (f.linked_reservation_ids && f.linked_reservation_ids.includes(res.id)) + ) + ) + if (resFiles.length === 0) return null + return ( +
+
{t('files.title')}
+
+ {resFiles.map(f => ( +
{ setTransportDetail(null); onNavigateToFiles?.() }} + style={{ + display: 'flex', alignItems: 'center', gap: 8, padding: '6px 10px', + background: 'var(--bg-tertiary)', borderRadius: 8, cursor: 'pointer', + transition: 'background 0.1s', + }} + onMouseEnter={e => e.currentTarget.style.background = 'var(--bg-hover)'} + onMouseLeave={e => e.currentTarget.style.background = 'var(--bg-tertiary)'} + > + + + {f.original_name} + + +
+ ))} +
+
+ ) + })()} + + {/* Schließen */} +
+ +
+ + ) + })()} +
+
, + document.body + )} + {/* Budget-Fußzeile */} {totalCost > 0 && (
diff --git a/client/src/components/Planner/ReservationsPanel.tsx b/client/src/components/Planner/ReservationsPanel.tsx index 86c844f..cd36f06 100644 --- a/client/src/components/Planner/ReservationsPanel.tsx +++ b/client/src/components/Planner/ReservationsPanel.tsx @@ -1,4 +1,5 @@ import { useState, useMemo } from 'react' +import ReactDOM from 'react-dom' import { useTripStore } from '../../store/tripStore' import { useSettingsStore } from '../../store/settingsStore' import { useToast } from '../shared/Toast' @@ -67,13 +68,14 @@ function ReservationCard({ r, tripId, onEdit, onDelete, files = [], onNavigateTo const confirmed = r.status === 'confirmed' const attachedFiles = files.filter(f => f.reservation_id === r.id || (f.linked_reservation_ids || []).includes(r.id)) const linked = r.assignment_id ? assignmentLookup[r.assignment_id] : null + const [showDeleteConfirm, setShowDeleteConfirm] = useState(false) const handleToggle = async () => { try { await toggleReservationStatus(tripId, r.id) } catch { toast.error(t('reservations.toast.updateError')) } } const handleDelete = async () => { - if (!confirm(t('reservations.confirm.delete', { name: r.title }))) return + setShowDeleteConfirm(false) try { await onDelete(r.id) } catch { toast.error(t('reservations.toast.deleteError')) } } @@ -104,7 +106,7 @@ function ReservationCard({ r, tripId, onEdit, onDelete, files = [], onNavigateTo onMouseLeave={e => e.currentTarget.style.color = 'var(--text-faint)'}> -
)} + {/* Delete confirmation popup */} + {showDeleteConfirm && ReactDOM.createPortal( +
setShowDeleteConfirm(false)}> +
e.stopPropagation()}> +
+
+ +
+
+ {t('reservations.confirm.deleteTitle')} +
+
+
+ {t('reservations.confirm.deleteBody', { name: r.title })} +
+
+ + +
+
+
, + document.body + )} ) } diff --git a/client/src/i18n/translations/de.ts b/client/src/i18n/translations/de.ts index 840a4f2..09c82d1 100644 --- a/client/src/i18n/translations/de.ts +++ b/client/src/i18n/translations/de.ts @@ -607,6 +607,12 @@ const de: Record = { // Day Plan Sidebar 'dayplan.emptyDay': 'Keine Orte für diesen Tag geplant', + 'dayplan.cannotReorderTransport': 'Buchungen mit fester Uhrzeit können nicht verschoben werden', + 'dayplan.confirmRemoveTimeTitle': 'Uhrzeit entfernen?', + 'dayplan.confirmRemoveTimeBody': 'Dieser Ort hat eine feste Uhrzeit ({time}). Durch das Verschieben wird die Uhrzeit entfernt und der Ort kann frei sortiert werden.', + 'dayplan.confirmRemoveTimeAction': 'Uhrzeit entfernen & verschieben', + 'dayplan.cannotDropOnTimed': 'Orte können nicht zwischen zeitgebundene Einträge geschoben werden', + 'dayplan.cannotBreakChronology': 'Die zeitliche Reihenfolge von Uhrzeiten und Buchungen darf nicht verletzt werden', 'dayplan.addNote': 'Notiz hinzufügen', 'dayplan.editNote': 'Notiz bearbeiten', 'dayplan.noteAdd': 'Notiz hinzufügen', @@ -735,6 +741,8 @@ const de: Record = { 'reservations.type.tour': 'Tour', 'reservations.type.other': 'Sonstiges', 'reservations.confirm.delete': 'Möchtest du die Reservierung "{name}" wirklich löschen?', + 'reservations.confirm.deleteTitle': 'Buchung löschen?', + 'reservations.confirm.deleteBody': '"{name}" wird unwiderruflich gelöscht.', 'reservations.toast.updated': 'Reservierung aktualisiert', 'reservations.toast.removed': 'Reservierung gelöscht', 'reservations.toast.saveError': 'Fehler beim Speichern', diff --git a/client/src/i18n/translations/en.ts b/client/src/i18n/translations/en.ts index 18d79ac..21ca7a6 100644 --- a/client/src/i18n/translations/en.ts +++ b/client/src/i18n/translations/en.ts @@ -607,6 +607,12 @@ const en: Record = { // Day Plan Sidebar 'dayplan.emptyDay': 'No places planned for this day', + 'dayplan.cannotReorderTransport': 'Bookings with a fixed time cannot be reordered', + 'dayplan.confirmRemoveTimeTitle': 'Remove time?', + 'dayplan.confirmRemoveTimeBody': 'This place has a fixed time ({time}). Moving it will remove the time and allow free sorting.', + 'dayplan.confirmRemoveTimeAction': 'Remove time & move', + 'dayplan.cannotDropOnTimed': 'Items cannot be placed between time-bound entries', + 'dayplan.cannotBreakChronology': 'This would break the chronological order of timed items and bookings', 'dayplan.addNote': 'Add Note', 'dayplan.editNote': 'Edit Note', 'dayplan.noteAdd': 'Add Note', @@ -735,6 +741,8 @@ const en: Record = { 'reservations.type.tour': 'Tour', 'reservations.type.other': 'Other', 'reservations.confirm.delete': 'Are you sure you want to delete the reservation "{name}"?', + 'reservations.confirm.deleteTitle': 'Delete booking?', + 'reservations.confirm.deleteBody': '"{name}" will be permanently deleted.', 'reservations.toast.updated': 'Reservation updated', 'reservations.toast.removed': 'Reservation deleted', 'reservations.toast.fileUploaded': 'File uploaded', diff --git a/client/src/pages/TripPlannerPage.tsx b/client/src/pages/TripPlannerPage.tsx index de659f8..b844c1d 100644 --- a/client/src/pages/TripPlannerPage.tsx +++ b/client/src/pages/TripPlannerPage.tsx @@ -446,6 +446,7 @@ export default function TripPlannerPage(): React.ReactElement | null { onEditPlace={(place, assignmentId) => { setEditingPlace(place); setEditingAssignmentId(assignmentId || null); setShowPlaceForm(true) }} onDeletePlace={(placeId) => handleDeletePlace(placeId)} accommodations={tripAccommodations} + onNavigateToFiles={() => handleTabChange('dateien')} /> {!leftCollapsed && (
{mobileSidebarOpen === 'left' - ? { handleSelectDay(id); setMobileSidebarOpen(null) }} onPlaceClick={handlePlaceClick} onReorder={handleReorder} onUpdateDayTitle={handleUpdateDayTitle} onAssignToDay={handleAssignToDay} onRouteCalculated={(r) => { if (r) { setRoute(r.coordinates); setRouteInfo({ distance: r.distanceText, duration: r.durationText }) } }} reservations={reservations} onAddReservation={(dayId) => { setEditingReservation(null); tripStore.setSelectedDay(dayId); setShowReservationModal(true); setMobileSidebarOpen(null) }} onDayDetail={(day) => { setShowDayDetail(day); setSelectedPlaceId(null); setSelectedAssignmentId(null); setMobileSidebarOpen(null) }} accommodations={tripAccommodations} /> + ? { handleSelectDay(id); setMobileSidebarOpen(null) }} onPlaceClick={handlePlaceClick} onReorder={handleReorder} onUpdateDayTitle={handleUpdateDayTitle} onAssignToDay={handleAssignToDay} onRouteCalculated={(r) => { if (r) { setRoute(r.coordinates); setRouteInfo({ distance: r.distanceText, duration: r.durationText }) } }} reservations={reservations} onAddReservation={(dayId) => { setEditingReservation(null); tripStore.setSelectedDay(dayId); setShowReservationModal(true); setMobileSidebarOpen(null) }} onDayDetail={(day) => { setShowDayDetail(day); setSelectedPlaceId(null); setSelectedAssignmentId(null); setMobileSidebarOpen(null) }} accommodations={tripAccommodations} onNavigateToFiles={() => { setMobileSidebarOpen(null); handleTabChange('dateien') }} /> : { setEditingPlace(null); setShowPlaceForm(true); setMobileSidebarOpen(null) }} onAssignToDay={handleAssignToDay} days={days} isMobile onCategoryFilterChange={setMapCategoryFilter} /> }
diff --git a/client/src/types.ts b/client/src/types.ts index 7bc49dd..e5913ab 100644 --- a/client/src/types.ts +++ b/client/src/types.ts @@ -118,15 +118,22 @@ export interface Reservation { trip_id: number name: string title?: string - type: string | null + type: string status: 'pending' | 'confirmed' date: string | null time: string | null + reservation_time?: string | null + reservation_end_time?: string | null + location?: string | null confirmation_number: string | null notes: string | null url: string | null + day_id?: number | null + place_id?: number | null + assignment_id?: number | null accommodation_id?: number | null - metadata?: Record | null + day_plan_position?: number | null + metadata?: Record | string | null created_at: string } @@ -148,6 +155,7 @@ export interface TripFile { deleted_at?: string | null created_at: string reservation_title?: string + linked_reservation_ids?: number[] url?: string } @@ -361,7 +369,7 @@ export function getApiErrorMessage(err: unknown, fallback: string): string { // MergedItem used in day notes hook export interface MergedItem { - type: 'assignment' | 'note' + type: 'assignment' | 'note' | 'place' | 'transport' sortKey: number - data: Assignment | DayNote + data: Assignment | DayNote | Reservation } diff --git a/server/src/db/migrations.ts b/server/src/db/migrations.ts index 55078fd..f62499d 100644 --- a/server/src/db/migrations.ts +++ b/server/src/db/migrations.ts @@ -321,6 +321,10 @@ function runMigrations(db: Database.Database): void { UNIQUE(file_id, place_id) )`); }, + () => { + // Add day_plan_position to reservations for persistent transport ordering in day timeline + try { db.exec('ALTER TABLE reservations ADD COLUMN day_plan_position REAL DEFAULT NULL'); } catch {} + }, ]; if (currentVersion < migrations.length) { diff --git a/server/src/routes/reservations.ts b/server/src/routes/reservations.ts index 302c1a1..1961fc9 100644 --- a/server/src/routes/reservations.ts +++ b/server/src/routes/reservations.ts @@ -103,6 +103,29 @@ router.post('/', authenticate, (req: Request, res: Response) => { broadcast(tripId, 'reservation:created', { reservation }, req.headers['x-socket-id'] as string); }); +// Batch update day_plan_position for multiple reservations (must be before /:id) +router.put('/positions', authenticate, (req: Request, res: Response) => { + const authReq = req as AuthRequest; + const { tripId } = req.params; + const { positions } = req.body; + + const trip = verifyTripOwnership(tripId, authReq.user.id); + if (!trip) return res.status(404).json({ error: 'Trip not found' }); + + if (!Array.isArray(positions)) return res.status(400).json({ error: 'positions must be an array' }); + + const stmt = db.prepare('UPDATE reservations SET day_plan_position = ? WHERE id = ? AND trip_id = ?'); + const updateMany = db.transaction((items: { id: number; day_plan_position: number }[]) => { + for (const item of items) { + stmt.run(item.day_plan_position, item.id, tripId); + } + }); + updateMany(positions); + + res.json({ success: true }); + broadcast(tripId, 'reservation:positions', { positions }, req.headers['x-socket-id'] as string); +}); + router.put('/:id', authenticate, (req: Request, res: Response) => { const authReq = req as AuthRequest; const { tripId, id } = req.params; From 3059d53d117d968eb9042b1fbe9e7428a1082b25 Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 30 Mar 2026 10:19:17 +0200 Subject: [PATCH 18/63] =?UTF-8?q?fix:=20use=2050m=20resolution=20GeoJSON?= =?UTF-8?q?=20for=20Atlas=20=E2=80=94=20show=20smaller=20countries=20?= =?UTF-8?q?=E2=80=94=20closes=20#115?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switch from ne_110m to ne_50m Natural Earth dataset so small countries like Seychelles, Maldives, Monaco etc. are visible in the Atlas view and visited countries status. --- client/src/pages/AtlasPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/pages/AtlasPage.tsx b/client/src/pages/AtlasPage.tsx index 59723d2..1687dfc 100644 --- a/client/src/pages/AtlasPage.tsx +++ b/client/src/pages/AtlasPage.tsx @@ -179,7 +179,7 @@ export default function AtlasPage(): React.ReactElement { // Load GeoJSON world data (direct GeoJSON, no conversion needed) useEffect(() => { - fetch('https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_110m_admin_0_countries.geojson') + fetch('https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_50m_admin_0_countries.geojson') .then(r => r.json()) .then(geo => { // Dynamically build A2→A3 mapping from GeoJSON From 8d9a511edf20b4595e3a4a33e75f2df75da47704 Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 30 Mar 2026 10:26:23 +0200 Subject: [PATCH 19/63] =?UTF-8?q?fix:=20auto-invalidate=20cache=20on=20ver?= =?UTF-8?q?sion=20update=20=E2=80=94=20closes=20#121?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add version check on app startup: compare server version with stored client version, clear all SW caches and reload on mismatch - Set Cache-Control: no-cache on index.html so browsers always fetch the latest version instead of serving stale cached HTML --- client/src/App.tsx | 25 ++++++++++++++++++++++++- server/src/index.ts | 10 +++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/client/src/App.tsx b/client/src/App.tsx index 47c2f8d..8d2c96b 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -69,9 +69,32 @@ export default function App() { if (token) { loadUser() } - authApi.getAppConfig().then((config: { demo_mode?: boolean; has_maps_key?: boolean }) => { + authApi.getAppConfig().then(async (config: { demo_mode?: boolean; has_maps_key?: boolean; version?: string }) => { if (config?.demo_mode) setDemoMode(true) if (config?.has_maps_key !== undefined) setHasMapsKey(config.has_maps_key) + + // Version-based cache invalidation: clear all caches on version change + if (config?.version) { + const storedVersion = localStorage.getItem('trek_app_version') + if (storedVersion && storedVersion !== config.version) { + try { + // Clear all Service Worker caches + if ('caches' in window) { + const names = await caches.keys() + await Promise.all(names.map(n => caches.delete(n))) + } + // Unregister all service workers + if ('serviceWorker' in navigator) { + const regs = await navigator.serviceWorker.getRegistrations() + await Promise.all(regs.map(r => r.unregister())) + } + } catch {} + localStorage.setItem('trek_app_version', config.version) + window.location.reload() + return + } + localStorage.setItem('trek_app_version', config.version) + } }).catch(() => {}) }, []) diff --git a/server/src/index.ts b/server/src/index.ts index c53977f..770f0c9 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -163,8 +163,16 @@ app.use('/api/backup', backupRoutes); // Serve static files in production if (process.env.NODE_ENV === 'production') { const publicPath = path.join(__dirname, '../public'); - app.use(express.static(publicPath)); + app.use(express.static(publicPath, { + setHeaders: (res, filePath) => { + // Never cache index.html so version updates are picked up immediately + if (filePath.endsWith('index.html')) { + res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); + } + }, + })); app.get('*', (req: Request, res: Response) => { + res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); res.sendFile(path.join(publicPath, 'index.html')); }); } From f6d08582ec7e281d99a4183f2432c3825cb706d8 Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 30 Mar 2026 11:12:22 +0200 Subject: [PATCH 20/63] =?UTF-8?q?feat:=20expense=20settlement=20=E2=80=94?= =?UTF-8?q?=20track=20who=20paid,=20show=20who=20owes=20whom=20=E2=80=94?= =?UTF-8?q?=20closes=20#41?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Click member avatars on budget items to mark who paid (green = paid) - Multiple green chips = those people split the payment equally - Settlement dropdown in the total budget card shows optimized payment flows (who owes whom how much) and net balances per person - Info tooltip explains how the feature works - New server endpoint GET /budget/settlement calculates net balances and minimized payment flows using a greedy algorithm - Merged category legend: amount + percentage in one row - i18n keys added for DE and EN --- client/src/api/client.ts | 1 + client/src/components/Budget/BudgetPanel.tsx | 145 ++++++++++++++++--- client/src/i18n/translations/de.ts | 3 + client/src/i18n/translations/en.ts | 3 + server/src/db/migrations.ts | 4 + server/src/routes/budget.ts | 71 +++++++++ 6 files changed, 208 insertions(+), 19 deletions(-) diff --git a/client/src/api/client.ts b/client/src/api/client.ts index 75c6a8e..346b7d8 100644 --- a/client/src/api/client.ts +++ b/client/src/api/client.ts @@ -184,6 +184,7 @@ export const budgetApi = { setMembers: (tripId: number | string, id: number, userIds: number[]) => apiClient.put(`/trips/${tripId}/budget/${id}/members`, { user_ids: userIds }).then(r => r.data), togglePaid: (tripId: number | string, id: number, userId: number, paid: boolean) => apiClient.put(`/trips/${tripId}/budget/${id}/members/${userId}/paid`, { paid }).then(r => r.data), perPersonSummary: (tripId: number | string) => apiClient.get(`/trips/${tripId}/budget/summary/per-person`).then(r => r.data), + settlement: (tripId: number | string) => apiClient.get(`/trips/${tripId}/budget/settlement`).then(r => r.data), } export const filesApi = { diff --git a/client/src/components/Budget/BudgetPanel.tsx b/client/src/components/Budget/BudgetPanel.tsx index 171375f..ba59f0d 100644 --- a/client/src/components/Budget/BudgetPanel.tsx +++ b/client/src/components/Budget/BudgetPanel.tsx @@ -3,7 +3,7 @@ import { useState, useEffect, useRef, useMemo, useCallback } from 'react' import DOM from 'react-dom' import { useTripStore } from '../../store/tripStore' import { useTranslation } from '../../i18n' -import { Plus, Trash2, Calculator, Wallet, Pencil, Users, Check } from 'lucide-react' +import { Plus, Trash2, Calculator, Wallet, Pencil, Users, Check, Info, ChevronDown, ChevronRight } from 'lucide-react' import CustomSelect from '../shared/CustomSelect' import { budgetApi } from '../../api/client' import type { BudgetItem, BudgetMember } from '../../types' @@ -145,9 +145,11 @@ interface ChipWithTooltipProps { label: string avatarUrl: string | null size?: number + paid?: boolean + onClick?: () => void } -function ChipWithTooltip({ label, avatarUrl, size = 20 }: ChipWithTooltipProps) { +function ChipWithTooltip({ label, avatarUrl, size = 20, paid, onClick }: ChipWithTooltipProps) { const [hover, setHover] = useState(false) const [pos, setPos] = useState({ top: 0, left: 0 }) const ref = useRef(null) @@ -160,13 +162,19 @@ function ChipWithTooltip({ label, avatarUrl, size = 20 }: ChipWithTooltipProps) setHover(true) } + const borderColor = paid ? '#22c55e' : 'var(--border-primary)' + const bg = paid ? 'rgba(34,197,94,0.15)' : 'var(--bg-tertiary)' + return ( <>
setHover(false)} + onClick={onClick} style={{ - width: size, height: size, borderRadius: '50%', border: '1.5px solid var(--border-primary)', - background: 'var(--bg-tertiary)', display: 'flex', alignItems: 'center', justifyContent: 'center', - fontSize: size * 0.4, fontWeight: 700, color: 'var(--text-muted)', overflow: 'hidden', flexShrink: 0, + width: size, height: size, borderRadius: '50%', border: `2px solid ${borderColor}`, + background: bg, display: 'flex', alignItems: 'center', justifyContent: 'center', + fontSize: size * 0.4, fontWeight: 700, color: paid ? '#16a34a' : 'var(--text-muted)', + overflow: 'hidden', flexShrink: 0, cursor: onClick ? 'pointer' : 'default', + transition: 'border-color 0.15s, background 0.15s', }}> {avatarUrl ? @@ -177,11 +185,19 @@ function ChipWithTooltip({ label, avatarUrl, size = 20 }: ChipWithTooltipProps)
{label} + {paid && ( + Paid + )}
, document.body )} @@ -194,10 +210,11 @@ interface BudgetMemberChipsProps { members?: BudgetMember[] tripMembers?: TripMember[] onSetMembers: (memberIds: number[]) => void + onTogglePaid?: (userId: number, paid: boolean) => void compact?: boolean } -function BudgetMemberChips({ members = [], tripMembers = [], onSetMembers, compact = true }: BudgetMemberChipsProps) { +function BudgetMemberChips({ members = [], tripMembers = [], onSetMembers, onTogglePaid, compact = true }: BudgetMemberChipsProps) { const chipSize = compact ? 20 : 30 const btnSize = compact ? 18 : 28 const iconSize = compact ? (members.length > 0 ? 8 : 9) : (members.length > 0 ? 12 : 14) @@ -237,7 +254,10 @@ function BudgetMemberChips({ members = [], tripMembers = [], onSetMembers, compa return (
{members.map(m => ( - + onTogglePaid(m.user_id, !m.paid) : undefined} + /> ))}
@@ -553,6 +582,7 @@ export default function BudgetPanel({ tripId, tripMembers = [] }: BudgetPanelPro members={item.members || []} tripMembers={tripMembers} onSetMembers={(userIds) => setBudgetItemMembers(tripId, item.id, userIds)} + onTogglePaid={(userId, paid) => toggleBudgetMemberPaid(tripId, item.id, userId, paid)} /> ) : ( handleUpdateField(item.id, 'persons', v != null ? parseInt(v) || null : null)} style={{ textAlign: 'center' }} placeholder="-" locale={locale} editTooltip={t('budget.editTooltip')} /> @@ -628,6 +658,91 @@ export default function BudgetPanel({ tripId, tripMembers = [] }: BudgetPanelPro {hasMultipleMembers && (budgetItems || []).some(i => i.members?.length > 0) && ( )} + + {/* Settlement dropdown inside the total card */} + {hasMultipleMembers && settlement && settlement.flows.length > 0 && ( +
+ + + {settlementOpen && ( +
+ {settlement.flows.map((flow, i) => ( +
+ +
+ + + {fmt(flow.amount, currency)} + + +
+ +
+ ))} + + {settlement.balances.filter(b => Math.abs(b.balance) > 0.01).length > 0 && ( +
+
+ {t('budget.netBalances')} +
+ {settlement.balances.filter(b => Math.abs(b.balance) > 0.01).map(b => ( +
+
+ {b.avatar_url + ? + : b.username?.[0]?.toUpperCase() + } +
+ + {b.username} + + 0 ? '#4ade80' : '#f87171', + }}> + {b.balance > 0 ? '+' : ''}{fmt(b.balance, currency)} + +
+ ))} +
+ )} +
+ )} +
+ )}
{pieSegments.length > 0 && ( @@ -641,27 +756,19 @@ export default function BudgetPanel({ tripId, tripMembers = [] }: BudgetPanelPro -
+
{pieSegments.map(seg => { const pct = grandTotal > 0 ? ((seg.value / grandTotal) * 100).toFixed(1) : '0.0' return (
{seg.name} - {pct}% + {fmt(seg.value, currency)} + {pct}%
) })}
- -
- {pieSegments.map(seg => ( -
- {seg.name} - {fmt(seg.value, currency)} -
- ))} -
)} diff --git a/client/src/i18n/translations/de.ts b/client/src/i18n/translations/de.ts index 09c82d1..b09273e 100644 --- a/client/src/i18n/translations/de.ts +++ b/client/src/i18n/translations/de.ts @@ -800,6 +800,9 @@ const de: Record = { 'budget.paid': 'Bezahlt', 'budget.open': 'Offen', 'budget.noMembers': 'Keine Teilnehmer zugewiesen', + 'budget.settlement': 'Ausgleich', + 'budget.settlementInfo': 'Klicke auf ein Mitglied-Bild bei einem Eintrag, um es grün zu markieren — das bedeutet, diese Person hat bezahlt. Der Ausgleich zeigt dann, wer wem wie viel schuldet.', + 'budget.netBalances': 'Netto-Salden', // Files 'files.title': 'Dateien', diff --git a/client/src/i18n/translations/en.ts b/client/src/i18n/translations/en.ts index 21ca7a6..b85b6dc 100644 --- a/client/src/i18n/translations/en.ts +++ b/client/src/i18n/translations/en.ts @@ -800,6 +800,9 @@ const en: Record = { 'budget.paid': 'Paid', 'budget.open': 'Open', 'budget.noMembers': 'No members assigned', + 'budget.settlement': 'Settlement', + 'budget.settlementInfo': 'Click a member avatar on a budget item to mark them green — this means they paid. The settlement then shows who owes whom and how much.', + 'budget.netBalances': 'Net Balances', // Files 'files.title': 'Files', diff --git a/server/src/db/migrations.ts b/server/src/db/migrations.ts index f62499d..2254b21 100644 --- a/server/src/db/migrations.ts +++ b/server/src/db/migrations.ts @@ -325,6 +325,10 @@ function runMigrations(db: Database.Database): void { // Add day_plan_position to reservations for persistent transport ordering in day timeline try { db.exec('ALTER TABLE reservations ADD COLUMN day_plan_position REAL DEFAULT NULL'); } catch {} }, + () => { + // Add paid_by_user_id to budget_items for expense tracking / settlement + try { db.exec('ALTER TABLE budget_items ADD COLUMN paid_by_user_id INTEGER REFERENCES users(id)'); } catch {} + }, ]; if (currentVersion < migrations.length) { diff --git a/server/src/routes/budget.ts b/server/src/routes/budget.ts index c1b9258..410f62b 100644 --- a/server/src/routes/budget.ts +++ b/server/src/routes/budget.ts @@ -195,6 +195,77 @@ router.put('/:id/members/:userId/paid', authenticate, (req: Request, res: Respon broadcast(Number(tripId), 'budget:member-paid-updated', { itemId: Number(id), userId: Number(userId), paid: paid ? 1 : 0 }, req.headers['x-socket-id'] as string); }); +// Settlement calculation: who owes whom +router.get('/settlement', authenticate, (req: Request, res: Response) => { + const authReq = req as AuthRequest; + const { tripId } = req.params; + if (!canAccessTrip(Number(tripId), authReq.user.id)) return res.status(404).json({ error: 'Trip not found' }); + + const items = db.prepare('SELECT * FROM budget_items WHERE trip_id = ?').all(tripId) as BudgetItem[]; + const allMembers = db.prepare(` + SELECT bm.budget_item_id, bm.user_id, bm.paid, u.username, u.avatar + FROM budget_item_members bm + JOIN users u ON bm.user_id = u.id + WHERE bm.budget_item_id IN (SELECT id FROM budget_items WHERE trip_id = ?) + `).all(tripId) as (BudgetItemMember & { budget_item_id: number })[]; + + // Calculate net balance per user: positive = is owed money, negative = owes money + const balances: Record = {}; + + for (const item of items) { + const members = allMembers.filter(m => m.budget_item_id === item.id); + if (members.length === 0) continue; + + const payers = members.filter(m => m.paid); + if (payers.length === 0) continue; // no one marked as paid + + const sharePerMember = item.total_price / members.length; + const paidPerPayer = item.total_price / payers.length; + + for (const m of members) { + if (!balances[m.user_id]) { + balances[m.user_id] = { user_id: m.user_id, username: m.username, avatar_url: avatarUrl(m), balance: 0 }; + } + // Everyone owes their share + balances[m.user_id].balance -= sharePerMember; + // Payers get credited what they paid + if (m.paid) balances[m.user_id].balance += paidPerPayer; + } + } + + // Calculate optimized payment flows (greedy algorithm) + const people = Object.values(balances).filter(b => Math.abs(b.balance) > 0.01); + const debtors = people.filter(p => p.balance < -0.01).map(p => ({ ...p, amount: -p.balance })); + const creditors = people.filter(p => p.balance > 0.01).map(p => ({ ...p, amount: p.balance })); + + // Sort by amount descending for efficient matching + debtors.sort((a, b) => b.amount - a.amount); + creditors.sort((a, b) => b.amount - a.amount); + + const flows: { from: { user_id: number; username: string; avatar_url: string | null }; to: { user_id: number; username: string; avatar_url: string | null }; amount: number }[] = []; + + let di = 0, ci = 0; + while (di < debtors.length && ci < creditors.length) { + const transfer = Math.min(debtors[di].amount, creditors[ci].amount); + if (transfer > 0.01) { + flows.push({ + from: { user_id: debtors[di].user_id, username: debtors[di].username, avatar_url: debtors[di].avatar_url }, + to: { user_id: creditors[ci].user_id, username: creditors[ci].username, avatar_url: creditors[ci].avatar_url }, + amount: Math.round(transfer * 100) / 100, + }); + } + debtors[di].amount -= transfer; + creditors[ci].amount -= transfer; + if (debtors[di].amount < 0.01) di++; + if (creditors[ci].amount < 0.01) ci++; + } + + res.json({ + balances: Object.values(balances).map(b => ({ ...b, balance: Math.round(b.balance * 100) / 100 })), + flows, + }); +}); + router.delete('/:id', authenticate, (req: Request, res: Response) => { const authReq = req as AuthRequest; const { tripId, id } = req.params; From 66b00c24e282c29124028c4be889e6cf65c01da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rnyi=20M=C3=A1rk?= Date: Mon, 30 Mar 2026 11:15:57 +0200 Subject: [PATCH 21/63] add leftWidth/rightWidth centering to PlaceInspector --- client/src/components/Planner/PlaceInspector.tsx | 7 +++++-- client/src/pages/TripPlannerPage.tsx | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/client/src/components/Planner/PlaceInspector.tsx b/client/src/components/Planner/PlaceInspector.tsx index 7d46a7c..766ce0a 100644 --- a/client/src/components/Planner/PlaceInspector.tsx +++ b/client/src/components/Planner/PlaceInspector.tsx @@ -120,12 +120,15 @@ interface PlaceInspectorProps { tripMembers?: TripMember[] onSetParticipants: (assignmentId: number, dayId: number, participantIds: number[]) => void onUpdatePlace: (placeId: number, data: Partial) => void + leftWidth?: number + rightWidth?: number } export default function PlaceInspector({ place, categories, days, selectedDayId, selectedAssignmentId, assignments, reservations = [], onClose, onEdit, onDelete, onAssignToDay, onRemoveAssignment, files, onFileUpload, tripMembers = [], onSetParticipants, onUpdatePlace, + leftWidth = 0, rightWidth = 0, }: PlaceInspectorProps) { const { t, locale, language } = useTranslation() const timeFormat = useSettingsStore(s => s.settings.time_format) || '24h' @@ -196,9 +199,9 @@ export default function PlaceInspector({ style={{ position: 'absolute', bottom: 20, - left: '50%', + left: `calc(${leftWidth}px + (100% - ${leftWidth}px - ${rightWidth}px) / 2)`, transform: 'translateX(-50%)', - width: 'min(800px, calc(100vw - 32px))', + width: `min(800px, calc(100% - ${leftWidth}px - ${rightWidth}px - 32px))`, zIndex: 50, fontFamily: "-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif", }} diff --git a/client/src/pages/TripPlannerPage.tsx b/client/src/pages/TripPlannerPage.tsx index 6a9c4d7..8e0ca9e 100644 --- a/client/src/pages/TripPlannerPage.tsx +++ b/client/src/pages/TripPlannerPage.tsx @@ -590,6 +590,8 @@ export default function TripPlannerPage(): React.ReactElement | null { } catch {} }} onUpdatePlace={async (placeId, data) => { try { await tripStore.updatePlace(tripId, placeId, data) } catch (err: unknown) { toast.error(err instanceof Error ? err.message : 'Unknown error') } }} + leftWidth={leftCollapsed ? 0 : leftWidth} + rightWidth={rightCollapsed ? 0 : rightWidth} /> )} From ee54308819582b0ebc2f04e90c686915ba29b4f9 Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 30 Mar 2026 11:16:23 +0200 Subject: [PATCH 22/63] =?UTF-8?q?feat:=20expand=20budget=20currencies=20fr?= =?UTF-8?q?om=2014=20to=2046=20=E2=80=94=20closes=20#96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add BDT, INR, BRL, MXN, KRW, CNY, SGD, PHP, VND, ZAR, AED, SAR, ILS, EGP, MAD, HUF, RON, BGN, HRK, ISK, RUB, UAH, LKR, CLP, COP, PEN, ARS, NZD, IDR, MYR, HKD, TWD with correct currency symbols. --- client/src/components/Budget/BudgetPanel.tsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/client/src/components/Budget/BudgetPanel.tsx b/client/src/components/Budget/BudgetPanel.tsx index ba59f0d..a6a8a9e 100644 --- a/client/src/components/Budget/BudgetPanel.tsx +++ b/client/src/components/Budget/BudgetPanel.tsx @@ -29,8 +29,23 @@ interface PerPersonSummaryEntry { } // ── Helpers ────────────────────────────────────────────────────────────────── -const CURRENCIES = ['EUR', 'USD', 'GBP', 'JPY', 'CHF', 'CZK', 'PLN', 'SEK', 'NOK', 'DKK', 'TRY', 'THB', 'AUD', 'CAD'] -const SYMBOLS = { EUR: '€', USD: '$', GBP: '£', JPY: '¥', CHF: 'CHF', CZK: 'Kč', PLN: 'zł', SEK: 'kr', NOK: 'kr', DKK: 'kr', TRY: '₺', THB: '฿', AUD: 'A$', CAD: 'C$' } +const CURRENCIES = [ + 'EUR', 'USD', 'GBP', 'JPY', 'CHF', 'CZK', 'PLN', 'SEK', 'NOK', 'DKK', + 'TRY', 'THB', 'AUD', 'CAD', 'NZD', 'BRL', 'MXN', 'INR', 'IDR', 'MYR', + 'PHP', 'SGD', 'KRW', 'CNY', 'HKD', 'TWD', 'ZAR', 'AED', 'SAR', 'ILS', + 'EGP', 'MAD', 'HUF', 'RON', 'BGN', 'HRK', 'ISK', 'RUB', 'UAH', 'BDT', + 'LKR', 'VND', 'CLP', 'COP', 'PEN', 'ARS', +] +const SYMBOLS = { + EUR: '€', USD: '$', GBP: '£', JPY: '¥', CHF: 'CHF', CZK: 'Kč', PLN: 'zł', + SEK: 'kr', NOK: 'kr', DKK: 'kr', TRY: '₺', THB: '฿', AUD: 'A$', CAD: 'C$', + NZD: 'NZ$', BRL: 'R$', MXN: 'MX$', INR: '₹', IDR: 'Rp', MYR: 'RM', + PHP: '₱', SGD: 'S$', KRW: '₩', CNY: '¥', HKD: 'HK$', TWD: 'NT$', + ZAR: 'R', AED: 'د.إ', SAR: '﷼', ILS: '₪', EGP: 'E£', MAD: 'MAD', + HUF: 'Ft', RON: 'lei', BGN: 'лв', HRK: 'kn', ISK: 'kr', RUB: '₽', + UAH: '₴', BDT: '৳', LKR: 'Rs', VND: '₫', CLP: 'CL$', COP: 'CO$', + PEN: 'S/.', ARS: 'AR$', +} const PIE_COLORS = ['#6366f1', '#ec4899', '#f59e0b', '#10b981', '#3b82f6', '#8b5cf6', '#ef4444', '#14b8a6', '#f97316', '#06b6d4', '#84cc16', '#a855f7'] const fmtNum = (v, locale, cur) => { From 931c5bd990f3f61fcbfaf54e6d02247bdd7ca6ee Mon Sep 17 00:00:00 2001 From: quentinClaudel Date: Sun, 29 Mar 2026 23:36:56 +0200 Subject: [PATCH 23/63] =?UTF-8?q?feat:=20improve=20French=20translations?= =?UTF-8?q?=20=E2=80=94=20thanks=20@quentinClaudel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/Vacay/VacayMonthCard.tsx | 10 +- client/src/i18n/translations/fr.ts | 140 +++++++++--------- 2 files changed, 77 insertions(+), 73 deletions(-) diff --git a/client/src/components/Vacay/VacayMonthCard.tsx b/client/src/components/Vacay/VacayMonthCard.tsx index 9c1e8ad..708acb9 100644 --- a/client/src/components/Vacay/VacayMonthCard.tsx +++ b/client/src/components/Vacay/VacayMonthCard.tsx @@ -6,10 +6,13 @@ import type { HolidaysMap, VacayEntry } from '../../types' const WEEKDAYS_EN = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'] const WEEKDAYS_DE = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'] const WEEKDAYS_ES = ['Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa', 'Do'] +const WEEKDAYS_FR = ['Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa', 'Di'] const WEEKDAYS_AR = ['اث', 'ثل', 'أر', 'خم', 'جم', 'سب', 'أح'] + const MONTHS_EN = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] const MONTHS_DE = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'] const MONTHS_ES = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'] +const MONTHS_FR = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] const MONTHS_AR = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'] function hexToRgba(hex: string, alpha: number): string { @@ -37,9 +40,10 @@ export default function VacayMonthCard({ onCellClick, companyMode, blockWeekends, weekendDays = [0, 6] }: VacayMonthCardProps) { const { language } = useTranslation() - const weekdays = language === 'de' ? WEEKDAYS_DE : language === 'es' ? WEEKDAYS_ES : language === 'ar' ? WEEKDAYS_AR : WEEKDAYS_EN - const monthNames = language === 'de' ? MONTHS_DE : language === 'es' ? MONTHS_ES : language === 'ar' ? MONTHS_AR : MONTHS_EN - + + const weekdays = language === 'de' ? WEEKDAYS_DE : language === 'es' ? WEEKDAYS_ES : language === 'fr' ? WEEKDAYS_FR : language === 'ar' ? WEEKDAYS_AR : WEEKDAYS_EN + const monthNames = language === 'de' ? MONTHS_DE : language === 'es' ? MONTHS_ES : language === 'fr' ? MONTHS_FR : language === 'ar' ? MONTHS_AR : MONTHS_EN + const weeks = useMemo(() => { const firstDay = new Date(year, month, 1) const daysInMonth = new Date(year, month + 1, 0).getDate() diff --git a/client/src/i18n/translations/fr.ts b/client/src/i18n/translations/fr.ts index 722e8d8..f610cc0 100644 --- a/client/src/i18n/translations/fr.ts +++ b/client/src/i18n/translations/fr.ts @@ -5,13 +5,13 @@ const fr: Record = { 'common.delete': 'Supprimer', 'common.edit': 'Modifier', 'common.add': 'Ajouter', - 'common.loading': 'Chargement...', + 'common.loading': 'Chargement…', 'common.error': 'Erreur', 'common.back': 'Retour', 'common.all': 'Tout', 'common.close': 'Fermer', 'common.open': 'Ouvrir', - 'common.upload': 'Téléverser', + 'common.upload': 'Importer', 'common.search': 'Rechercher', 'common.confirm': 'Confirmer', 'common.ok': 'OK', @@ -24,10 +24,10 @@ const fr: Record = { 'common.name': 'Nom', 'common.email': 'E-mail', 'common.password': 'Mot de passe', - 'common.saving': 'Enregistrement...', + 'common.saving': 'Enregistrement…', 'common.update': 'Mettre à jour', 'common.change': 'Modifier', - 'common.uploading': 'Téléversement…', + 'common.uploading': 'Import en cours…', 'common.backToPlanning': 'Retour à la planification', 'common.reset': 'Réinitialiser', @@ -44,7 +44,7 @@ const fr: Record = { // Dashboard 'dashboard.title': 'Mes voyages', - 'dashboard.subtitle.loading': 'Chargement des voyages...', + 'dashboard.subtitle.loading': 'Chargement des voyages…', 'dashboard.subtitle.trips': '{count} voyages ({archived} archivés)', 'dashboard.subtitle.empty': 'Commencez votre premier voyage', 'dashboard.subtitle.activeOne': '{count} voyage actif', @@ -54,8 +54,8 @@ const fr: Record = { 'dashboard.gridView': 'Vue en grille', 'dashboard.listView': 'Vue en liste', 'dashboard.currency': 'Devise', - 'dashboard.timezone': 'Fuseaux horaires', - 'dashboard.localTime': 'Local', + 'dashboard.timezone': 'Fuseau horaire', + 'dashboard.localTime': 'Heure locale', 'dashboard.timezoneCustomTitle': 'Fuseau horaire personnalisé', 'dashboard.timezoneCustomLabelPlaceholder': 'Libellé (facultatif)', 'dashboard.timezoneCustomTzPlaceholder': 'ex. America/New_York', @@ -105,7 +105,7 @@ const fr: Record = { 'dashboard.addMembers': 'Compagnons de voyage', 'dashboard.addMember': 'Ajouter un membre', 'dashboard.coverSaved': 'Image de couverture enregistrée', - 'dashboard.coverUploadError': 'Échec du téléversement', + 'dashboard.coverUploadError': 'Échec de l\'import', 'dashboard.coverRemoveError': 'Échec de la suppression', 'dashboard.titleRequired': 'Le titre est obligatoire', 'dashboard.endDateError': 'La date de fin doit être postérieure à la date de début', @@ -115,7 +115,7 @@ const fr: Record = { 'settings.subtitle': 'Configurez vos paramètres personnels', 'settings.map': 'Carte', 'settings.mapTemplate': 'Modèle de carte', - 'settings.mapTemplatePlaceholder.select': 'Sélectionner un modèle...', + 'settings.mapTemplatePlaceholder.select': 'Sélectionner un modèle…', 'settings.mapDefaultHint': 'Laissez vide pour OpenStreetMap (par défaut)', 'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', 'settings.mapHint': 'Modèle d\'URL pour les tuiles de carte', @@ -127,7 +127,7 @@ const fr: Record = { 'settings.mapsKeyHint': 'Pour la recherche de lieux. Nécessite l\'API Places (New). Obtenez-la sur console.cloud.google.com', 'settings.weatherKey': 'Clé API OpenWeatherMap', 'settings.weatherKeyHint': 'Pour les données météo. Gratuit sur openweathermap.org/api', - 'settings.keyPlaceholder': 'Saisir la clé...', + 'settings.keyPlaceholder': 'Saisir la clé…', 'settings.configured': 'Configuré', 'settings.saveKeys': 'Enregistrer les clés', 'settings.display': 'Affichage', @@ -186,15 +186,15 @@ const fr: Record = { 'settings.toast.keysSaved': 'Clés API enregistrées', 'settings.toast.displaySaved': 'Paramètres d\'affichage enregistrés', 'settings.toast.profileSaved': 'Profil enregistré', - 'settings.uploadAvatar': 'Téléverser une photo de profil', + 'settings.uploadAvatar': 'Importer une photo de profil', 'settings.removeAvatar': 'Supprimer la photo de profil', 'settings.avatarUploaded': 'Photo de profil mise à jour', 'settings.avatarRemoved': 'Photo de profil supprimée', - 'settings.avatarError': 'Échec du téléversement', + 'settings.avatarError': 'Échec de l\'import', // Login 'login.error': 'Échec de la connexion. Veuillez vérifier vos identifiants.', - 'login.tagline': 'Vos voyages.\nVotre plan.', + 'login.tagline': 'Vos voyages.\nVotre organisation.', 'login.description': 'Planifiez vos voyages en collaboration avec des cartes interactives, des budgets et la synchronisation en temps réel.', 'login.features.maps': 'Cartes interactives', 'login.features.mapsDesc': 'Google Places, itinéraires et regroupement', @@ -209,7 +209,7 @@ const fr: Record = { 'login.features.bookings': 'Réservations', 'login.features.bookingsDesc': 'Vols, hôtels, restaurants et plus', 'login.features.files': 'Documents', - 'login.features.filesDesc': 'Téléversez et gérez vos documents', + 'login.features.filesDesc': 'Importez et gérez vos documents', 'login.features.routes': 'Itinéraires intelligents', 'login.features.routesDesc': 'Optimisation automatique et export Google Maps', 'login.selfHosted': 'Auto-hébergé · Open Source · Vos données restent les vôtres', @@ -260,7 +260,7 @@ const fr: Record = { 'register.minChars': 'Min. 6 caractères', 'register.confirmPassword': 'Confirmer le mot de passe', 'register.repeatPassword': 'Répéter le mot de passe', - 'register.registering': 'Inscription en cours...', + 'register.registering': 'Inscription en cours…', 'register.register': 'S\'inscrire', 'register.hasAccount': 'Vous avez déjà un compte ?', 'register.signIn': 'Se connecter', @@ -343,7 +343,7 @@ const fr: Record = { // File Types 'admin.fileTypes': 'Types de fichiers autorisés', - 'admin.fileTypesHint': 'Configurez les types de fichiers que les utilisateurs peuvent téléverser.', + 'admin.fileTypesHint': 'Configurez les types de fichiers que les utilisateurs peuvent importer.', 'admin.fileTypesFormat': 'Extensions séparées par des virgules (ex. jpg,png,pdf,doc). Utilisez * pour autoriser tous les types.', 'admin.fileTypesSaved': 'Paramètres des types de fichiers enregistrés', @@ -381,11 +381,11 @@ const fr: Record = { 'admin.addons.catalog.budget.description': 'Suivez les dépenses et planifiez votre budget de voyage', 'admin.addons.catalog.documents.name': 'Documents', 'admin.addons.catalog.documents.description': 'Stockez et gérez vos documents de voyage', - 'admin.addons.catalog.vacay.name': 'Vacay', + 'admin.addons.catalog.vacay.name': 'Vacances', 'admin.addons.catalog.vacay.description': 'Planificateur de vacances personnel avec vue calendrier', 'admin.addons.catalog.atlas.name': 'Atlas', 'admin.addons.catalog.atlas.description': 'Carte du monde avec pays visités et statistiques de voyage', - 'admin.addons.catalog.collab.name': 'Collab', + 'admin.addons.catalog.collab.name': 'Collaboration', 'admin.addons.catalog.collab.description': 'Notes en temps réel, sondages et chat pour la planification de voyage', 'admin.addons.subtitleBefore': 'Activez ou désactivez des fonctionnalités pour personnaliser votre expérience ', 'admin.addons.subtitleAfter': '.', @@ -408,7 +408,7 @@ const fr: Record = { 'admin.weather.climateDesc': 'Moyennes des 85 dernières années pour les jours au-delà des prévisions de 16 jours', 'admin.weather.requests': '10 000 requêtes / jour', 'admin.weather.requestsDesc': 'Gratuit, aucune clé API requise', - 'admin.weather.locationHint': 'La météo est basée sur le premier lieu avec des coordonnées de chaque jour. Si aucun lieu n\'est assigné à un jour, un lieu de la liste est utilisé comme référence.', + 'admin.weather.locationHint': 'La météo est basée sur le premier lieu avec des coordonnées de chaque jour. Si aucun lieu n\'est attribué à un jour, un lieu de la liste est utilisé comme référence.', // GitHub 'admin.tabs.github': 'GitHub', @@ -419,8 +419,8 @@ const fr: Record = { 'admin.github.showDetails': 'Afficher les détails', 'admin.github.hideDetails': 'Masquer les détails', 'admin.github.loadMore': 'Charger plus', - 'admin.github.loading': 'Chargement...', - 'admin.github.support': 'Aide à continuer le développement de TREK', + 'admin.github.loading': 'Chargement…', + 'admin.github.support': 'Aidez à poursuivre le développement de TREK', 'admin.github.error': 'Impossible de charger les versions', 'admin.github.by': 'par', @@ -430,7 +430,7 @@ const fr: Record = { 'admin.update.install': 'Installer la mise à jour', 'admin.update.confirmTitle': 'Installer la mise à jour ?', 'admin.update.confirmText': 'TREK sera mis à jour de {current} vers {version}. Le serveur redémarrera automatiquement ensuite.', - 'admin.update.dataInfo': 'Toutes vos données (voyages, utilisateurs, clés API, téléversements, Vacay, Atlas, budgets) seront préservées.', + 'admin.update.dataInfo': 'Toutes vos données (voyages, utilisateurs, clés API, importations, Vacances, Atlas, budgets) seront préservées.', 'admin.update.warning': 'L\'application sera brièvement indisponible pendant le redémarrage.', 'admin.update.confirm': 'Mettre à jour maintenant', 'admin.update.installing': 'Mise à jour…', @@ -443,7 +443,7 @@ const fr: Record = { 'admin.update.reloadHint': 'Veuillez recharger la page dans quelques secondes.', // Vacay addon - 'vacay.subtitle': 'Planifiez et gérez vos jours de congé', + 'vacay.subtitle': 'Planifiez et gérez vos jours de congés', 'vacay.settings': 'Paramètres', 'vacay.year': 'Année', 'vacay.addYear': 'Ajouter une année', @@ -490,11 +490,11 @@ const fr: Record = { 'vacay.shareEmailPlaceholder': 'E-mail de l\'utilisateur TREK', 'vacay.shareSuccess': 'Plan partagé avec succès', 'vacay.shareError': 'Impossible de partager le plan', - 'vacay.dissolve': 'Dissoudre la fusion', + 'vacay.dissolve': 'Séparer les calendriers', 'vacay.dissolveHint': 'Séparer à nouveau les calendriers. Vos entrées seront conservées.', 'vacay.dissolveAction': 'Dissoudre', 'vacay.dissolved': 'Calendrier séparé', - 'vacay.fusedWith': 'Fusionné avec', + 'vacay.fusedWith': 'Partagé avec', 'vacay.you': 'vous', 'vacay.noData': 'Aucune donnée', 'vacay.changeColor': 'Changer la couleur', @@ -580,14 +580,14 @@ const fr: Record = { 'trip.tabs.packingShort': 'Bagages', 'trip.tabs.budget': 'Budget', 'trip.tabs.files': 'Fichiers', - 'trip.loading': 'Chargement du voyage...', + 'trip.loading': 'Chargement du voyage…', 'trip.mobilePlan': 'Plan', 'trip.mobilePlaces': 'Lieux', 'trip.toast.placeUpdated': 'Lieu mis à jour', 'trip.toast.placeAdded': 'Lieu ajouté', 'trip.toast.placeDeleted': 'Lieu supprimé', 'trip.toast.selectDay': 'Veuillez d\'abord sélectionner un jour', - 'trip.toast.assignedToDay': 'Lieu assigné au jour', + 'trip.toast.assignedToDay': 'Lieu attribué au planning', 'trip.toast.reorderError': 'Échec de la réorganisation', 'trip.toast.reservationUpdated': 'Réservation mise à jour', 'trip.toast.reservationAdded': 'Réservation ajoutée', @@ -605,7 +605,7 @@ const fr: Record = { 'dayplan.totalCost': 'Coût total', 'dayplan.days': 'Jours', 'dayplan.dayN': 'Jour {n}', - 'dayplan.calculating': 'Calcul en cours...', + 'dayplan.calculating': 'Calcul en cours…', 'dayplan.route': 'Itinéraire', 'dayplan.optimize': 'Optimiser', 'dayplan.optimized': 'Itinéraire optimisé', @@ -620,11 +620,11 @@ const fr: Record = { 'dayplan.pdfError': 'Échec de l\'export PDF', // Places Sidebar - 'places.addPlace': 'Ajouter un lieu/activité', + 'places.addPlace': 'Ajouter un lieu ou une activité', 'places.assignToDay': 'Ajouter à quel jour ?', 'places.all': 'Tous', 'places.unplanned': 'Non planifiés', - 'places.search': 'Rechercher des lieux...', + 'places.search': 'Rechercher des lieux…', 'places.allCategories': 'Toutes les catégories', 'places.count': '{count} lieux', 'places.countSingular': '1 lieu', @@ -634,7 +634,7 @@ const fr: Record = { 'places.formName': 'Nom', 'places.formNamePlaceholder': 'ex. Tour Eiffel', 'places.formDescription': 'Description', - 'places.formDescriptionPlaceholder': 'Brève description...', + 'places.formDescriptionPlaceholder': 'Brève description…', 'places.formAddress': 'Adresse', 'places.formAddressPlaceholder': 'Rue, ville, pays', 'places.formLat': 'Latitude (ex. 48.8566)', @@ -648,10 +648,10 @@ const fr: Record = { 'places.endTimeBeforeStart': 'L\'heure de fin est antérieure à l\'heure de début', 'places.timeCollision': 'Chevauchement horaire avec :', 'places.formWebsite': 'Site web', - 'places.formNotesPlaceholder': 'Notes personnelles...', + 'places.formNotesPlaceholder': 'Notes personnelles…', 'places.formReservation': 'Réservation', - 'places.reservationNotesPlaceholder': 'Notes de réservation, numéro de confirmation...', - 'places.mapsSearchPlaceholder': 'Rechercher des lieux...', + 'places.reservationNotesPlaceholder': 'Notes de réservation, numéro de confirmation…', + 'places.mapsSearchPlaceholder': 'Rechercher des lieux…', 'places.mapsSearchError': 'La recherche de lieu a échoué.', 'places.osmHint': 'Recherche via OpenStreetMap (pas de photos, horaires ni notes). Ajoutez une clé API Google dans les paramètres pour plus de détails.', 'places.osmActive': 'Recherche via OpenStreetMap (pas de photos, notes ni horaires). Ajoutez une clé API Google dans les paramètres pour des données enrichies.', @@ -696,7 +696,7 @@ const fr: Record = { 'reservations.time': 'Heure', 'reservations.timeAlt': 'Heure (alternative, ex. 19h30)', 'reservations.notes': 'Notes', - 'reservations.notesPlaceholder': 'Notes supplémentaires...', + 'reservations.notesPlaceholder': 'Notes supplémentaires…', 'reservations.meta.airline': 'Compagnie aérienne', 'reservations.meta.flightNumber': 'N° de vol', 'reservations.meta.from': 'De', @@ -726,14 +726,14 @@ const fr: Record = { 'reservations.confirm.delete': 'Voulez-vous vraiment supprimer la réservation « {name} » ?', 'reservations.toast.updated': 'Réservation mise à jour', 'reservations.toast.removed': 'Réservation supprimée', - 'reservations.toast.fileUploaded': 'Fichier téléversé', - 'reservations.toast.uploadError': 'Échec du téléversement', + 'reservations.toast.fileUploaded': 'Fichier importé', + 'reservations.toast.uploadError': 'Échec de l\'import', 'reservations.newTitle': 'Nouvelle réservation', 'reservations.bookingType': 'Type de réservation', 'reservations.titleLabel': 'Titre', - 'reservations.titlePlaceholder': 'ex. Lufthansa LH123, Hôtel Adlon, ...', + 'reservations.titlePlaceholder': 'ex. Lufthansa LH123, Hôtel Adlon, …', 'reservations.locationAddress': 'Lieu / Adresse', - 'reservations.locationPlaceholder': 'Adresse, aéroport, hôtel...', + 'reservations.locationPlaceholder': 'Adresse, aéroport, hôtel…', 'reservations.confirmationCode': 'Code de réservation', 'reservations.confirmationPlaceholder': 'ex. ABC12345', 'reservations.day': 'Jour', @@ -741,22 +741,22 @@ const fr: Record = { 'reservations.place': 'Lieu', 'reservations.noPlace': 'Aucun lieu', 'reservations.pendingSave': 'sera enregistré…', - 'reservations.uploading': 'Téléversement...', + 'reservations.uploading': 'Importation…', 'reservations.attachFile': 'Joindre un fichier', 'reservations.linkExisting': 'Lier un fichier existant', 'reservations.toast.saveError': 'Échec de l\'enregistrement', 'reservations.toast.updateError': 'Échec de la mise à jour', 'reservations.toast.deleteError': 'Échec de la suppression', 'reservations.confirm.remove': 'Supprimer la réservation pour « {name} » ?', - 'reservations.linkAssignment': 'Lier à l\'assignation du jour', - 'reservations.pickAssignment': 'Sélectionnez une assignation de votre plan...', + 'reservations.linkAssignment': 'Lier à l\'affectation du jour', + 'reservations.pickAssignment': 'Sélectionnez une affectation de votre plan…', 'reservations.noAssignment': 'Aucun lien (autonome)', // Budget 'budget.title': 'Budget', 'budget.emptyTitle': 'Aucun budget créé', 'budget.emptyText': 'Créez des catégories et des entrées pour planifier votre budget de voyage', - 'budget.emptyPlaceholder': 'Nom de la catégorie...', + 'budget.emptyPlaceholder': 'Nom de la catégorie…', 'budget.createCategory': 'Créer une catégorie', 'budget.category': 'Catégorie', 'budget.categoryName': 'Nom de la catégorie', @@ -774,24 +774,24 @@ const fr: Record = { 'budget.total': 'Total', 'budget.totalBudget': 'Budget total', 'budget.byCategory': 'Par catégorie', - 'budget.editTooltip': 'Cliquer pour modifier', + 'budget.editTooltip': 'Cliquez pour modifier', 'budget.confirm.deleteCategory': 'Voulez-vous vraiment supprimer la catégorie « {name} » avec {count} entrées ?', 'budget.deleteCategory': 'Supprimer la catégorie', 'budget.perPerson': 'Par personne', 'budget.paid': 'Payé', 'budget.open': 'Ouvert', - 'budget.noMembers': 'Aucun membre assigné', + 'budget.noMembers': 'Aucun membre attribué', // Files 'files.title': 'Fichiers', 'files.count': '{count} fichiers', 'files.countSingular': '1 fichier', - 'files.uploaded': '{count} téléversés', - 'files.uploadError': 'Échec du téléversement', + 'files.uploaded': '{count} importés', + 'files.uploadError': 'Échec de l\'import', 'files.dropzone': 'Déposez les fichiers ici', 'files.dropzoneHint': 'ou cliquez pour parcourir', 'files.allowedTypes': 'Images, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Max 50 Mo', - 'files.uploading': 'Téléversement...', + 'files.uploading': 'Importation…', 'files.filterAll': 'Tous', 'files.filterPdf': 'PDF', 'files.filterImages': 'Images', @@ -799,7 +799,7 @@ const fr: Record = { 'files.filterCollab': 'Notes Collab', 'files.sourceCollab': 'Depuis les notes Collab', 'files.empty': 'Aucun fichier', - 'files.emptyHint': 'Téléversez des fichiers pour les joindre à votre voyage', + 'files.emptyHint': 'Importez des fichiers pour les joindre à votre voyage', 'files.openTab': 'Ouvrir dans un nouvel onglet', 'files.confirm.delete': 'Voulez-vous vraiment supprimer ce fichier ?', 'files.toast.deleted': 'Fichier supprimé', @@ -818,18 +818,18 @@ const fr: Record = { 'files.assignTitle': 'Assigner le fichier', 'files.assignPlace': 'Lieu', 'files.assignBooking': 'Réservation', - 'files.unassigned': 'Non assigné', + 'files.unassigned': 'Non attribué', 'files.unlink': 'Supprimer le lien', 'files.toast.trashed': 'Déplacé dans la corbeille', 'files.toast.restored': 'Fichier restauré', 'files.toast.trashEmptied': 'Corbeille vidée', - 'files.toast.assigned': 'Fichier assigné', + 'files.toast.assigned': 'Fichier attribué', 'files.toast.assignError': 'Échec de l\'assignation', 'files.toast.restoreError': 'Échec de la restauration', 'files.confirm.permanentDelete': 'Supprimer définitivement ce fichier ? Cette action est irréversible.', 'files.confirm.emptyTrash': 'Supprimer définitivement tous les fichiers de la corbeille ? Cette action est irréversible.', 'files.noteLabel': 'Note', - 'files.notePlaceholder': 'Ajouter une note...', + 'files.notePlaceholder': 'Ajouter une note…', // Packing 'packing.title': 'Liste de bagages', @@ -841,8 +841,8 @@ const fr: Record = { 'packing.suggestionsTitle': 'Ajouter des suggestions', 'packing.allSuggested': 'Toutes les suggestions ajoutées', 'packing.allPacked': 'Tout est emballé !', - 'packing.addPlaceholder': 'Ajouter un nouvel article...', - 'packing.categoryPlaceholder': 'Catégorie...', + 'packing.addPlaceholder': 'Ajouter un nouvel article…', + 'packing.categoryPlaceholder': 'Catégorie…', 'packing.filterAll': 'Tous', 'packing.filterOpen': 'À faire', 'packing.filterDone': 'Fait', @@ -956,10 +956,10 @@ const fr: Record = { // Backup (Admin) 'backup.title': 'Sauvegarde des données', - 'backup.subtitle': 'Base de données et tous les fichiers téléversés', + 'backup.subtitle': 'Base de données et tous les fichiers importés', 'backup.refresh': 'Actualiser', - 'backup.upload': 'Téléverser une sauvegarde', - 'backup.uploading': 'Téléversement…', + 'backup.upload': 'Importer une sauvegarde', + 'backup.uploading': 'Importation…', 'backup.create': 'Créer une sauvegarde', 'backup.creating': 'Création…', 'backup.empty': 'Aucune sauvegarde', @@ -967,14 +967,14 @@ const fr: Record = { 'backup.download': 'Télécharger', 'backup.restore': 'Restaurer', 'backup.confirm.restore': 'Restaurer la sauvegarde « {name} » ?\n\nToutes les données actuelles seront remplacées par la sauvegarde.', - 'backup.confirm.uploadRestore': 'Téléverser et restaurer le fichier de sauvegarde « {name} » ?\n\nToutes les données actuelles seront écrasées.', + 'backup.confirm.uploadRestore': 'Importer et restaurer le fichier de sauvegarde « {name} » ?\n\nToutes les données actuelles seront écrasées.', 'backup.confirm.delete': 'Supprimer la sauvegarde « {name} » ?', 'backup.toast.loadError': 'Impossible de charger les sauvegardes', 'backup.toast.created': 'Sauvegarde créée avec succès', 'backup.toast.createError': 'Impossible de créer la sauvegarde', 'backup.toast.restored': 'Sauvegarde restaurée. La page va se recharger…', 'backup.toast.restoreError': 'Échec de la restauration', - 'backup.toast.uploadError': 'Échec du téléversement', + 'backup.toast.uploadError': 'Échec de l\'import', 'backup.toast.deleted': 'Sauvegarde supprimée', 'backup.toast.deleteError': 'Échec de la suppression', 'backup.toast.downloadError': 'Échec du téléchargement', @@ -1000,15 +1000,15 @@ const fr: Record = { // Photos 'photos.allDays': 'Tous les jours', 'photos.noPhotos': 'Aucune photo', - 'photos.uploadHint': 'Téléversez vos photos de voyage', + 'photos.uploadHint': 'Importez vos photos de voyage', 'photos.clickToSelect': 'ou cliquez pour sélectionner', 'photos.linkPlace': 'Lier au lieu', 'photos.noPlace': 'Aucun lieu', - 'photos.uploadN': '{n} photo(s) téléversées', + 'photos.uploadN': '{n} photo(s) importée(s)', // Backup restore modal 'backup.restoreConfirmTitle': 'Restaurer la sauvegarde ?', - 'backup.restoreWarning': 'Toutes les données actuelles (voyages, lieux, utilisateurs, téléversements) seront définitivement remplacées par la sauvegarde. Cette action est irréversible.', + 'backup.restoreWarning': 'Toutes les données actuelles (voyages, lieux, utilisateurs, importations) seront définitivement remplacées par la sauvegarde. Cette action est irréversible.', 'backup.restoreTip': 'Conseil : créez une sauvegarde de l\'état actuel avant de restaurer.', 'backup.restoreConfirm': 'Oui, restaurer', @@ -1045,8 +1045,8 @@ const fr: Record = { 'planner.placeN': '{n} lieux', 'planner.addNote': 'Ajouter une note', 'planner.noEntries': 'Aucune entrée pour ce jour', - 'planner.addPlace': 'Ajouter un lieu/activité', - 'planner.addPlaceShort': '+ Ajouter un lieu/activité', + 'planner.addPlace': 'Ajouter un lieu ou une activité', + 'planner.addPlaceShort': '+ Ajouter un lieu ou une activité', 'planner.resPending': 'Réservation en attente · ', 'planner.resConfirmed': 'Réservation confirmée · ', 'planner.notePlaceholder': 'Note…', @@ -1076,7 +1076,7 @@ const fr: Record = { 'planner.noDays': 'Aucun jour', 'planner.editTripToAddDays': 'Modifiez le voyage pour ajouter des jours', 'planner.dayCount': '{n} jours', - 'planner.clickToUnlock': 'Cliquer pour déverrouiller', + 'planner.clickToUnlock': 'Cliquez pour déverrouiller', 'planner.keepPosition': 'Maintenir la position lors de l\'optimisation de l\'itinéraire', 'planner.dayDetails': 'Détails du jour', 'planner.dayN': 'Jour {n}', @@ -1139,7 +1139,7 @@ const fr: Record = { 'memories.allLocations': 'Tous les lieux', // Collab Addon - 'collab.tabs.chat': 'Chat', + 'collab.tabs.chat': 'Discussion', 'collab.tabs.notes': 'Notes', 'collab.tabs.polls': 'Sondages', 'collab.whatsNext.title': 'À venir', @@ -1149,7 +1149,7 @@ const fr: Record = { 'collab.whatsNext.until': 'à', 'collab.whatsNext.emptyHint': 'Les activités avec des horaires apparaîtront ici', 'collab.chat.send': 'Envoyer', - 'collab.chat.placeholder': 'Écrire un message...', + 'collab.chat.placeholder': 'Écrire un message…', 'collab.chat.empty': 'Commencez la conversation', 'collab.chat.emptyHint': 'Les messages sont partagés avec tous les membres du voyage', 'collab.chat.emptyDesc': 'Partagez des idées, des plans et des mises à jour avec votre groupe de voyage', @@ -1166,9 +1166,9 @@ const fr: Record = { 'collab.notes.emptyHint': 'Commencez à capturer vos idées et plans', 'collab.notes.all': 'Toutes', 'collab.notes.titlePlaceholder': 'Titre de la note', - 'collab.notes.contentPlaceholder': 'Écrivez quelque chose...', + 'collab.notes.contentPlaceholder': 'Écrivez quelque chose…', 'collab.notes.categoryPlaceholder': 'Catégorie', - 'collab.notes.newCategory': 'Nouvelle catégorie...', + 'collab.notes.newCategory': 'Nouvelle catégorie…', 'collab.notes.category': 'Catégorie', 'collab.notes.noCategory': 'Sans catégorie', 'collab.notes.color': 'Couleur', @@ -1182,7 +1182,7 @@ const fr: Record = { 'collab.notes.categorySettings': 'Gérer les catégories', 'collab.notes.create': 'Créer', 'collab.notes.website': 'Site web', - 'collab.notes.websitePlaceholder': 'https://...', + 'collab.notes.websitePlaceholder': 'https://…', 'collab.notes.attachFiles': 'Joindre des fichiers', 'collab.notes.noCategoriesYet': 'Aucune catégorie', 'collab.notes.emptyDesc': 'Créez une note pour commencer', From 73b0534053a182b62e4af998c05f05511c6ae7b5 Mon Sep 17 00:00:00 2001 From: Maurice Date: Sun, 29 Mar 2026 23:38:51 +0200 Subject: [PATCH 24/63] feat: add missing French translation keys for memories and weekend days --- client/src/i18n/translations/fr.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/client/src/i18n/translations/fr.ts b/client/src/i18n/translations/fr.ts index f610cc0..28a7462 100644 --- a/client/src/i18n/translations/fr.ts +++ b/client/src/i18n/translations/fr.ts @@ -473,6 +473,14 @@ const fr: Record = { 'vacay.used': 'Utilisés', 'vacay.remaining': 'Restants', 'vacay.carriedOver': 'de {year}', + 'vacay.weekendDays': 'Jours de week-end', + 'vacay.mon': 'Lun', + 'vacay.tue': 'Mar', + 'vacay.wed': 'Mer', + 'vacay.thu': 'Jeu', + 'vacay.fri': 'Ven', + 'vacay.sat': 'Sam', + 'vacay.sun': 'Dim', 'vacay.blockWeekends': 'Bloquer les week-ends', 'vacay.blockWeekendsHint': 'Empêcher les entrées de vacances les samedis et dimanches', 'vacay.publicHolidays': 'Jours fériés', @@ -1137,6 +1145,19 @@ const fr: Record = { 'memories.oldest': 'Plus anciennes', 'memories.newest': 'Plus récentes', 'memories.allLocations': 'Tous les lieux', + 'memories.addPhotos': 'Ajouter des photos', + 'memories.selectPhotos': 'Sélectionner des photos depuis Immich', + 'memories.selectHint': 'Appuyez sur les photos pour les sélectionner.', + 'memories.selected': 'sélectionnées', + 'memories.addSelected': 'Ajouter {count} photos', + 'memories.alreadyAdded': 'Déjà ajoutée', + 'memories.private': 'Privé', + 'memories.stopSharing': 'Arrêter le partage', + 'memories.tripDates': 'Dates du voyage', + 'memories.allPhotos': 'Toutes les photos', + 'memories.confirmShareTitle': 'Partager avec les membres du voyage ?', + 'memories.confirmShareHint': '{count} photos seront visibles par tous les membres de ce voyage. Vous pourrez rendre des photos privées ultérieurement.', + 'memories.confirmShareButton': 'Partager les photos', // Collab Addon 'collab.tabs.chat': 'Discussion', From a973a1b4f8d17a224f34728450df9f68ca05231a Mon Sep 17 00:00:00 2001 From: AxelFl Date: Sun, 29 Mar 2026 23:42:11 +0200 Subject: [PATCH 25/63] =?UTF-8?q?docs:=20fix=20docker=20image=20name=20in?= =?UTF-8?q?=20SECURITY.md=20=E2=80=94=20thanks=20@AxelFl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SECURITY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SECURITY.md b/SECURITY.md index 5d0d2e0..eba8714 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -21,6 +21,6 @@ You will receive a response within 48 hours. Once confirmed, a fix will be relea ## Scope -This policy covers the TREK application and its Docker image (`mauriceboe/nomad`). +This policy covers the TREK application and its Docker image (`mauriceboe/trek`). Third-party dependencies are monitored via GitHub Dependabot. From d4899a8dee1a4898fd7d585eacf40b4f3e221a26 Mon Sep 17 00:00:00 2001 From: Fabian Sievert Date: Sun, 29 Mar 2026 23:44:20 +0200 Subject: [PATCH 26/63] =?UTF-8?q?feat:=20add=20Helm=20chart=20for=20Kubern?= =?UTF-8?q?etes=20deployment=20=E2=80=94=20thanks=20@another-novelty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add basic helm chart * Delete chart/my-values.yaml --- chart/Chart.yaml | 5 +++ chart/README.md | 33 ++++++++++++++++++ chart/templates/NOTES.txt | 13 +++++++ chart/templates/_helpers.tpl | 18 ++++++++++ chart/templates/configmap.yaml | 12 +++++++ chart/templates/deployment.yaml | 61 +++++++++++++++++++++++++++++++++ chart/templates/ingress.yaml | 32 +++++++++++++++++ chart/templates/pvc.yaml | 25 ++++++++++++++ chart/templates/secret.yaml | 23 +++++++++++++ chart/templates/service.yaml | 15 ++++++++ chart/values.yaml | 53 ++++++++++++++++++++++++++++ 11 files changed, 290 insertions(+) create mode 100644 chart/Chart.yaml create mode 100644 chart/README.md create mode 100644 chart/templates/NOTES.txt create mode 100644 chart/templates/_helpers.tpl create mode 100644 chart/templates/configmap.yaml create mode 100644 chart/templates/deployment.yaml create mode 100644 chart/templates/ingress.yaml create mode 100644 chart/templates/pvc.yaml create mode 100644 chart/templates/secret.yaml create mode 100644 chart/templates/service.yaml create mode 100644 chart/values.yaml diff --git a/chart/Chart.yaml b/chart/Chart.yaml new file mode 100644 index 0000000..886ba48 --- /dev/null +++ b/chart/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: trek +version: 0.1.0 +description: Minimal Helm chart for TREK app +appVersion: "latest" diff --git a/chart/README.md b/chart/README.md new file mode 100644 index 0000000..c5689b9 --- /dev/null +++ b/chart/README.md @@ -0,0 +1,33 @@ +# TREK Helm Chart + +This is a minimal Helm chart for deploying the TREK app. + +## Features +- Deploys the TREK container +- Exposes port 3000 via Service +- Optional persistent storage for `/app/data` and `/app/uploads` +- Configurable environment variables and secrets +- Optional generic Ingress support +- Health checks on `/api/health` + +## Usage + +```sh +helm install trek ./chart \ + --set secretEnv.JWT_SECRET=your_jwt_secret \ + --set ingress.enabled=true \ + --set ingress.hosts[0].host=yourdomain.com +``` + +See `values.yaml` for more options. + +## Files +- `Chart.yaml` — chart metadata +- `values.yaml` — configuration values +- `templates/` — Kubernetes manifests + +## Notes +- Ingress is off by default. Enable and configure hosts for your domain. +- PVCs require a default StorageClass or specify one as needed. +- JWT_SECRET must be set for production use. +- If using ingress, you must manually keep `env.ALLOWED_ORIGINS` and `ingress.hosts` in sync to ensure CORS works correctly. The chart does not sync these automatically. diff --git a/chart/templates/NOTES.txt b/chart/templates/NOTES.txt new file mode 100644 index 0000000..45a1993 --- /dev/null +++ b/chart/templates/NOTES.txt @@ -0,0 +1,13 @@ +1. JWT_SECRET handling: + - By default, the chart creates a secret with the value from `values.yaml: secretEnv.JWT_SECRET`. + - To generate a random JWT_SECRET at install, set `generateJwtSecret: true`. + - To use an existing Kubernetes secret, set `existingSecret` to the secret name. The secret must have a key matching `existingSecretKey` (defaults to `JWT_SECRET`). + +2. Example usage: + - Set a custom secret: `--set secretEnv.JWT_SECRET=your_secret` + - Generate a random secret: `--set generateJwtSecret=true` + - Use an existing secret: `--set existingSecret=my-k8s-secret` + - Use a custom key in the existing secret: `--set existingSecret=my-k8s-secret --set existingSecretKey=MY_KEY` + +3. Only one method should be used at a time. If both `generateJwtSecret` and `existingSecret` are set, `existingSecret` takes precedence. + If using `existingSecret`, ensure the referenced secret and key exist in the target namespace. diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl new file mode 100644 index 0000000..a3089d7 --- /dev/null +++ b/chart/templates/_helpers.tpl @@ -0,0 +1,18 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "trek.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +*/}} +{{- define "trek.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} diff --git a/chart/templates/configmap.yaml b/chart/templates/configmap.yaml new file mode 100644 index 0000000..7a7ed6a --- /dev/null +++ b/chart/templates/configmap.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "trek.fullname" . }}-config + labels: + app: {{ include "trek.name" . }} +data: + NODE_ENV: {{ .Values.env.NODE_ENV | quote }} + PORT: {{ .Values.env.PORT | quote }} + {{- if .Values.env.ALLOWED_ORIGINS }} + ALLOWED_ORIGINS: {{ .Values.env.ALLOWED_ORIGINS | quote }} + {{- end }} diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml new file mode 100644 index 0000000..d10957e --- /dev/null +++ b/chart/templates/deployment.yaml @@ -0,0 +1,61 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "trek.fullname" . }} + labels: + app: {{ include "trek.name" . }} +spec: + replicas: 1 + selector: + matchLabels: + app: {{ include "trek.name" . }} + template: + metadata: + labels: + app: {{ include "trek.name" . }} + spec: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: + {{- range .Values.imagePullSecrets }} + - name: {{ .name }} + {{- end }} + {{- end }} + containers: + - name: trek + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - containerPort: 3000 + envFrom: + - configMapRef: + name: {{ include "trek.fullname" . }}-config + env: + - name: JWT_SECRET + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-secret" (include "trek.fullname" .)) .Values.existingSecret }} + key: {{ .Values.existingSecretKey | default "JWT_SECRET" }} + volumeMounts: + - name: data + mountPath: /app/data + - name: uploads + mountPath: /app/uploads + livenessProbe: + httpGet: + path: /api/health + port: 3000 + initialDelaySeconds: 15 + periodSeconds: 30 + readinessProbe: + httpGet: + path: /api/health + port: 3000 + initialDelaySeconds: 5 + periodSeconds: 10 + volumes: + - name: data + persistentVolumeClaim: + claimName: {{ include "trek.fullname" . }}-data + - name: uploads + persistentVolumeClaim: + claimName: {{ include "trek.fullname" . }}-uploads diff --git a/chart/templates/ingress.yaml b/chart/templates/ingress.yaml new file mode 100644 index 0000000..a13b7f4 --- /dev/null +++ b/chart/templates/ingress.yaml @@ -0,0 +1,32 @@ +{{- if .Values.ingress.enabled }} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ include "trek.fullname" . }} + labels: + app: {{ include "trek.name" . }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if .Values.ingress.tls }} + tls: + {{- toYaml .Values.ingress.tls | nindent 4 }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host }} + http: + paths: + {{- range .paths }} + - path: {{ . }} + pathType: Prefix + backend: + service: + name: {{ include "trek.fullname" $ }} + port: + number: {{ $.Values.service.port }} + {{- end }} + {{- end }} +{{- end }} diff --git a/chart/templates/pvc.yaml b/chart/templates/pvc.yaml new file mode 100644 index 0000000..663bff5 --- /dev/null +++ b/chart/templates/pvc.yaml @@ -0,0 +1,25 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "trek.fullname" . }}-data + labels: + app: {{ include "trek.name" . }} +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .Values.persistence.data.size }} +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "trek.fullname" . }}-uploads + labels: + app: {{ include "trek.name" . }} +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .Values.persistence.uploads.size }} diff --git a/chart/templates/secret.yaml b/chart/templates/secret.yaml new file mode 100644 index 0000000..b27596a --- /dev/null +++ b/chart/templates/secret.yaml @@ -0,0 +1,23 @@ +{{- if and (not .Values.existingSecret) (not .Values.generateJwtSecret) }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "trek.fullname" . }}-secret + labels: + app: {{ include "trek.name" . }} +type: Opaque +data: + {{ .Values.existingSecretKey | default "JWT_SECRET" }}: {{ .Values.secretEnv.JWT_SECRET | b64enc | quote }} +{{- end }} + +{{- if and (not .Values.existingSecret) (.Values.generateJwtSecret) }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "trek.fullname" . }}-secret + labels: + app: {{ include "trek.name" . }} +type: Opaque +stringData: + {{ .Values.existingSecretKey | default "JWT_SECRET" }}: {{ randAlphaNum 32 }} +{{- end }} diff --git a/chart/templates/service.yaml b/chart/templates/service.yaml new file mode 100644 index 0000000..f63e56f --- /dev/null +++ b/chart/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "trek.fullname" . }} + labels: + app: {{ include "trek.name" . }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: 3000 + protocol: TCP + name: http + selector: + app: {{ include "trek.name" . }} diff --git a/chart/values.yaml b/chart/values.yaml new file mode 100644 index 0000000..f52f3de --- /dev/null +++ b/chart/values.yaml @@ -0,0 +1,53 @@ + +image: + repository: mauriceboe/trek + tag: latest + pullPolicy: IfNotPresent + +# Optional image pull secrets for private registries +imagePullSecrets: [] + # - name: my-registry-secret + +service: + type: ClusterIP + port: 3000 + +env: + NODE_ENV: production + PORT: 3000 + # ALLOWED_ORIGINS: "" +# NOTE: If using ingress, ensure env.ALLOWED_ORIGINS matches the domains in ingress.hosts for proper CORS configuration. + + +# JWT secret configuration +secretEnv: + # If set, use this value for JWT_SECRET (base64-encoded in secret.yaml) + JWT_SECRET: "" + +# If true, a random JWT_SECRET will be generated during install (overrides secretEnv.JWT_SECRET) +generateJwtSecret: false + +# If set, use an existing Kubernetes secret for JWT_SECRET +existingSecret: "" +existingSecretKey: JWT_SECRET + +persistence: + enabled: true + data: + size: 1Gi + uploads: + size: 1Gi + +resources: {} + +ingress: + enabled: false + annotations: {} + hosts: + - host: chart-example.local + paths: + - / + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local From f1c4155d81544a5dd99d43f726cdfd090bc98c2f Mon Sep 17 00:00:00 2001 From: Maurice Date: Sun, 29 Mar 2026 23:55:46 +0200 Subject: [PATCH 27/63] =?UTF-8?q?feat:=20add=20Brazilian=20Portuguese=20(p?= =?UTF-8?q?t-BR)=20language=20support=20=E2=80=94=20thanks=20@fgbona?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/Vacay/VacayMonthCard.tsx | 6 +- client/src/i18n/TranslationContext.tsx | 7 +- client/src/i18n/translations/br.ts | 1233 +++++++++++++++++ 3 files changed, 1242 insertions(+), 4 deletions(-) create mode 100644 client/src/i18n/translations/br.ts diff --git a/client/src/components/Vacay/VacayMonthCard.tsx b/client/src/components/Vacay/VacayMonthCard.tsx index 708acb9..cedf7d9 100644 --- a/client/src/components/Vacay/VacayMonthCard.tsx +++ b/client/src/components/Vacay/VacayMonthCard.tsx @@ -7,12 +7,14 @@ const WEEKDAYS_EN = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'] const WEEKDAYS_DE = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'] const WEEKDAYS_ES = ['Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa', 'Do'] const WEEKDAYS_FR = ['Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa', 'Di'] +const WEEKDAYS_BR = ['Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb', 'Dom'] const WEEKDAYS_AR = ['اث', 'ثل', 'أر', 'خم', 'جم', 'سب', 'أح'] const MONTHS_EN = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] const MONTHS_DE = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'] const MONTHS_ES = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'] const MONTHS_FR = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'] +const MONTHS_BR = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'] const MONTHS_AR = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'] function hexToRgba(hex: string, alpha: number): string { @@ -41,8 +43,8 @@ export default function VacayMonthCard({ }: VacayMonthCardProps) { const { language } = useTranslation() - const weekdays = language === 'de' ? WEEKDAYS_DE : language === 'es' ? WEEKDAYS_ES : language === 'fr' ? WEEKDAYS_FR : language === 'ar' ? WEEKDAYS_AR : WEEKDAYS_EN - const monthNames = language === 'de' ? MONTHS_DE : language === 'es' ? MONTHS_ES : language === 'fr' ? MONTHS_FR : language === 'ar' ? MONTHS_AR : MONTHS_EN + const weekdays = language === 'de' ? WEEKDAYS_DE : language === 'es' ? WEEKDAYS_ES : language === 'fr' ? WEEKDAYS_FR : language === 'br' ? WEEKDAYS_BR : language === 'ar' ? WEEKDAYS_AR : WEEKDAYS_EN + const monthNames = language === 'de' ? MONTHS_DE : language === 'es' ? MONTHS_ES : language === 'fr' ? MONTHS_FR : language === 'br' ? MONTHS_BR : language === 'ar' ? MONTHS_AR : MONTHS_EN const weeks = useMemo(() => { const firstDay = new Date(year, month, 1) diff --git a/client/src/i18n/TranslationContext.tsx b/client/src/i18n/TranslationContext.tsx index 97f3df1..64dd34c 100644 --- a/client/src/i18n/TranslationContext.tsx +++ b/client/src/i18n/TranslationContext.tsx @@ -8,6 +8,7 @@ import ru from './translations/ru' import zh from './translations/zh' import nl from './translations/nl' import ar from './translations/ar' +import br from './translations/br' type TranslationStrings = Record @@ -17,13 +18,14 @@ export const SUPPORTED_LANGUAGES = [ { value: 'es', label: 'Español' }, { value: 'fr', label: 'Français' }, { value: 'nl', label: 'Nederlands' }, + { value: 'br', label: 'Português (Brasil)' }, { value: 'ru', label: 'Русский' }, { value: 'zh', label: '中文' }, { value: 'ar', label: 'العربية' }, ] as const -const translations: Record = { de, en, es, fr, ru, zh, nl, ar } -const LOCALES: Record = { de: 'de-DE', en: 'en-US', es: 'es-ES', fr: 'fr-FR', ru: 'ru-RU', zh: 'zh-CN', nl: 'nl-NL', ar: 'ar-SA' } +const translations: Record = { de, en, es, fr, ru, zh, nl, ar, br } +const LOCALES: Record = { de: 'de-DE', en: 'en-US', es: 'es-ES', fr: 'fr-FR', ru: 'ru-RU', zh: 'zh-CN', nl: 'nl-NL', ar: 'ar-SA', br: 'pt-BR' } const RTL_LANGUAGES = new Set(['ar']) export function getLocaleForLanguage(language: string): string { @@ -31,6 +33,7 @@ export function getLocaleForLanguage(language: string): string { } export function getIntlLanguage(language: string): string { + if (language === 'br') return 'pt-BR' return ['de', 'es', 'fr', 'ru', 'zh', 'nl', 'ar'].includes(language) ? language : 'en' } diff --git a/client/src/i18n/translations/br.ts b/client/src/i18n/translations/br.ts new file mode 100644 index 0000000..969e8a0 --- /dev/null +++ b/client/src/i18n/translations/br.ts @@ -0,0 +1,1233 @@ +const br: Record = { + // Common + 'common.save': 'Salvar', + 'common.cancel': 'Cancelar', + 'common.delete': 'Excluir', + 'common.edit': 'Editar', + 'common.add': 'Adicionar', + 'common.loading': 'Carregando...', + 'common.error': 'Erro', + 'common.back': 'Voltar', + 'common.all': 'Todos', + 'common.close': 'Fechar', + 'common.open': 'Abrir', + 'common.upload': 'Enviar', + 'common.search': 'Buscar', + 'common.confirm': 'Confirmar', + 'common.ok': 'OK', + 'common.yes': 'Sim', + 'common.no': 'Não', + 'common.or': 'ou', + 'common.none': 'Nenhum', + 'common.date': 'Data', + 'common.rename': 'Renomear', + 'common.name': 'Nome', + 'common.email': 'E-mail', + 'common.password': 'Senha', + 'common.saving': 'Salvando...', + 'common.update': 'Atualizar', + 'common.change': 'Alterar', + 'common.uploading': 'Enviando…', + 'common.backToPlanning': 'Voltar ao planejamento', + 'common.reset': 'Redefinir', + + // Navbar + 'nav.trip': 'Viagem', + 'nav.share': 'Compartilhar', + 'nav.settings': 'Configurações', + 'nav.admin': 'Admin', + 'nav.logout': 'Sair', + 'nav.lightMode': 'Modo claro', + 'nav.darkMode': 'Modo escuro', + 'nav.autoMode': 'Automático', + 'nav.administrator': 'Administrador', + + // Dashboard + 'dashboard.title': 'Minhas viagens', + 'dashboard.subtitle.loading': 'Carregando viagens...', + 'dashboard.subtitle.trips': '{count} viagens ({archived} arquivadas)', + 'dashboard.subtitle.empty': 'Comece sua primeira viagem', + 'dashboard.subtitle.activeOne': '{count} viagem ativa', + 'dashboard.subtitle.activeMany': '{count} viagens ativas', + 'dashboard.subtitle.archivedSuffix': ' · {count} arquivadas', + 'dashboard.newTrip': 'Nova viagem', + 'dashboard.gridView': 'Grade', + 'dashboard.listView': 'Lista', + 'dashboard.currency': 'Moeda', + 'dashboard.timezone': 'Fusos horários', + 'dashboard.localTime': 'Local', + 'dashboard.timezoneCustomTitle': 'Fuso personalizado', + 'dashboard.timezoneCustomLabelPlaceholder': 'Rótulo (opcional)', + 'dashboard.timezoneCustomTzPlaceholder': 'ex.: America/Sao_Paulo', + 'dashboard.timezoneCustomAdd': 'Adicionar', + 'dashboard.timezoneCustomErrorEmpty': 'Informe um identificador de fuso', + 'dashboard.timezoneCustomErrorInvalid': 'Fuso inválido. Use o formato Europe/Berlin', + 'dashboard.timezoneCustomErrorDuplicate': 'Já adicionado', + 'dashboard.emptyTitle': 'Nenhuma viagem ainda', + 'dashboard.emptyText': 'Crie sua primeira viagem e comece a planejar!', + 'dashboard.emptyButton': 'Criar primeira viagem', + 'dashboard.nextTrip': 'Próxima viagem', + 'dashboard.shared': 'Compartilhada', + 'dashboard.sharedBy': 'Compartilhada por {name}', + 'dashboard.days': 'Dias', + 'dashboard.places': 'Lugares', + 'dashboard.archive': 'Arquivar', + 'dashboard.restore': 'Restaurar', + 'dashboard.archived': 'Arquivada', + 'dashboard.status.ongoing': 'Em andamento', + 'dashboard.status.today': 'Hoje', + 'dashboard.status.tomorrow': 'Amanhã', + 'dashboard.status.past': 'Passada', + 'dashboard.status.daysLeft': 'Faltam {count} dias', + 'dashboard.toast.loadError': 'Não foi possível carregar as viagens', + 'dashboard.toast.created': 'Viagem criada com sucesso!', + 'dashboard.toast.createError': 'Não foi possível criar a viagem', + 'dashboard.toast.updated': 'Viagem atualizada!', + 'dashboard.toast.updateError': 'Não foi possível atualizar a viagem', + 'dashboard.toast.deleted': 'Viagem excluída', + 'dashboard.toast.deleteError': 'Não foi possível excluir a viagem', + 'dashboard.toast.archived': 'Viagem arquivada', + 'dashboard.toast.archiveError': 'Não foi possível arquivar', + 'dashboard.toast.restored': 'Viagem restaurada', + 'dashboard.toast.restoreError': 'Não foi possível restaurar', + 'dashboard.confirm.delete': 'Excluir a viagem "{title}"? Todos os lugares e planos serão excluídos permanentemente.', + 'dashboard.editTrip': 'Editar viagem', + 'dashboard.createTrip': 'Criar nova viagem', + 'dashboard.tripTitle': 'Título', + 'dashboard.tripTitlePlaceholder': 'ex.: Verão no Japão', + 'dashboard.tripDescription': 'Descrição', + 'dashboard.tripDescriptionPlaceholder': 'Sobre o que é esta viagem?', + 'dashboard.startDate': 'Data de início', + 'dashboard.endDate': 'Data de término', + 'dashboard.noDateHint': 'Sem datas — serão criados 7 dias padrão. Você pode alterar depois.', + 'dashboard.coverImage': 'Imagem de capa', + 'dashboard.addCoverImage': 'Adicionar capa (ou arrastar e soltar)', + 'dashboard.addMembers': 'Companheiros de viagem', + 'dashboard.addMember': 'Adicionar membro', + 'dashboard.coverSaved': 'Capa salva', + 'dashboard.coverUploadError': 'Falha no envio', + 'dashboard.coverRemoveError': 'Falha ao remover', + 'dashboard.titleRequired': 'O título é obrigatório', + 'dashboard.endDateError': 'A data final deve ser depois da inicial', + + // Settings + 'settings.title': 'Configurações', + 'settings.subtitle': 'Ajuste suas preferências pessoais', + 'settings.map': 'Mapa', + 'settings.mapTemplate': 'Modelo de mapa', + 'settings.mapTemplatePlaceholder.select': 'Selecione o modelo...', + 'settings.mapDefaultHint': 'Deixe vazio para OpenStreetMap (padrão)', + 'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', + 'settings.mapHint': 'URL do modelo de blocos do mapa', + 'settings.latitude': 'Latitude', + 'settings.longitude': 'Longitude', + 'settings.saveMap': 'Salvar mapa', + 'settings.apiKeys': 'Chaves de API', + 'settings.mapsKey': 'Chave da API Google Maps', + 'settings.mapsKeyHint': 'Para busca de lugares. Requer Places API (New). Obtenha em console.cloud.google.com', + 'settings.weatherKey': 'Chave OpenWeatherMap', + 'settings.weatherKeyHint': 'Para dados meteorológicos. Grátis em openweathermap.org/api', + 'settings.keyPlaceholder': 'Digite a chave...', + 'settings.configured': 'Configurada', + 'settings.saveKeys': 'Salvar chaves', + 'settings.display': 'Exibição', + 'settings.colorMode': 'Tema de cores', + 'settings.light': 'Claro', + 'settings.dark': 'Escuro', + 'settings.auto': 'Automático', + 'settings.language': 'Idioma', + 'settings.temperature': 'Unidade de temperatura', + 'settings.timeFormat': 'Formato de hora', + 'settings.routeCalculation': 'Cálculo de rota', + 'settings.on': 'Ligado', + 'settings.off': 'Desligado', + 'settings.account': 'Conta', + 'settings.username': 'Nome de usuário', + 'settings.email': 'E-mail', + 'settings.role': 'Função', + 'settings.roleAdmin': 'Administrador', + 'settings.oidcLinked': 'Vinculado a', + 'settings.changePassword': 'Alterar senha', + 'settings.currentPassword': 'Senha atual', + 'settings.currentPasswordRequired': 'A senha atual é obrigatória', + 'settings.newPassword': 'Nova senha', + 'settings.confirmPassword': 'Confirmar nova senha', + 'settings.updatePassword': 'Atualizar senha', + 'settings.passwordRequired': 'Informe a senha atual e a nova', + 'settings.passwordTooShort': 'A senha deve ter pelo menos 8 caracteres', + 'settings.passwordMismatch': 'As senhas não coincidem', + 'settings.passwordWeak': 'A senha deve ter maiúscula, minúscula e número', + 'settings.passwordChanged': 'Senha alterada com sucesso', + 'settings.deleteAccount': 'Excluir conta', + 'settings.deleteAccountTitle': 'Excluir sua conta?', + 'settings.deleteAccountWarning': 'Sua conta e todas as viagens, lugares e arquivos serão excluídos permanentemente. Esta ação não pode ser desfeita.', + 'settings.deleteAccountConfirm': 'Excluir permanentemente', + 'settings.deleteBlockedTitle': 'Exclusão não permitida', + 'settings.deleteBlockedMessage': 'Você é o único administrador. Promova outro usuário a administrador antes de excluir sua conta.', + 'settings.roleUser': 'Usuário', + 'settings.saveProfile': 'Salvar perfil', + 'settings.toast.mapSaved': 'Configurações do mapa salvas', + 'settings.toast.keysSaved': 'Chaves de API salvas', + 'settings.toast.displaySaved': 'Configurações de exibição salvas', + 'settings.toast.profileSaved': 'Perfil salvo', + 'settings.uploadAvatar': 'Enviar foto do perfil', + 'settings.removeAvatar': 'Remover foto do perfil', + 'settings.avatarUploaded': 'Foto do perfil atualizada', + 'settings.avatarRemoved': 'Foto do perfil removida', + 'settings.avatarError': 'Falha no envio', + 'settings.mfa.title': 'Autenticação em duas etapas (2FA)', + 'settings.mfa.description': 'Adiciona uma segunda etapa ao entrar com e-mail e senha. Use um app autenticador (Google Authenticator, Authy, etc.).', + 'settings.mfa.enabled': 'O 2FA está ativado na sua conta.', + 'settings.mfa.disabled': 'O 2FA não está ativado.', + 'settings.mfa.setup': 'Configurar autenticador', + 'settings.mfa.scanQr': 'Leia este QR code no app ou digite o segredo manualmente.', + 'settings.mfa.secretLabel': 'Chave secreta (entrada manual)', + 'settings.mfa.codePlaceholder': 'Código de 6 dígitos', + 'settings.mfa.enable': 'Ativar 2FA', + 'settings.mfa.cancelSetup': 'Cancelar', + 'settings.mfa.disableTitle': 'Desativar 2FA', + 'settings.mfa.disableHint': 'Digite sua senha e um código atual do autenticador.', + 'settings.mfa.disable': 'Desativar 2FA', + 'settings.mfa.toastEnabled': 'Autenticação em duas etapas ativada', + 'settings.mfa.toastDisabled': 'Autenticação em duas etapas desativada', + 'settings.mfa.demoBlocked': 'Indisponível no modo demonstração', + + // Login + 'login.error': 'Falha no login. Verifique suas credenciais.', + 'login.tagline': 'Suas viagens.\nSeu plano.', + 'login.description': 'Planeje viagens em equipe com mapas interativos, orçamento e sincronização em tempo real.', + 'login.features.maps': 'Mapas interativos', + 'login.features.mapsDesc': 'Google Places, rotas e agrupamento', + 'login.features.realtime': 'Sincronização em tempo real', + 'login.features.realtimeDesc': 'Planejem juntos via WebSocket', + 'login.features.budget': 'Controle de orçamento', + 'login.features.budgetDesc': 'Categorias, gráficos e custo por pessoa', + 'login.features.collab': 'Colaboração', + 'login.features.collabDesc': 'Vários usuários com viagens compartilhadas', + 'login.features.packing': 'Listas de malas', + 'login.features.packingDesc': 'Categorias, progresso e sugestões', + 'login.features.bookings': 'Reservas', + 'login.features.bookingsDesc': 'Voos, hotéis, restaurantes e mais', + 'login.features.files': 'Documentos', + 'login.features.filesDesc': 'Envie e gerencie documentos', + 'login.features.routes': 'Rotas inteligentes', + 'login.features.routesDesc': 'Otimize e exporte para o Google Maps', + 'login.selfHosted': 'Auto-hospedado \u00B7 Código aberto \u00B7 Seus dados são seus', + 'login.title': 'Entrar', + 'login.subtitle': 'Bem-vindo de volta', + 'login.signingIn': 'Entrando…', + 'login.signIn': 'Entrar', + 'login.createAdmin': 'Criar conta de administrador', + 'login.createAdminHint': 'Configure a primeira conta de administrador do TREK.', + 'login.createAccount': 'Criar conta', + 'login.createAccountHint': 'Cadastre uma nova conta.', + 'login.creating': 'Criando…', + 'login.noAccount': 'Não tem conta?', + 'login.hasAccount': 'Já tem conta?', + 'login.register': 'Cadastrar', + 'login.emailPlaceholder': 'seu@email.com', + 'login.username': 'Nome de usuário', + 'login.oidc.registrationDisabled': 'Cadastro desativado. Fale com o administrador.', + 'login.oidc.noEmail': 'Nenhum e-mail recebido do provedor.', + 'login.oidc.tokenFailed': 'Falha na autenticação.', + 'login.oidc.invalidState': 'Sessão inválida. Tente novamente.', + 'login.demoFailed': 'Falha no login de demonstração', + 'login.oidcSignIn': 'Entrar com {name}', + 'login.oidcOnly': 'Login por senha desativado. Use o provedor SSO.', + 'login.demoHint': 'Experimente a demonstração — sem cadastro', + 'login.mfaTitle': 'Autenticação em duas etapas', + 'login.mfaSubtitle': 'Digite o código de 6 dígitos do seu app autenticador.', + 'login.mfaCodeLabel': 'Código de verificação', + 'login.mfaCodeRequired': 'Digite o código do app autenticador.', + 'login.mfaHint': 'Abra o Google Authenticator, Authy ou outro app TOTP.', + 'login.mfaBack': '← Voltar ao login', + 'login.mfaVerify': 'Verificar', + + // Register + 'register.passwordMismatch': 'As senhas não coincidem', + 'register.passwordTooShort': 'A senha deve ter pelo menos 6 caracteres', + 'register.failed': 'Falha no cadastro', + 'register.getStarted': 'Começar', + 'register.subtitle': 'Crie uma conta e comece a planejar suas viagens.', + 'register.feature1': 'Viagens ilimitadas', + 'register.feature2': 'Mapa interativo', + 'register.feature3': 'Gerencie lugares e categorias', + 'register.feature4': 'Acompanhe reservas', + 'register.feature5': 'Listas de malas', + 'register.feature6': 'Fotos e arquivos', + 'register.createAccount': 'Criar conta', + 'register.startPlanning': 'Comece a planejar', + 'register.minChars': 'Mín. 6 caracteres', + 'register.confirmPassword': 'Confirmar senha', + 'register.repeatPassword': 'Repita a senha', + 'register.registering': 'Cadastrando...', + 'register.register': 'Cadastrar', + 'register.hasAccount': 'Já tem conta?', + 'register.signIn': 'Entrar', + + // Admin + 'admin.title': 'Administração', + 'admin.subtitle': 'Gestão de usuários e configurações do sistema', + 'admin.tabs.users': 'Usuários', + 'admin.tabs.categories': 'Categorias', + 'admin.tabs.backup': 'Backup', + 'admin.stats.users': 'Usuários', + 'admin.stats.trips': 'Viagens', + 'admin.stats.places': 'Lugares', + 'admin.stats.photos': 'Fotos', + 'admin.stats.files': 'Arquivos', + 'admin.table.user': 'Usuário', + 'admin.table.email': 'E-mail', + 'admin.table.role': 'Função', + 'admin.table.created': 'Criado', + 'admin.table.lastLogin': 'Último acesso', + 'admin.table.actions': 'Ações', + 'admin.you': '(Você)', + 'admin.editUser': 'Editar usuário', + 'admin.newPassword': 'Nova senha', + 'admin.newPasswordHint': 'Deixe em branco para manter a senha atual', + 'admin.deleteUser': 'Excluir o usuário "{name}"? Todas as viagens serão excluídas permanentemente.', + 'admin.deleteUserTitle': 'Excluir usuário', + 'admin.newPasswordPlaceholder': 'Digite a nova senha…', + 'admin.toast.loadError': 'Falha ao carregar dados do admin', + 'admin.toast.userUpdated': 'Usuário atualizado', + 'admin.toast.updateError': 'Falha ao atualizar', + 'admin.toast.userDeleted': 'Usuário excluído', + 'admin.toast.deleteError': 'Falha ao excluir', + 'admin.toast.cannotDeleteSelf': 'Não é possível excluir a própria conta', + 'admin.toast.userCreated': 'Usuário criado', + 'admin.toast.createError': 'Falha ao criar usuário', + 'admin.toast.fieldsRequired': 'Nome de usuário, e-mail e senha são obrigatórios', + 'admin.createUser': 'Criar usuário', + 'admin.invite.title': 'Links de convite', + 'admin.invite.subtitle': 'Crie links de cadastro de uso único', + 'admin.invite.create': 'Criar link', + 'admin.invite.createAndCopy': 'Criar e copiar', + 'admin.invite.empty': 'Nenhum link de convite criado ainda', + 'admin.invite.maxUses': 'Máx. usos', + 'admin.invite.expiry': 'Expira após', + 'admin.invite.uses': 'usado(s)', + 'admin.invite.expiresAt': 'expira', + 'admin.invite.createdBy': 'por', + 'admin.invite.active': 'Ativo', + 'admin.invite.expired': 'Expirado', + 'admin.invite.usedUp': 'Esgotado', + 'admin.invite.copied': 'Link de convite copiado para a área de transferência', + 'admin.invite.copyLink': 'Copiar link', + 'admin.invite.deleted': 'Link de convite excluído', + 'admin.invite.createError': 'Falha ao criar link de convite', + 'admin.invite.deleteError': 'Falha ao excluir link de convite', + 'admin.tabs.settings': 'Configurações', + 'admin.allowRegistration': 'Permitir cadastro', + 'admin.allowRegistrationHint': 'Novos usuários podem se cadastrar sozinhos', + 'admin.apiKeys': 'Chaves de API', + 'admin.apiKeysHint': 'Opcional. Habilita dados estendidos de lugares, como fotos e clima.', + 'admin.mapsKey': 'Chave da API Google Maps', + 'admin.mapsKeyHint': 'Necessária para busca de lugares. Obtenha em console.cloud.google.com', + 'admin.mapsKeyHintLong': 'Sem chave de API, o OpenStreetMap é usado na busca. Com uma chave Google, também podem ser carregadas fotos, avaliações e horários. Obtenha em console.cloud.google.com.', + 'admin.recommended': 'Recomendado', + 'admin.weatherKey': 'Chave OpenWeatherMap', + 'admin.weatherKeyHint': 'Para dados meteorológicos. Grátis em openweathermap.org', + 'admin.validateKey': 'Testar', + 'admin.keyValid': 'Conectado', + 'admin.keyInvalid': 'Inválida', + 'admin.keySaved': 'Chaves de API salvas', + 'admin.oidcTitle': 'Single Sign-On (OIDC)', + 'admin.oidcSubtitle': 'Permitir login via provedores externos como Google, Apple, Authentik ou Keycloak.', + 'admin.oidcDisplayName': 'Nome exibido', + 'admin.oidcIssuer': 'URL do emissor', + 'admin.oidcIssuerHint': 'URL do emissor OpenID Connect do provedor, ex.: https://accounts.google.com', + 'admin.oidcSaved': 'Configuração OIDC salva', + 'admin.oidcOnlyMode': 'Desativar login por senha', + 'admin.oidcOnlyModeHint': 'Quando ativado, só é permitido login SSO. Login e cadastro por senha ficam bloqueados.', + + // File Types + 'admin.fileTypes': 'Tipos de arquivo permitidos', + 'admin.fileTypesHint': 'Configure quais tipos de arquivo os usuários podem enviar.', + 'admin.fileTypesFormat': 'Extensões separadas por vírgula (ex.: jpg,png,pdf,doc). Use * para permitir todos.', + 'admin.fileTypesSaved': 'Configurações de tipos de arquivo salvas', + + // Packing Templates & Bag Tracking + 'admin.bagTracking.title': 'Rastreamento de malas', + 'admin.bagTracking.subtitle': 'Ativar peso e atribuição de mala para itens da lista', + 'admin.tabs.config': 'Configuração', + 'admin.tabs.templates': 'Modelos de mala', + 'admin.packingTemplates.title': 'Modelos de mala', + 'admin.packingTemplates.subtitle': 'Crie listas de mala reutilizáveis para suas viagens', + 'admin.packingTemplates.create': 'Novo modelo', + 'admin.packingTemplates.namePlaceholder': 'Nome do modelo (ex.: Praia)', + 'admin.packingTemplates.empty': 'Nenhum modelo criado ainda', + 'admin.packingTemplates.items': 'itens', + 'admin.packingTemplates.categories': 'categorias', + 'admin.packingTemplates.itemName': 'Nome do item', + 'admin.packingTemplates.itemCategory': 'Categoria', + 'admin.packingTemplates.categoryName': 'Nome da categoria (ex.: Roupas)', + 'admin.packingTemplates.addCategory': 'Adicionar categoria', + 'admin.packingTemplates.created': 'Modelo criado', + 'admin.packingTemplates.deleted': 'Modelo excluído', + 'admin.packingTemplates.loadError': 'Falha ao carregar modelos', + 'admin.packingTemplates.createError': 'Falha ao criar modelo', + 'admin.packingTemplates.deleteError': 'Falha ao excluir modelo', + 'admin.packingTemplates.saveError': 'Falha ao salvar', + + // Addons + 'admin.tabs.addons': 'Complementos', + 'admin.addons.title': 'Complementos', + 'admin.addons.subtitle': 'Ative ou desative recursos para personalizar sua experiência no TREK.', + 'admin.addons.catalog.memories.name': 'Memórias', + 'admin.addons.catalog.memories.description': 'Álbuns de fotos compartilhados em cada viagem', + 'admin.addons.catalog.packing.name': 'Mala', + 'admin.addons.catalog.packing.description': 'Listas para preparar a bagagem de cada viagem', + 'admin.addons.catalog.budget.name': 'Orçamento', + 'admin.addons.catalog.budget.description': 'Acompanhe despesas e planeje o orçamento da viagem', + 'admin.addons.catalog.documents.name': 'Documentos', + 'admin.addons.catalog.documents.description': 'Armazene e gerencie documentos de viagem', + 'admin.addons.catalog.vacay.name': 'Vacay', + 'admin.addons.catalog.vacay.description': 'Planejador de férias pessoal com visão em calendário', + 'admin.addons.catalog.atlas.name': 'Atlas', + 'admin.addons.catalog.atlas.description': 'Mapa mundial com países visitados e estatísticas', + 'admin.addons.catalog.collab.name': 'Colab', + 'admin.addons.catalog.collab.description': 'Notas, enquetes e chat em tempo real para planejar a viagem', + 'admin.addons.subtitleBefore': 'Ative ou desative recursos para personalizar sua ', + 'admin.addons.subtitleAfter': ' experiência.', + 'admin.addons.enabled': 'Ativado', + 'admin.addons.disabled': 'Desativado', + 'admin.addons.type.trip': 'Viagem', + 'admin.addons.type.global': 'Global', + 'admin.addons.tripHint': 'Disponível como aba em cada viagem', + 'admin.addons.globalHint': 'Disponível como seção própria na navegação principal', + 'admin.addons.toast.updated': 'Complemento atualizado', + 'admin.addons.toast.error': 'Falha ao atualizar complemento', + 'admin.addons.noAddons': 'Nenhum complemento disponível', + // Weather info + 'admin.weather.title': 'Dados meteorológicos', + 'admin.weather.badge': 'Desde 24 de março de 2026', + 'admin.weather.description': 'O TREK usa Open-Meteo como fonte de clima. Open-Meteo é um serviço gratuito e de código aberto — sem chave de API.', + 'admin.weather.forecast': 'Previsão de 16 dias', + 'admin.weather.forecastDesc': 'Antes eram 5 dias (OpenWeatherMap)', + 'admin.weather.climate': 'Dados climáticos históricos', + 'admin.weather.climateDesc': 'Médias dos últimos 85 anos para dias além da previsão de 16 dias', + 'admin.weather.requests': '10.000 requisições / dia', + 'admin.weather.requestsDesc': 'Grátis, sem chave de API', + 'admin.weather.locationHint': 'O clima usa o primeiro lugar com coordenadas de cada dia. Se nenhum lugar estiver atribuído ao dia, qualquer lugar da lista serve como referência.', + + // GitHub + 'admin.tabs.github': 'GitHub', + 'admin.github.title': 'Histórico de versões', + 'admin.github.subtitle': 'Últimas atualizações de {repo}', + 'admin.github.latest': 'Mais recente', + 'admin.github.prerelease': 'Pré-lançamento', + 'admin.github.showDetails': 'Mostrar detalhes', + 'admin.github.hideDetails': 'Ocultar detalhes', + 'admin.github.loadMore': 'Carregar mais', + 'admin.github.loading': 'Carregando...', + 'admin.github.error': 'Falha ao carregar versões', + 'admin.github.by': 'por', + 'admin.github.support': 'Ajuda a continuar desenvolvendo o TREK', + + 'admin.update.available': 'Atualização disponível', + 'admin.update.text': 'O TREK {version} está disponível. Você está na {current}.', + 'admin.update.button': 'Ver no GitHub', + 'admin.update.install': 'Instalar atualização', + 'admin.update.confirmTitle': 'Instalar atualização?', + 'admin.update.confirmText': 'O TREK será atualizado de {current} para {version}. O servidor reiniciará automaticamente em seguida.', + 'admin.update.dataInfo': 'Todos os seus dados (viagens, usuários, chaves de API, envios, Vacay, Atlas, orçamentos) serão preservados.', + 'admin.update.warning': 'O app ficará brevemente indisponível durante o reinício.', + 'admin.update.confirm': 'Atualizar agora', + 'admin.update.installing': 'Atualizando…', + 'admin.update.success': 'Atualização instalada! O servidor está reiniciando…', + 'admin.update.failed': 'Falha na atualização', + 'admin.update.backupHint': 'Recomendamos criar um backup antes de atualizar.', + 'admin.update.backupLink': 'Ir para Backup', + 'admin.update.howTo': 'Como atualizar', + 'admin.update.dockerText': 'Sua instância TREK roda no Docker. Para atualizar para {version}, execute no servidor:', + 'admin.update.reloadHint': 'Recarregue a página em alguns segundos.', + + // Vacay addon + 'vacay.subtitle': 'Planeje e gerencie dias de férias', + 'vacay.settings': 'Configurações', + 'vacay.year': 'Ano', + 'vacay.addYear': 'Adicionar ano', + 'vacay.removeYear': 'Remover ano', + 'vacay.removeYearConfirm': 'Remover {year}?', + 'vacay.removeYearHint': 'Todas as entradas de férias e feriados da empresa deste ano serão excluídas permanentemente.', + 'vacay.remove': 'Remover', + 'vacay.persons': 'Pessoas', + 'vacay.noPersons': 'Nenhuma pessoa adicionada', + 'vacay.addPerson': 'Adicionar pessoa', + 'vacay.editPerson': 'Editar pessoa', + 'vacay.removePerson': 'Remover pessoa', + 'vacay.removePersonConfirm': 'Remover {name}?', + 'vacay.removePersonHint': 'Todas as entradas de férias desta pessoa serão excluídas permanentemente.', + 'vacay.personName': 'Nome', + 'vacay.personNamePlaceholder': 'Digite o nome', + 'vacay.color': 'Cor', + 'vacay.add': 'Adicionar', + 'vacay.legend': 'Legenda', + 'vacay.publicHoliday': 'Feriado nacional', + 'vacay.companyHoliday': 'Feriado da empresa', + 'vacay.weekend': 'Fim de semana', + 'vacay.modeVacation': 'Férias', + 'vacay.modeCompany': 'Feriado da empresa', + 'vacay.entitlement': 'Direito', + 'vacay.entitlementDays': 'Dias', + 'vacay.used': 'Usados', + 'vacay.remaining': 'Restantes', + 'vacay.carriedOver': 'de {year}', + 'vacay.blockWeekends': 'Bloquear fins de semana', + 'vacay.weekendDays': 'Dias de fim de semana', + 'vacay.mon': 'Seg', + 'vacay.tue': 'Ter', + 'vacay.wed': 'Qua', + 'vacay.thu': 'Qui', + 'vacay.fri': 'Sex', + 'vacay.sat': 'Sáb', + 'vacay.sun': 'Dom', + 'vacay.blockWeekendsHint': 'Impedir entradas de férias aos sábados e domingos', + 'vacay.publicHolidays': 'Feriados nacionais', + 'vacay.publicHolidaysHint': 'Marcar feriados nacionais no calendário', + 'vacay.selectCountry': 'Selecione o país', + 'vacay.selectRegion': 'Selecione a região (opcional)', + 'vacay.addCalendar': 'Adicionar calendário', + 'vacay.calendarLabel': 'Rótulo (opcional)', + 'vacay.calendarColor': 'Cor', + 'vacay.noCalendars': 'Nenhum calendário de feriados adicionado ainda', + 'vacay.companyHolidays': 'Feriados da empresa', + 'vacay.companyHolidaysHint': 'Permitir marcar dias de feriado em toda a empresa', + 'vacay.companyHolidaysNoDeduct': 'Feriados da empresa não contam como dias de férias.', + 'vacay.carryOver': 'Acúmulo', + 'vacay.carryOverHint': 'Levar automaticamente os dias de férias restantes para o ano seguinte', + 'vacay.sharing': 'Compartilhamento', + 'vacay.sharingHint': 'Compartilhe seu plano de férias com outros usuários do TREK', + 'vacay.owner': 'Proprietário', + 'vacay.shareEmailPlaceholder': 'E-mail do usuário TREK', + 'vacay.shareSuccess': 'Plano compartilhado com sucesso', + 'vacay.shareError': 'Não foi possível compartilhar o plano', + 'vacay.dissolve': 'Encerrar fusão', + 'vacay.dissolveHint': 'Separar os calendários novamente. Suas entradas serão mantidas.', + 'vacay.dissolveAction': 'Encerrar', + 'vacay.dissolved': 'Calendário separado', + 'vacay.fusedWith': 'Fundido com', + 'vacay.you': 'você', + 'vacay.noData': 'Sem dados', + 'vacay.changeColor': 'Alterar cor', + 'vacay.inviteUser': 'Convidar usuário', + 'vacay.inviteHint': 'Convide outro usuário TREK para compartilhar um calendário de férias combinado.', + 'vacay.selectUser': 'Selecionar usuário', + 'vacay.sendInvite': 'Enviar convite', + 'vacay.inviteSent': 'Convite enviado', + 'vacay.inviteError': 'Não foi possível enviar o convite', + 'vacay.pending': 'pendente', + 'vacay.noUsersAvailable': 'Nenhum usuário disponível', + 'vacay.accept': 'Aceitar', + 'vacay.decline': 'Recusar', + 'vacay.acceptFusion': 'Aceitar e fundir', + 'vacay.inviteTitle': 'Pedido de fusão', + 'vacay.inviteWantsToFuse': 'quer compartilhar um calendário de férias com você.', + 'vacay.fuseInfo1': 'Ambos verão todas as entradas de férias em um calendário compartilhado.', + 'vacay.fuseInfo2': 'Ambos podem criar e editar entradas um do outro.', + 'vacay.fuseInfo3': 'Ambos podem excluir entradas e alterar direitos de férias.', + 'vacay.fuseInfo4': 'Configurações como feriados nacionais e da empresa são compartilhadas.', + 'vacay.fuseInfo5': 'A fusão pode ser encerrada a qualquer momento por qualquer parte. Suas entradas serão preservadas.', + 'nav.myTrips': 'Minhas viagens', + + // Atlas addon + 'atlas.subtitle': 'Sua pegada de viagens pelo mundo', + 'atlas.countries': 'Países', + 'atlas.trips': 'Viagens', + 'atlas.places': 'Lugares', + 'atlas.unmark': 'Remover', + 'atlas.confirmMark': 'Marcar este país como visitado?', + 'atlas.confirmUnmark': 'Remover este país da lista de visitados?', + 'atlas.markVisited': 'Marcar como visitado', + 'atlas.markVisitedHint': 'Adicionar este país à lista de visitados', + 'atlas.addToBucket': 'Adicionar à lista de desejos', + 'atlas.addToBucketHint': 'Salvar como lugar que você quer visitar', + 'atlas.bucketWhen': 'Quando pretende visitar?', + 'atlas.statsTab': 'Estatísticas', + 'atlas.bucketTab': 'Lista de desejos', + 'atlas.addBucket': 'Adicionar à lista de desejos', + 'atlas.bucketNamePlaceholder': 'Lugar ou destino...', + 'atlas.bucketNotesPlaceholder': 'Notas (opcional)', + 'atlas.bucketEmpty': 'Sua lista de desejos está vazia', + 'atlas.bucketEmptyHint': 'Adicione lugares que sonha em visitar', + 'atlas.days': 'Dias', + 'atlas.visitedCountries': 'Países visitados', + 'atlas.cities': 'Cidades', + 'atlas.noData': 'Ainda sem dados de viagem', + 'atlas.noDataHint': 'Crie uma viagem e adicione lugares para ver o mapa mundial', + 'atlas.lastTrip': 'Última viagem', + 'atlas.nextTrip': 'Próxima viagem', + 'atlas.daysLeft': 'dias restantes', + 'atlas.streak': 'Sequência', + 'atlas.year': 'ano', + 'atlas.years': 'anos', + 'atlas.yearInRow': 'ano seguido', + 'atlas.yearsInRow': 'anos seguidos', + 'atlas.tripIn': 'viagem em', + 'atlas.tripsIn': 'viagens em', + 'atlas.since': 'desde', + 'atlas.europe': 'Europa', + 'atlas.asia': 'Ásia', + 'atlas.northAmerica': 'América do Norte', + 'atlas.southAmerica': 'América do Sul', + 'atlas.africa': 'África', + 'atlas.oceania': 'Oceania', + 'atlas.other': 'Outro', + 'atlas.firstVisit': 'Primeira viagem', + 'atlas.lastVisitLabel': 'Última viagem', + 'atlas.tripSingular': 'Viagem', + 'atlas.tripPlural': 'Viagens', + 'atlas.placeVisited': 'Lugar visitado', + 'atlas.placesVisited': 'Lugares visitados', + + // Trip Planner + 'trip.tabs.plan': 'Plano', + 'trip.tabs.reservations': 'Reservas', + 'trip.tabs.reservationsShort': 'Reservas', + 'trip.tabs.packing': 'Lista de mala', + 'trip.tabs.packingShort': 'Mala', + 'trip.tabs.budget': 'Orçamento', + 'trip.tabs.files': 'Arquivos', + 'trip.loading': 'Carregando viagem...', + 'trip.mobilePlan': 'Plano', + 'trip.mobilePlaces': 'Lugares', + 'trip.toast.placeUpdated': 'Lugar atualizado', + 'trip.toast.placeAdded': 'Lugar adicionado', + 'trip.toast.placeDeleted': 'Lugar excluído', + 'trip.toast.selectDay': 'Selecione um dia primeiro', + 'trip.toast.assignedToDay': 'Lugar atribuído ao dia', + 'trip.toast.reorderError': 'Falha ao reordenar', + 'trip.toast.reservationUpdated': 'Reserva atualizada', + 'trip.toast.reservationAdded': 'Reserva adicionada', + 'trip.toast.deleted': 'Excluído', + 'trip.confirm.deletePlace': 'Tem certeza de que deseja excluir este lugar?', + + // Day Plan Sidebar + 'dayplan.emptyDay': 'Nenhum lugar planejado para este dia', + 'dayplan.addNote': 'Adicionar nota', + 'dayplan.editNote': 'Editar nota', + 'dayplan.noteAdd': 'Adicionar nota', + 'dayplan.noteEdit': 'Editar nota', + 'dayplan.noteTitle': 'Nota', + 'dayplan.noteSubtitle': 'Nota do dia', + 'dayplan.totalCost': 'Custo total', + 'dayplan.days': 'Dias', + 'dayplan.dayN': 'Dia {n}', + 'dayplan.calculating': 'Calculando...', + 'dayplan.route': 'Rota', + 'dayplan.optimize': 'Otimizar', + 'dayplan.optimized': 'Rota otimizada', + 'dayplan.routeError': 'Falha ao calcular a rota', + 'dayplan.toast.needTwoPlaces': 'São necessários pelo menos dois lugares para otimizar a rota', + 'dayplan.toast.routeOptimized': 'Rota otimizada', + 'dayplan.toast.noGeoPlaces': 'Nenhum lugar com coordenadas para calcular a rota', + 'dayplan.confirmed': 'Confirmada', + 'dayplan.pendingRes': 'Pendente', + 'dayplan.pdf': 'PDF', + 'dayplan.pdfTooltip': 'Exportar plano do dia em PDF', + 'dayplan.pdfError': 'Falha ao exportar PDF', + + // Places Sidebar + 'places.addPlace': 'Adicionar lugar/atividade', + 'places.assignToDay': 'Adicionar a qual dia?', + 'places.all': 'Todos', + 'places.unplanned': 'Não planejados', + 'places.search': 'Buscar lugares...', + 'places.allCategories': 'Todas as categorias', + 'places.count': '{count} lugares', + 'places.countSingular': '1 lugar', + 'places.allPlanned': 'Todos os lugares estão planejados', + 'places.noneFound': 'Nenhum lugar encontrado', + 'places.editPlace': 'Editar lugar', + 'places.formName': 'Nome', + 'places.formNamePlaceholder': 'ex.: Torre Eiffel', + 'places.formDescription': 'Descrição', + 'places.formDescriptionPlaceholder': 'Breve descrição...', + 'places.formAddress': 'Endereço', + 'places.formAddressPlaceholder': 'Rua, cidade, país', + 'places.formLat': 'Latitude (ex.: -23.5505)', + 'places.formLng': 'Longitude (ex.: -46.6333)', + 'places.formCategory': 'Categoria', + 'places.noCategory': 'Sem categoria', + 'places.categoryNamePlaceholder': 'Nome da categoria', + 'places.formTime': 'Horário', + 'places.startTime': 'Início', + 'places.endTime': 'Fim', + 'places.endTimeBeforeStart': 'O horário de fim é antes do início', + 'places.timeCollision': 'Sobreposição de horário com:', + 'places.formWebsite': 'Site', + 'places.formNotesPlaceholder': 'Notas pessoais...', + 'places.formReservation': 'Reserva', + 'places.reservationNotesPlaceholder': 'Notas da reserva, código de confirmação...', + 'places.mapsSearchPlaceholder': 'Buscar lugares...', + 'places.mapsSearchError': 'Falha na busca de lugares.', + 'places.osmHint': 'Busca via OpenStreetMap (sem fotos, horários ou avaliações). Adicione uma chave Google nas configurações para detalhes completos.', + 'places.osmActive': 'Busca via OpenStreetMap (sem fotos, avaliações ou horário de funcionamento). Adicione uma chave Google em Configurações para mais dados.', + 'places.categoryCreateError': 'Falha ao criar categoria', + 'places.nameRequired': 'Digite um nome', + 'places.saveError': 'Falha ao salvar', + // Place Inspector + 'inspector.opened': 'Aberto', + 'inspector.closed': 'Fechado', + 'inspector.openingHours': 'Horário de funcionamento', + 'inspector.showHours': 'Mostrar horário de funcionamento', + 'inspector.files': 'Arquivos', + 'inspector.filesCount': '{count} arquivos', + 'inspector.removeFromDay': 'Remover do dia', + 'inspector.addToDay': 'Adicionar ao dia', + 'inspector.confirmedRes': 'Reserva confirmada', + 'inspector.pendingRes': 'Reserva pendente', + 'inspector.google': 'Abrir no Google Maps', + 'inspector.website': 'Abrir site', + 'inspector.addRes': 'Reserva', + 'inspector.editRes': 'Editar reserva', + 'inspector.participants': 'Participantes', + + // Reservations + 'reservations.title': 'Reservas', + 'reservations.empty': 'Nenhuma reserva ainda', + 'reservations.emptyHint': 'Adicione reservas de voos, hotéis e mais', + 'reservations.add': 'Adicionar reserva', + 'reservations.addManual': 'Reserva manual', + 'reservations.placeHint': 'Dica: o ideal é criar reservas a partir de um lugar para vinculá-las ao plano do dia.', + 'reservations.confirmed': 'Confirmada', + 'reservations.pending': 'Pendente', + 'reservations.summary': '{confirmed} confirmada(s), {pending} pendente(s)', + 'reservations.fromPlan': 'Do plano', + 'reservations.showFiles': 'Mostrar arquivos', + 'reservations.editTitle': 'Editar reserva', + 'reservations.status': 'Status', + 'reservations.datetime': 'Data e hora', + 'reservations.startTime': 'Horário de início', + 'reservations.endTime': 'Horário de término', + 'reservations.date': 'Data', + 'reservations.time': 'Hora', + 'reservations.timeAlt': 'Hora (alternativa, ex.: 19:30)', + 'reservations.notes': 'Notas', + 'reservations.notesPlaceholder': 'Notas adicionais...', + 'reservations.meta.airline': 'Companhia aérea', + 'reservations.meta.flightNumber': 'Nº do voo', + 'reservations.meta.from': 'De', + 'reservations.meta.to': 'Para', + 'reservations.meta.trainNumber': 'Nº do trem', + 'reservations.meta.platform': 'Plataforma', + 'reservations.meta.seat': 'Assento', + 'reservations.meta.checkIn': 'Check-in', + 'reservations.meta.checkOut': 'Check-out', + 'reservations.meta.linkAccommodation': 'Hospedagem', + 'reservations.meta.pickAccommodation': 'Vincular à hospedagem', + 'reservations.meta.noAccommodation': 'Nenhuma', + 'reservations.meta.hotelPlace': 'Hospedagem', + 'reservations.meta.pickHotel': 'Selecionar hospedagem', + 'reservations.meta.fromDay': 'De', + 'reservations.meta.toDay': 'Até', + 'reservations.meta.selectDay': 'Selecionar dia', + 'reservations.type.flight': 'Voo', + 'reservations.type.hotel': 'Hospedagem', + 'reservations.type.restaurant': 'Restaurante', + 'reservations.type.train': 'Trem', + 'reservations.type.car': 'Carro alugado', + 'reservations.type.cruise': 'Cruzeiro', + 'reservations.type.event': 'Evento', + 'reservations.type.tour': 'Passeio', + 'reservations.type.other': 'Outro', + 'reservations.confirm.delete': 'Tem certeza de que deseja excluir a reserva "{name}"?', + 'reservations.toast.updated': 'Reserva atualizada', + 'reservations.toast.removed': 'Reserva excluída', + 'reservations.toast.fileUploaded': 'Arquivo enviado', + 'reservations.toast.uploadError': 'Falha no envio', + 'reservations.newTitle': 'Nova reserva', + 'reservations.bookingType': 'Tipo de reserva', + 'reservations.titleLabel': 'Título', + 'reservations.titlePlaceholder': 'ex.: LATAM LA800, Hotel Copacabana...', + 'reservations.locationAddress': 'Local / endereço', + 'reservations.locationPlaceholder': 'Endereço, aeroporto, hotel...', + 'reservations.confirmationCode': 'Código da reserva', + 'reservations.confirmationPlaceholder': 'ex.: ABC12345', + 'reservations.day': 'Dia', + 'reservations.noDay': 'Sem dia', + 'reservations.place': 'Lugar', + 'reservations.noPlace': 'Sem lugar', + 'reservations.pendingSave': 'será salvo…', + 'reservations.uploading': 'Enviando...', + 'reservations.attachFile': 'Anexar arquivo', + 'reservations.linkExisting': 'Vincular arquivo existente', + 'reservations.toast.saveError': 'Falha ao salvar', + 'reservations.toast.updateError': 'Falha ao atualizar', + 'reservations.toast.deleteError': 'Falha ao excluir', + 'reservations.confirm.remove': 'Remover a reserva "{name}"?', + 'reservations.linkAssignment': 'Vincular à atribuição do dia', + 'reservations.pickAssignment': 'Selecione uma atribuição do seu plano...', + 'reservations.noAssignment': 'Sem vínculo (avulsa)', + + // Budget + 'budget.title': 'Orçamento', + 'budget.emptyTitle': 'Nenhum orçamento criado ainda', + 'budget.emptyText': 'Crie categorias e lançamentos para planejar o orçamento da viagem', + 'budget.emptyPlaceholder': 'Nome da categoria...', + 'budget.createCategory': 'Criar categoria', + 'budget.category': 'Categoria', + 'budget.categoryName': 'Nome da categoria', + 'budget.table.name': 'Nome', + 'budget.table.total': 'Total', + 'budget.table.persons': 'Pessoas', + 'budget.table.days': 'Dias', + 'budget.table.perPerson': 'Por pessoa', + 'budget.table.perDay': 'Por dia', + 'budget.table.perPersonDay': 'P. p. / dia', + 'budget.table.note': 'Obs.', + 'budget.newEntry': 'Novo lançamento', + 'budget.defaultEntry': 'Novo lançamento', + 'budget.defaultCategory': 'Nova categoria', + 'budget.total': 'Total', + 'budget.totalBudget': 'Orçamento total', + 'budget.byCategory': 'Por categoria', + 'budget.editTooltip': 'Clique para editar', + 'budget.confirm.deleteCategory': 'Excluir a categoria "{name}" com {count} lançamento(s)?', + 'budget.deleteCategory': 'Excluir categoria', + 'budget.perPerson': 'Por pessoa', + 'budget.paid': 'Pago', + 'budget.open': 'Em aberto', + 'budget.noMembers': 'Nenhum membro atribuído', + + // Files + 'files.title': 'Arquivos', + 'files.count': '{count} arquivos', + 'files.countSingular': '1 arquivo', + 'files.uploaded': '{count} enviado(s)', + 'files.uploadError': 'Falha no envio', + 'files.dropzone': 'Solte os arquivos aqui', + 'files.dropzoneHint': 'ou clique para escolher', + 'files.allowedTypes': 'Imagens, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Máx. 50 MB', + 'files.uploading': 'Enviando...', + 'files.filterAll': 'Todos', + 'files.filterPdf': 'PDFs', + 'files.filterImages': 'Imagens', + 'files.filterDocs': 'Documentos', + 'files.filterCollab': 'Notas Colab', + 'files.sourceCollab': 'Das notas Colab', + 'files.empty': 'Nenhum arquivo ainda', + 'files.emptyHint': 'Envie arquivos para anexá-los à viagem', + 'files.openTab': 'Abrir em nova aba', + 'files.confirm.delete': 'Excluir este arquivo?', + 'files.toast.deleted': 'Arquivo excluído', + 'files.toast.deleteError': 'Falha ao excluir arquivo', + 'files.sourcePlan': 'Plano do dia', + 'files.sourceBooking': 'Reserva', + 'files.attach': 'Anexar', + 'files.pasteHint': 'Você também pode colar imagens da área de transferência (Ctrl+V)', + 'files.trash': 'Lixeira', + 'files.trashEmpty': 'A lixeira está vazia', + 'files.emptyTrash': 'Esvaziar lixeira', + 'files.restore': 'Restaurar', + 'files.star': 'Favoritar', + 'files.unstar': 'Remover favorito', + 'files.assign': 'Atribuir', + 'files.assignTitle': 'Atribuir arquivo', + 'files.assignPlace': 'Lugar', + 'files.assignBooking': 'Reserva', + 'files.unassigned': 'Não atribuído', + 'files.unlink': 'Remover vínculo', + 'files.toast.trashed': 'Movido para a lixeira', + 'files.toast.restored': 'Arquivo restaurado', + 'files.toast.trashEmptied': 'Lixeira esvaziada', + 'files.toast.assigned': 'Arquivo atribuído', + 'files.toast.assignError': 'Falha na atribuição', + 'files.toast.restoreError': 'Falha ao restaurar', + 'files.confirm.permanentDelete': 'Excluir permanentemente este arquivo? Não é possível desfazer.', + 'files.confirm.emptyTrash': 'Excluir permanentemente todos os arquivos na lixeira? Não é possível desfazer.', + 'files.noteLabel': 'Nota', + 'files.notePlaceholder': 'Adicione uma nota...', + + // Packing + 'packing.title': 'Lista de mala', + 'packing.empty': 'A lista de mala está vazia', + 'packing.progress': '{packed} de {total} na mala ({percent}%)', + 'packing.clearChecked': 'Remover {count} marcado(s)', + 'packing.clearCheckedShort': 'Remover {count}', + 'packing.suggestions': 'Sugestões', + 'packing.suggestionsTitle': 'Adicionar sugestões', + 'packing.allSuggested': 'Todas as sugestões adicionadas', + 'packing.allPacked': 'Tudo na mala!', + 'packing.addPlaceholder': 'Adicionar item...', + 'packing.categoryPlaceholder': 'Categoria...', + 'packing.filterAll': 'Todos', + 'packing.filterOpen': 'Abertos', + 'packing.filterDone': 'Prontos', + 'packing.emptyTitle': 'A lista de mala está vazia', + 'packing.emptyHint': 'Adicione itens ou use as sugestões', + 'packing.emptyFiltered': 'Nenhum item corresponde ao filtro', + 'packing.menuRename': 'Renomear', + 'packing.menuCheckAll': 'Marcar todos', + 'packing.menuUncheckAll': 'Desmarcar todos', + 'packing.menuDeleteCat': 'Excluir categoria', + 'packing.assignUser': 'Atribuir usuário', + 'packing.noMembers': 'Nenhum membro na viagem', + 'packing.addItem': 'Adicionar item', + 'packing.addItemPlaceholder': 'Nome do item...', + 'packing.addCategory': 'Adicionar categoria', + 'packing.newCategoryPlaceholder': 'Nome da categoria (ex.: Roupas)', + 'packing.applyTemplate': 'Aplicar modelo', + 'packing.template': 'Modelo', + 'packing.templateApplied': '{count} itens adicionados do modelo', + 'packing.templateError': 'Falha ao aplicar modelo', + 'packing.bags': 'Malas', + 'packing.noBag': 'Sem mala', + 'packing.totalWeight': 'Peso total', + 'packing.bagName': 'Nome da mala...', + 'packing.addBag': 'Adicionar mala', + 'packing.changeCategory': 'Alterar categoria', + 'packing.confirm.clearChecked': 'Remover {count} item(ns) marcado(s)?', + 'packing.confirm.deleteCat': 'Excluir a categoria "{name}" com {count} item(ns)?', + 'packing.defaultCategory': 'Outros', + 'packing.toast.saveError': 'Falha ao salvar', + 'packing.toast.deleteError': 'Falha ao excluir', + 'packing.toast.renameError': 'Falha ao renomear', + 'packing.toast.addError': 'Falha ao adicionar', + + // Packing suggestions + 'packing.suggestions.items': [ + { name: 'Passaporte', category: 'Documentos' }, + { name: 'Documento de identidade', category: 'Documentos' }, + { name: 'Seguro viagem', category: 'Documentos' }, + { name: 'Passagens aéreas', category: 'Documentos' }, + { name: 'Cartão de crédito', category: 'Finanças' }, + { name: 'Dinheiro', category: 'Finanças' }, + { name: 'Visto', category: 'Documentos' }, + { name: 'Camisetas', category: 'Roupas' }, + { name: 'Calças', category: 'Roupas' }, + { name: 'Roupa íntima', category: 'Roupas' }, + { name: 'Meias', category: 'Roupas' }, + { name: 'Jaqueta', category: 'Roupas' }, + { name: 'Pijama', category: 'Roupas' }, + { name: 'Traje de banho', category: 'Roupas' }, + { name: 'Capa de chuva', category: 'Roupas' }, + { name: 'Sapatos confortáveis', category: 'Roupas' }, + { name: 'Escova de dentes', category: 'Higiene' }, + { name: 'Creme dental', category: 'Higiene' }, + { name: 'Shampoo', category: 'Higiene' }, + { name: 'Desodorante', category: 'Higiene' }, + { name: 'Protetor solar', category: 'Higiene' }, + { name: 'Aparelho de barbear', category: 'Higiene' }, + { name: 'Carregador', category: 'Eletrônicos' }, + { name: 'Power bank', category: 'Eletrônicos' }, + { name: 'Fones de ouvido', category: 'Eletrônicos' }, + { name: 'Adaptador de viagem', category: 'Eletrônicos' }, + { name: 'Câmera', category: 'Eletrônicos' }, + { name: 'Medicamento para dor', category: 'Saúde' }, + { name: 'Curativos', category: 'Saúde' }, + { name: 'Desinfetante', category: 'Saúde' }, + ], + + // Members / Sharing + 'members.shareTrip': 'Compartilhar viagem', + 'members.inviteUser': 'Convidar usuário', + 'members.selectUser': 'Selecionar usuário…', + 'members.invite': 'Convidar', + 'members.allHaveAccess': 'Todos os usuários já têm acesso.', + 'members.access': 'Acesso', + 'members.person': 'pessoa', + 'members.persons': 'pessoas', + 'members.you': 'você', + 'members.owner': 'Proprietário', + 'members.leaveTrip': 'Sair da viagem', + 'members.removeAccess': 'Remover acesso', + 'members.confirmLeave': 'Sair da viagem? Você perderá o acesso.', + 'members.confirmRemove': 'Remover o acesso deste usuário?', + 'members.loadError': 'Falha ao carregar membros', + 'members.added': 'adicionado', + 'members.addError': 'Falha ao adicionar', + 'members.removed': 'Membro removido', + 'members.removeError': 'Falha ao remover', + + // Categories (Admin) + 'categories.title': 'Categorias', + 'categories.subtitle': 'Gerenciar categorias de lugares', + 'categories.new': 'Nova categoria', + 'categories.empty': 'Nenhuma categoria ainda', + 'categories.namePlaceholder': 'Nome da categoria', + 'categories.icon': 'Ícone', + 'categories.color': 'Cor', + 'categories.customColor': 'Escolher cor personalizada', + 'categories.preview': 'Pré-visualização', + 'categories.defaultName': 'Categoria', + 'categories.update': 'Atualizar', + 'categories.create': 'Criar', + 'categories.confirm.delete': 'Excluir categoria? Os lugares desta categoria não serão excluídos.', + 'categories.toast.loadError': 'Falha ao carregar categorias', + 'categories.toast.nameRequired': 'Digite um nome', + 'categories.toast.updated': 'Categoria atualizada', + 'categories.toast.created': 'Categoria criada', + 'categories.toast.saveError': 'Falha ao salvar', + 'categories.toast.deleted': 'Categoria excluída', + 'categories.toast.deleteError': 'Falha ao excluir', + + // Backup (Admin) + 'backup.title': 'Backup de dados', + 'backup.subtitle': 'Banco de dados e todos os arquivos enviados', + 'backup.refresh': 'Atualizar', + 'backup.upload': 'Enviar backup', + 'backup.uploading': 'Enviando…', + 'backup.create': 'Criar backup', + 'backup.creating': 'Criando…', + 'backup.empty': 'Nenhum backup ainda', + 'backup.createFirst': 'Criar primeiro backup', + 'backup.download': 'Baixar', + 'backup.restore': 'Restaurar', + 'backup.confirm.restore': 'Restaurar o backup "{name}"?\n\nTodos os dados atuais serão substituídos pelo backup.', + 'backup.confirm.uploadRestore': 'Enviar e restaurar o arquivo "{name}"?\n\nTodos os dados atuais serão sobrescritos.', + 'backup.confirm.delete': 'Excluir o backup "{name}"?', + 'backup.toast.loadError': 'Falha ao carregar backups', + 'backup.toast.created': 'Backup criado com sucesso', + 'backup.toast.createError': 'Falha ao criar backup', + 'backup.toast.restored': 'Backup restaurado. A página será recarregada…', + 'backup.toast.restoreError': 'Falha ao restaurar', + 'backup.toast.uploadError': 'Falha no envio', + 'backup.toast.deleted': 'Backup excluído', + 'backup.toast.deleteError': 'Falha ao excluir', + 'backup.toast.downloadError': 'Falha no download', + 'backup.toast.settingsSaved': 'Configurações de backup automático salvas', + 'backup.toast.settingsError': 'Falha ao salvar configurações', + 'backup.auto.title': 'Backup automático', + 'backup.auto.subtitle': 'Backup automático em agenda', + 'backup.auto.enable': 'Ativar backup automático', + 'backup.auto.enableHint': 'Backups serão criados automaticamente conforme a agenda escolhida', + 'backup.auto.interval': 'Intervalo', + 'backup.auto.keepLabel': 'Excluir backups antigos após', + 'backup.interval.hourly': 'A cada hora', + 'backup.interval.daily': 'Diário', + 'backup.interval.weekly': 'Semanal', + 'backup.interval.monthly': 'Mensal', + 'backup.keep.1day': '1 dia', + 'backup.keep.3days': '3 dias', + 'backup.keep.7days': '7 dias', + 'backup.keep.14days': '14 dias', + 'backup.keep.30days': '30 dias', + 'backup.keep.forever': 'Manter para sempre', + + // Photos + 'photos.allDays': 'Todos os dias', + 'photos.noPhotos': 'Nenhuma foto ainda', + 'photos.uploadHint': 'Envie suas fotos de viagem', + 'photos.clickToSelect': 'ou clique para selecionar', + 'photos.linkPlace': 'Vincular lugar', + 'photos.noPlace': 'Sem lugar', + 'photos.uploadN': 'Enviar {n} foto(s)', + + // Backup restore modal + 'backup.restoreConfirmTitle': 'Restaurar backup?', + 'backup.restoreWarning': 'Todos os dados atuais (viagens, lugares, usuários, envios) serão permanentemente substituídos pelo backup. Esta ação não pode ser desfeita.', + 'backup.restoreTip': 'Dica: crie um backup do estado atual antes de restaurar.', + 'backup.restoreConfirm': 'Sim, restaurar', + + // PDF + 'pdf.travelPlan': 'Plano de viagem', + 'pdf.planned': 'Planejado', + 'pdf.costLabel': 'Custo (EUR)', + 'pdf.preview': 'Pré-visualização do PDF', + 'pdf.saveAsPdf': 'Salvar como PDF', + + // Planner + 'planner.places': 'Lugares', + 'planner.bookings': 'Reservas', + 'planner.packingList': 'Lista de mala', + 'planner.documents': 'Documentos', + 'planner.dayPlan': 'Plano do dia', + 'planner.reservations': 'Reservas', + 'planner.minTwoPlaces': 'São necessários pelo menos 2 lugares com coordenadas', + 'planner.noGeoPlaces': 'Nenhum lugar com coordenadas disponível', + 'planner.routeCalculated': 'Rota calculada', + 'planner.routeCalcFailed': 'Não foi possível calcular a rota', + 'planner.routeError': 'Erro ao calcular a rota', + 'planner.routeOptimized': 'Rota otimizada', + 'planner.reservationUpdated': 'Reserva atualizada', + 'planner.reservationAdded': 'Reserva adicionada', + 'planner.confirmDeleteReservation': 'Excluir reserva?', + 'planner.reservationDeleted': 'Reserva excluída', + 'planner.days': 'Dias', + 'planner.allPlaces': 'Todos os lugares', + 'planner.totalPlaces': '{n} lugares no total', + 'planner.noDaysPlanned': 'Nenhum dia planejado ainda', + 'planner.editTrip': 'Editar viagem \u2192', + 'planner.placeOne': '1 lugar', + 'planner.placeN': '{n} lugares', + 'planner.addNote': 'Adicionar nota', + 'planner.noEntries': 'Nenhuma entrada neste dia', + 'planner.addPlace': 'Adicionar lugar/atividade', + 'planner.addPlaceShort': '+ Adicionar lugar/atividade', + 'planner.resPending': 'Reserva pendente · ', + 'planner.resConfirmed': 'Reserva confirmada · ', + 'planner.notePlaceholder': 'Nota\u2026', + 'planner.noteTimePlaceholder': 'Horário (opcional)', + 'planner.noteExamplePlaceholder': 'ex.: metrô às 14:30 da estação central, barco do cais 7, pausa para almoço\u2026', + 'planner.totalCost': 'Custo total', + 'planner.searchPlaces': 'Buscar lugares\u2026', + 'planner.allCategories': 'Todas as categorias', + 'planner.noPlacesFound': 'Nenhum lugar encontrado', + 'planner.addFirstPlace': 'Adicionar primeiro lugar', + 'planner.noReservations': 'Nenhuma reserva', + 'planner.addFirstReservation': 'Adicionar primeira reserva', + 'planner.new': 'Novo', + 'planner.addToDay': '+ Dia', + 'planner.calculating': 'Calculando\u2026', + 'planner.route': 'Rota', + 'planner.optimize': 'Otimizar', + 'planner.openGoogleMaps': 'Abrir no Google Maps', + 'planner.selectDayHint': 'Selecione um dia na lista à esquerda para ver o plano do dia', + 'planner.noPlacesForDay': 'Nenhum lugar neste dia ainda', + 'planner.addPlacesLink': 'Adicionar lugares \u2192', + 'planner.minTotal': 'mín. total', + 'planner.noReservation': 'Sem reserva', + 'planner.removeFromDay': 'Remover do dia', + 'planner.addToThisDay': 'Adicionar ao dia', + 'planner.overview': 'Visão geral', + 'planner.noDays': 'Nenhum dia ainda', + 'planner.editTripToAddDays': 'Edite a viagem para adicionar dias', + 'planner.dayCount': '{n} dias', + 'planner.clickToUnlock': 'Clique para desbloquear', + 'planner.keepPosition': 'Manter posição durante a otimização da rota', + 'planner.dayDetails': 'Detalhes do dia', + 'planner.dayN': 'Dia {n}', + + // Dashboard Stats + 'stats.countries': 'Países', + 'stats.cities': 'Cidades', + 'stats.trips': 'Viagens', + 'stats.places': 'Lugares', + 'stats.worldProgress': 'Progresso no mundo', + 'stats.visited': 'visitados', + 'stats.remaining': 'restantes', + 'stats.visitedCountries': 'Países visitados', + + // Day Detail Panel + 'day.precipProb': 'Probabilidade de chuva', + 'day.precipitation': 'Precipitação', + 'day.wind': 'Vento', + 'day.sunrise': 'Nascer do sol', + 'day.sunset': 'Pôr do sol', + 'day.hourlyForecast': 'Previsão por hora', + 'day.climateHint': 'Médias históricas — previsão real disponível até 16 dias desta data.', + 'day.noWeather': 'Sem dados meteorológicos. Adicione um lugar com coordenadas.', + 'day.overview': 'Resumo do dia', + 'day.accommodation': 'Hospedagem', + 'day.addAccommodation': 'Adicionar hospedagem', + 'day.hotelDayRange': 'Aplicar aos dias', + 'day.noPlacesForHotel': 'Adicione lugares à viagem primeiro', + 'day.allDays': 'Todos', + 'day.checkIn': 'Check-in', + 'day.checkOut': 'Check-out', + 'day.confirmation': 'Confirmação', + 'day.editAccommodation': 'Editar hospedagem', + 'day.reservations': 'Reservas', + + // Collab Addon + 'collab.tabs.chat': 'Chat', + 'collab.tabs.notes': 'Notas', + 'collab.tabs.polls': 'Enquetes', + 'collab.whatsNext.title': 'Próximos passos', + 'collab.whatsNext.today': 'Hoje', + 'collab.whatsNext.tomorrow': 'Amanhã', + 'collab.whatsNext.empty': 'Nenhuma atividade próxima', + 'collab.whatsNext.until': 'até', + 'collab.whatsNext.emptyHint': 'Atividades com horário aparecerão aqui', + 'collab.chat.send': 'Enviar', + 'collab.chat.placeholder': 'Digite uma mensagem...', + 'collab.chat.empty': 'Inicie a conversa', + 'collab.chat.emptyHint': 'As mensagens são compartilhadas com todos os membros da viagem', + 'collab.chat.emptyDesc': 'Compartilhe ideias, planos e atualizações com o grupo', + 'collab.chat.today': 'Hoje', + 'collab.chat.yesterday': 'Ontem', + 'collab.chat.deletedMessage': 'apagou uma mensagem', + 'collab.chat.loadMore': 'Carregar mensagens antigas', + 'collab.chat.justNow': 'agora mesmo', + 'collab.chat.minutesAgo': 'há {n} min', + 'collab.chat.hoursAgo': 'há {n} h', + 'collab.notes.title': 'Notas', + 'collab.notes.new': 'Nova nota', + 'collab.notes.empty': 'Nenhuma nota ainda', + 'collab.notes.emptyHint': 'Comece a registrar ideias e planos', + 'collab.notes.all': 'Todas', + 'collab.notes.titlePlaceholder': 'Título da nota', + 'collab.notes.contentPlaceholder': 'Escreva algo...', + 'collab.notes.categoryPlaceholder': 'Categoria', + 'collab.notes.newCategory': 'Nova categoria...', + 'collab.notes.category': 'Categoria', + 'collab.notes.noCategory': 'Sem categoria', + 'collab.notes.color': 'Cor', + 'collab.notes.save': 'Salvar', + 'collab.notes.cancel': 'Cancelar', + 'collab.notes.edit': 'Editar', + 'collab.notes.delete': 'Excluir', + 'collab.notes.pin': 'Fixar', + 'collab.notes.unpin': 'Desafixar', + 'collab.notes.daysAgo': 'há {n} d', + 'collab.notes.categorySettings': 'Gerenciar categorias', + 'collab.notes.create': 'Criar', + 'collab.notes.website': 'Site', + 'collab.notes.websitePlaceholder': 'https://...', + 'collab.notes.attachFiles': 'Anexar arquivos', + 'collab.notes.noCategoriesYet': 'Nenhuma categoria ainda', + 'collab.notes.emptyDesc': 'Crie uma nota para começar', + 'collab.polls.title': 'Enquetes', + 'collab.polls.new': 'Nova enquete', + 'collab.polls.empty': 'Nenhuma enquete ainda', + 'collab.polls.emptyHint': 'Pergunte ao grupo e votem juntos', + 'collab.polls.question': 'Pergunta', + 'collab.polls.questionPlaceholder': 'O que vamos fazer?', + 'collab.polls.addOption': '+ Adicionar opção', + 'collab.polls.optionPlaceholder': 'Opção {n}', + 'collab.polls.create': 'Criar enquete', + 'collab.polls.close': 'Encerrar', + 'collab.polls.closed': 'Encerrada', + 'collab.polls.votes': '{n} votos', + 'collab.polls.vote': '{n} voto', + 'collab.polls.multipleChoice': 'Múltipla escolha', + 'collab.polls.multiChoice': 'Múltipla escolha', + 'collab.polls.deadline': 'Prazo', + 'collab.polls.option': 'Opção', + 'collab.polls.options': 'Opções', + 'collab.polls.delete': 'Excluir', + 'collab.polls.closedSection': 'Encerradas', + + // Memories (Immich Photos) + 'memories.title': 'Fotos', + 'memories.notConnected': 'Immich não conectado', + 'memories.notConnectedHint': 'Conecte sua instância Immich nas Configurações para ver suas fotos de viagem aqui.', + 'memories.noDates': 'Adicione datas à sua viagem para carregar fotos.', + 'memories.noPhotos': 'Nenhuma foto encontrada', + 'memories.noPhotosHint': 'Nenhuma foto encontrada no Immich para o período desta viagem.', + 'memories.photosFound': 'fotos', + 'memories.fromOthers': 'de outros', + 'memories.sharePhotos': 'Compartilhar fotos', + 'memories.sharing': 'Compartilhando', + 'memories.reviewTitle': 'Revise suas fotos', + 'memories.reviewHint': 'Clique nas fotos para excluí-las do compartilhamento.', + 'memories.shareCount': 'Compartilhar {count} fotos', + 'memories.immichUrl': 'URL do servidor Immich', + 'memories.immichApiKey': 'Chave da API', + 'memories.testConnection': 'Testar conexão', + 'memories.connected': 'Conectado', + 'memories.disconnected': 'Não conectado', + 'memories.connectionSuccess': 'Conectado ao Immich', + 'memories.connectionError': 'Não foi possível conectar ao Immich', + 'memories.saved': 'Configurações do Immich salvas', + 'memories.addPhotos': 'Adicionar fotos', + 'memories.selectPhotos': 'Selecionar fotos do Immich', + 'memories.selectHint': 'Toque nas fotos para selecioná-las.', + 'memories.selected': 'selecionadas', + 'memories.addSelected': 'Adicionar {count} fotos', + 'memories.alreadyAdded': 'Já adicionada', + 'memories.private': 'Privado', + 'memories.stopSharing': 'Parar de compartilhar', + 'memories.oldest': 'Mais antigas', + 'memories.newest': 'Mais recentes', + 'memories.allLocations': 'Todos os locais', + 'memories.tripDates': 'Datas da viagem', + 'memories.allPhotos': 'Todas as fotos', + 'memories.confirmShareTitle': 'Compartilhar com membros da viagem?', + 'memories.confirmShareHint': '{count} fotos serão visíveis para todos os membros desta viagem. Você pode tornar fotos individuais privadas depois.', + 'memories.confirmShareButton': 'Compartilhar fotos', +} + +export default br From cc8be328f920dff33da5b11e2bf2609c4ffc82d8 Mon Sep 17 00:00:00 2001 From: Andrei Brebene Date: Mon, 30 Mar 2026 12:24:02 +0300 Subject: [PATCH 28/63] feat: add granular auto-backup scheduling and timezone support Add UI controls for configuring auto-backup schedule with hour, day of week, and day of month pickers. The hour picker respects the user's 12h/24h time format preference from settings. Add TZ environment variable support via docker-compose so the container runs in the configured timezone. The timezone is passed to node-cron for accurate scheduling and exposed via the API so the UI displays it. Fix SQLite UTC timestamp handling by appending Z suffix to all timestamps sent to the client, ensuring proper timezone conversion in the browser. Made-with: Cursor --- Dockerfile | 4 +- client/src/App.tsx | 8 +- client/src/components/Admin/BackupPanel.tsx | 96 ++++++++++++++++++++- client/src/i18n/translations/de.ts | 20 +++++ client/src/i18n/translations/en.ts | 20 +++++ client/src/pages/AdminPage.tsx | 8 +- client/src/store/authStore.ts | 4 + client/src/types.ts | 1 + client/src/utils/formatters.ts | 8 +- docker-compose.yml | 1 + server/src/routes/admin.ts | 13 ++- server/src/routes/auth.ts | 9 ++ server/src/routes/backup.ts | 31 ++++--- server/src/scheduler.ts | 45 +++++++--- 14 files changed, 225 insertions(+), 43 deletions(-) diff --git a/Dockerfile b/Dockerfile index b45bd59..262571c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,9 @@ FROM node:22-alpine WORKDIR /app -# Server-Dependencies installieren (better-sqlite3 braucht Build-Tools) +# Timezone support + Server-Dependencies (better-sqlite3 braucht Build-Tools) COPY server/package*.json ./ -RUN apk add --no-cache python3 make g++ && \ +RUN apk add --no-cache tzdata python3 make g++ && \ npm ci --production && \ apk del python3 make g++ diff --git a/client/src/App.tsx b/client/src/App.tsx index 8d2c96b..8eba608 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -62,28 +62,26 @@ function RootRedirect() { } export default function App() { - const { loadUser, token, isAuthenticated, demoMode, setDemoMode, setHasMapsKey } = useAuthStore() + const { loadUser, token, isAuthenticated, demoMode, setDemoMode, setHasMapsKey, setServerTimezone } = useAuthStore() const { loadSettings } = useSettingsStore() useEffect(() => { if (token) { loadUser() } - authApi.getAppConfig().then(async (config: { demo_mode?: boolean; has_maps_key?: boolean; version?: string }) => { + authApi.getAppConfig().then(async (config: { demo_mode?: boolean; has_maps_key?: boolean; version?: string; timezone?: string }) => { if (config?.demo_mode) setDemoMode(true) if (config?.has_maps_key !== undefined) setHasMapsKey(config.has_maps_key) + if (config?.timezone) setServerTimezone(config.timezone) - // Version-based cache invalidation: clear all caches on version change if (config?.version) { const storedVersion = localStorage.getItem('trek_app_version') if (storedVersion && storedVersion !== config.version) { try { - // Clear all Service Worker caches if ('caches' in window) { const names = await caches.keys() await Promise.all(names.map(n => caches.delete(n))) } - // Unregister all service workers if ('serviceWorker' in navigator) { const regs = await navigator.serviceWorker.getRegistrations() await Promise.all(regs.map(r => r.unregister())) diff --git a/client/src/components/Admin/BackupPanel.tsx b/client/src/components/Admin/BackupPanel.tsx index 89af898..fb62ed9 100644 --- a/client/src/components/Admin/BackupPanel.tsx +++ b/client/src/components/Admin/BackupPanel.tsx @@ -3,6 +3,7 @@ import { backupApi } from '../../api/client' import { useToast } from '../shared/Toast' import { Download, Trash2, Plus, RefreshCw, RotateCcw, Upload, Clock, Check, HardDrive, AlertTriangle } from 'lucide-react' import { useTranslation } from '../../i18n' +import { useSettingsStore } from '../../store/settingsStore' import { getApiErrorMessage } from '../../types' const INTERVAL_OPTIONS = [ @@ -21,19 +22,35 @@ const KEEP_OPTIONS = [ { value: 0, labelKey: 'backup.keep.forever' }, ] +const DAYS_OF_WEEK = [ + { value: 0, labelKey: 'backup.dow.sunday' }, + { value: 1, labelKey: 'backup.dow.monday' }, + { value: 2, labelKey: 'backup.dow.tuesday' }, + { value: 3, labelKey: 'backup.dow.wednesday' }, + { value: 4, labelKey: 'backup.dow.thursday' }, + { value: 5, labelKey: 'backup.dow.friday' }, + { value: 6, labelKey: 'backup.dow.saturday' }, +] + +const HOURS = Array.from({ length: 24 }, (_, i) => i) + +const DAYS_OF_MONTH = Array.from({ length: 28 }, (_, i) => i + 1) + export default function BackupPanel() { const [backups, setBackups] = useState([]) const [isLoading, setIsLoading] = useState(false) const [isCreating, setIsCreating] = useState(false) const [restoringFile, setRestoringFile] = useState(null) const [isUploading, setIsUploading] = useState(false) - const [autoSettings, setAutoSettings] = useState({ enabled: false, interval: 'daily', keep_days: 7 }) + const [autoSettings, setAutoSettings] = useState({ enabled: false, interval: 'daily', keep_days: 7, hour: 2, day_of_week: 0, day_of_month: 1 }) const [autoSettingsSaving, setAutoSettingsSaving] = useState(false) const [autoSettingsDirty, setAutoSettingsDirty] = useState(false) + const [serverTimezone, setServerTimezone] = useState('') const [restoreConfirm, setRestoreConfirm] = useState(null) // { type: 'file'|'upload', filename, file? } const fileInputRef = useRef(null) const toast = useToast() const { t, language, locale } = useTranslation() + const is12h = useSettingsStore(s => s.settings.time_format) === '12h' const loadBackups = async () => { setIsLoading(true) @@ -51,6 +68,7 @@ export default function BackupPanel() { try { const data = await backupApi.getAutoSettings() setAutoSettings(data.settings) + if (data.timezone) setServerTimezone(data.timezone) } catch {} } @@ -147,10 +165,12 @@ export default function BackupPanel() { const formatDate = (dateStr) => { if (!dateStr) return '-' try { - return new Date(dateStr).toLocaleString(locale, { + const opts: Intl.DateTimeFormatOptions = { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit', - }) + } + if (serverTimezone) opts.timeZone = serverTimezone + return new Date(dateStr).toLocaleString(locale, opts) } catch { return dateStr } } @@ -331,6 +351,76 @@ export default function BackupPanel() {
+ {/* Hour picker (for daily, weekly, monthly) */} + {autoSettings.interval !== 'hourly' && ( +
+ + +

+ {t('backup.auto.hourHint', { format: is12h ? '12h' : '24h' })}{serverTimezone ? ` (Timezone: ${serverTimezone})` : ''} +

+
+ )} + + {/* Day of week (for weekly) */} + {autoSettings.interval === 'weekly' && ( +
+ +
+ {DAYS_OF_WEEK.map(opt => ( + + ))} +
+
+ )} + + {/* Day of month (for monthly) */} + {autoSettings.interval === 'monthly' && ( +
+ + +

{t('backup.auto.dayOfMonthHint')}

+
+ )} + {/* Keep duration */}
diff --git a/client/src/i18n/translations/de.ts b/client/src/i18n/translations/de.ts index b09273e..037079a 100644 --- a/client/src/i18n/translations/de.ts +++ b/client/src/i18n/translations/de.ts @@ -1007,7 +1007,27 @@ const de: Record = { 'backup.auto.enable': 'Auto-Backup aktivieren', 'backup.auto.enableHint': 'Backups werden automatisch nach dem gewählten Zeitplan erstellt', 'backup.auto.interval': 'Intervall', + 'backup.auto.hour': 'Ausführung um', + 'backup.auto.hourHint': 'Lokale Serverzeit ({format}-Format)', + 'backup.auto.dayOfWeek': 'Wochentag', + 'backup.auto.dayOfMonth': 'Tag des Monats', + 'backup.auto.dayOfMonthHint': 'Auf 1–28 beschränkt, um mit allen Monaten kompatibel zu sein', + 'backup.auto.scheduleSummary': 'Zeitplan', + 'backup.auto.summaryDaily': 'Täglich um {hour}:00', + 'backup.auto.summaryWeekly': 'Jeden {day} um {hour}:00', + 'backup.auto.summaryMonthly': 'Am {day}. jedes Monats um {hour}:00', + 'backup.auto.envLocked': 'Docker', + 'backup.auto.envLockedHint': 'Auto-Backup wird über Docker-Umgebungsvariablen konfiguriert. Ändern Sie Ihre docker-compose.yml und starten Sie den Container neu.', + 'backup.auto.copyEnv': 'Docker-Umgebungsvariablen kopieren', + 'backup.auto.envCopied': 'Docker-Umgebungsvariablen in die Zwischenablage kopiert', 'backup.auto.keepLabel': 'Alte Backups löschen nach', + 'backup.dow.sunday': 'So', + 'backup.dow.monday': 'Mo', + 'backup.dow.tuesday': 'Di', + 'backup.dow.wednesday': 'Mi', + 'backup.dow.thursday': 'Do', + 'backup.dow.friday': 'Fr', + 'backup.dow.saturday': 'Sa', 'backup.interval.hourly': 'Stündlich', 'backup.interval.daily': 'Täglich', 'backup.interval.weekly': 'Wöchentlich', diff --git a/client/src/i18n/translations/en.ts b/client/src/i18n/translations/en.ts index b85b6dc..41a15ca 100644 --- a/client/src/i18n/translations/en.ts +++ b/client/src/i18n/translations/en.ts @@ -1007,7 +1007,27 @@ const en: Record = { 'backup.auto.enable': 'Enable auto-backup', 'backup.auto.enableHint': 'Backups will be created automatically on the chosen schedule', 'backup.auto.interval': 'Interval', + 'backup.auto.hour': 'Run at hour', + 'backup.auto.hourHint': 'Server local time ({format} format)', + 'backup.auto.dayOfWeek': 'Day of week', + 'backup.auto.dayOfMonth': 'Day of month', + 'backup.auto.dayOfMonthHint': 'Limited to 1–28 for compatibility with all months', + 'backup.auto.scheduleSummary': 'Schedule', + 'backup.auto.summaryDaily': 'Every day at {hour}:00', + 'backup.auto.summaryWeekly': 'Every {day} at {hour}:00', + 'backup.auto.summaryMonthly': 'Day {day} of every month at {hour}:00', + 'backup.auto.envLocked': 'Docker', + 'backup.auto.envLockedHint': 'Auto-backup is configured via Docker environment variables. To change these settings, update your docker-compose.yml and restart the container.', + 'backup.auto.copyEnv': 'Copy Docker env vars', + 'backup.auto.envCopied': 'Docker env vars copied to clipboard', 'backup.auto.keepLabel': 'Delete old backups after', + 'backup.dow.sunday': 'Sun', + 'backup.dow.monday': 'Mon', + 'backup.dow.tuesday': 'Tue', + 'backup.dow.wednesday': 'Wed', + 'backup.dow.thursday': 'Thu', + 'backup.dow.friday': 'Fri', + 'backup.dow.saturday': 'Sat', 'backup.interval.hourly': 'Hourly', 'backup.interval.daily': 'Daily', 'backup.interval.weekly': 'Weekly', diff --git a/client/src/pages/AdminPage.tsx b/client/src/pages/AdminPage.tsx index b63306f..8ca84fc 100644 --- a/client/src/pages/AdminPage.tsx +++ b/client/src/pages/AdminPage.tsx @@ -52,7 +52,7 @@ interface UpdateInfo { } export default function AdminPage(): React.ReactElement { - const { demoMode } = useAuthStore() + const { demoMode, serverTimezone } = useAuthStore() const { t, locale } = useTranslation() const hour12 = useSettingsStore(s => s.settings.time_format) === '12h' const TABS = [ @@ -512,10 +512,10 @@ export default function AdminPage(): React.ReactElement { - {new Date(u.created_at).toLocaleDateString(locale)} + {new Date(u.created_at).toLocaleDateString(locale, { timeZone: serverTimezone })} - {u.last_login ? new Date(u.last_login).toLocaleDateString(locale, { day: 'numeric', month: 'short', hour: '2-digit', minute: '2-digit', hour12 }) : '—'} + {u.last_login ? new Date(u.last_login).toLocaleDateString(locale, { day: 'numeric', month: 'short', hour: '2-digit', minute: '2-digit', hour12, timeZone: serverTimezone }) : '—'}
@@ -584,7 +584,7 @@ export default function AdminPage(): React.ReactElement {
{inv.used_count}/{inv.max_uses === 0 ? '∞' : inv.max_uses} {t('admin.invite.uses')} - {inv.expires_at && ` · ${t('admin.invite.expiresAt')} ${new Date(inv.expires_at).toLocaleDateString(locale)}`} + {inv.expires_at && ` · ${t('admin.invite.expiresAt')} ${new Date(inv.expires_at).toLocaleDateString(locale, { timeZone: serverTimezone })}`} {` · ${t('admin.invite.createdBy')} ${inv.created_by_name}`}
diff --git a/client/src/store/authStore.ts b/client/src/store/authStore.ts index 1ce5211..8387c4e 100644 --- a/client/src/store/authStore.ts +++ b/client/src/store/authStore.ts @@ -23,6 +23,7 @@ interface AuthState { error: string | null demoMode: boolean hasMapsKey: boolean + serverTimezone: string login: (email: string, password: string) => Promise completeMfaLogin: (mfaToken: string, code: string) => Promise @@ -36,6 +37,7 @@ interface AuthState { deleteAvatar: () => Promise setDemoMode: (val: boolean) => void setHasMapsKey: (val: boolean) => void + setServerTimezone: (tz: string) => void demoLogin: () => Promise } @@ -47,6 +49,7 @@ export const useAuthStore = create((set, get) => ({ error: null, demoMode: localStorage.getItem('demo_mode') === 'true', hasMapsKey: false, + serverTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone, login: async (email: string, password: string) => { set({ isLoading: true, error: null }) @@ -201,6 +204,7 @@ export const useAuthStore = create((set, get) => ({ }, setHasMapsKey: (val: boolean) => set({ hasMapsKey: val }), + setServerTimezone: (tz: string) => set({ serverTimezone: tz }), demoLogin: async () => { set({ isLoading: true, error: null }) diff --git a/client/src/types.ts b/client/src/types.ts index e5913ab..7dd58f1 100644 --- a/client/src/types.ts +++ b/client/src/types.ts @@ -279,6 +279,7 @@ export interface AppConfig { oidc_display_name?: string has_maps_key?: boolean allowed_file_types?: string + timezone?: string } // Translation function type diff --git a/client/src/utils/formatters.ts b/client/src/utils/formatters.ts index 4fd3409..7e7ebc0 100644 --- a/client/src/utils/formatters.ts +++ b/client/src/utils/formatters.ts @@ -6,11 +6,13 @@ export function currencyDecimals(currency: string): number { return ZERO_DECIMAL_CURRENCIES.has(currency.toUpperCase()) ? 0 : 2 } -export function formatDate(dateStr: string | null | undefined, locale: string): string | null { +export function formatDate(dateStr: string | null | undefined, locale: string, timeZone?: string): string | null { if (!dateStr) return null - return new Date(dateStr + 'T00:00:00').toLocaleDateString(locale, { + const opts: Intl.DateTimeFormatOptions = { weekday: 'short', day: 'numeric', month: 'short', - }) + } + if (timeZone) opts.timeZone = timeZone + return new Date(dateStr + 'T00:00:00').toLocaleDateString(locale, opts) } export function formatTime(timeStr: string | null | undefined, locale: string, timeFormat: string): string { diff --git a/docker-compose.yml b/docker-compose.yml index 1acc607..91a97e9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,7 @@ services: - JWT_SECRET=${JWT_SECRET:-} # - ALLOWED_ORIGINS=https://yourdomain.com # Optional: restrict CORS to specific origins - PORT=3000 + - TZ=${TZ:-UTC} volumes: - ./data:/app/data - ./uploads:/app/uploads diff --git a/server/src/routes/admin.ts b/server/src/routes/admin.ts index c7aaf2a..eea850f 100644 --- a/server/src/routes/admin.ts +++ b/server/src/routes/admin.ts @@ -12,6 +12,11 @@ const router = express.Router(); router.use(authenticate, adminOnly); +function utcSuffix(ts: string | null | undefined): string | null { + if (!ts) return null; + return ts.endsWith('Z') ? ts : ts.replace(' ', 'T') + 'Z'; +} + router.get('/users', (req: Request, res: Response) => { const users = db.prepare( 'SELECT id, username, email, role, created_at, updated_at, last_login FROM users ORDER BY created_at DESC' @@ -21,7 +26,13 @@ router.get('/users', (req: Request, res: Response) => { const { getOnlineUserIds } = require('../websocket'); onlineUserIds = getOnlineUserIds(); } catch { /* */ } - const usersWithStatus = users.map(u => ({ ...u, online: onlineUserIds.has(u.id) })); + const usersWithStatus = users.map(u => ({ + ...u, + created_at: utcSuffix(u.created_at), + updated_at: utcSuffix(u.updated_at as string), + last_login: utcSuffix(u.last_login), + online: onlineUserIds.has(u.id), + })); res.json({ users: usersWithStatus }); }); diff --git a/server/src/routes/auth.ts b/server/src/routes/auth.ts index b5518ef..de58aeb 100644 --- a/server/src/routes/auth.ts +++ b/server/src/routes/auth.ts @@ -28,6 +28,11 @@ function getPendingMfaSecret(userId: number): string | null { return row.secret; } +function utcSuffix(ts: string | null | undefined): string | null { + if (!ts) return null; + return ts.endsWith('Z') ? ts : ts.replace(' ', 'T') + 'Z'; +} + function stripUserForClient(user: User): Record { const { password_hash: _p, @@ -39,6 +44,9 @@ function stripUserForClient(user: User): Record { } = user; return { ...rest, + created_at: utcSuffix(rest.created_at), + updated_at: utcSuffix(rest.updated_at), + last_login: utcSuffix(rest.last_login), mfa_enabled: !!(user.mfa_enabled === 1 || user.mfa_enabled === true), }; } @@ -146,6 +154,7 @@ router.get('/app-config', (_req: Request, res: Response) => { demo_mode: isDemo, demo_email: isDemo ? 'demo@trek.app' : undefined, demo_password: isDemo ? 'demo12345' : undefined, + timezone: process.env.TZ || Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC', }); }); diff --git a/server/src/routes/backup.ts b/server/src/routes/backup.ts index e18190d..832b355 100644 --- a/server/src/routes/backup.ts +++ b/server/src/routes/backup.ts @@ -212,17 +212,30 @@ router.post('/upload-restore', uploadTmp.single('backup'), async (req: Request, router.get('/auto-settings', (_req: Request, res: Response) => { try { - res.json({ settings: scheduler.loadSettings() }); + const tz = process.env.TZ || Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC'; + res.json({ settings: scheduler.loadSettings(), timezone: tz }); } catch (err: unknown) { console.error('[backup] GET auto-settings:', err); res.status(500).json({ error: 'Could not load backup settings' }); } }); +function parseIntField(raw: unknown, fallback: number): number { + if (typeof raw === 'number' && Number.isFinite(raw)) return Math.floor(raw); + if (typeof raw === 'string' && raw.trim() !== '') { + const n = parseInt(raw, 10); + if (Number.isFinite(n)) return n; + } + return fallback; +} + function parseAutoBackupBody(body: Record): { enabled: boolean; interval: string; keep_days: number; + hour: number; + day_of_week: number; + day_of_month: number; } { const enabled = body.enabled === true || body.enabled === 'true' || body.enabled === 1; const rawInterval = body.interval; @@ -230,17 +243,11 @@ function parseAutoBackupBody(body: Record): { typeof rawInterval === 'string' && scheduler.VALID_INTERVALS.includes(rawInterval) ? rawInterval : 'daily'; - const rawKeep = body.keep_days; - let keepNum: number; - if (typeof rawKeep === 'number' && Number.isFinite(rawKeep)) { - keepNum = Math.floor(rawKeep); - } else if (typeof rawKeep === 'string' && rawKeep.trim() !== '') { - keepNum = parseInt(rawKeep, 10); - } else { - keepNum = NaN; - } - const keep_days = Number.isFinite(keepNum) && keepNum >= 0 ? keepNum : 7; - return { enabled, interval, keep_days }; + const keep_days = Math.max(0, parseIntField(body.keep_days, 7)); + const hour = Math.min(23, Math.max(0, parseIntField(body.hour, 2))); + const day_of_week = Math.min(6, Math.max(0, parseIntField(body.day_of_week, 0))); + const day_of_month = Math.min(28, Math.max(1, parseIntField(body.day_of_month, 1))); + return { enabled, interval, keep_days, hour, day_of_week, day_of_month }; } router.put('/auto-settings', (req: Request, res: Response) => { diff --git a/server/src/scheduler.ts b/server/src/scheduler.ts index 2a8a75d..a3272c2 100644 --- a/server/src/scheduler.ts +++ b/server/src/scheduler.ts @@ -8,30 +8,48 @@ const backupsDir = path.join(dataDir, 'backups'); const uploadsDir = path.join(__dirname, '../uploads'); const settingsFile = path.join(dataDir, 'backup-settings.json'); -const CRON_EXPRESSIONS: Record = { - hourly: '0 * * * *', - daily: '0 2 * * *', - weekly: '0 2 * * 0', - monthly: '0 2 1 * *', -}; - -const VALID_INTERVALS = Object.keys(CRON_EXPRESSIONS); +const VALID_INTERVALS = ['hourly', 'daily', 'weekly', 'monthly']; +const VALID_DAYS_OF_WEEK = [0, 1, 2, 3, 4, 5, 6]; // 0=Sunday +const VALID_HOURS = Array.from({ length: 24 }, (_, i) => i); interface BackupSettings { enabled: boolean; interval: string; keep_days: number; + hour: number; + day_of_week: number; + day_of_month: number; +} + +function buildCronExpression(settings: BackupSettings): string { + const hour = VALID_HOURS.includes(settings.hour) ? settings.hour : 2; + const dow = VALID_DAYS_OF_WEEK.includes(settings.day_of_week) ? settings.day_of_week : 0; + const dom = settings.day_of_month >= 1 && settings.day_of_month <= 28 ? settings.day_of_month : 1; + + switch (settings.interval) { + case 'hourly': return '0 * * * *'; + case 'daily': return `0 ${hour} * * *`; + case 'weekly': return `0 ${hour} * * ${dow}`; + case 'monthly': return `0 ${hour} ${dom} * *`; + default: return `0 ${hour} * * *`; + } } let currentTask: ScheduledTask | null = null; +function getDefaults(): BackupSettings { + return { enabled: false, interval: 'daily', keep_days: 7, hour: 2, day_of_week: 0, day_of_month: 1 }; +} + function loadSettings(): BackupSettings { + let settings = getDefaults(); try { if (fs.existsSync(settingsFile)) { - return JSON.parse(fs.readFileSync(settingsFile, 'utf8')); + const saved = JSON.parse(fs.readFileSync(settingsFile, 'utf8')); + settings = { ...settings, ...saved }; } } catch (e) {} - return { enabled: false, interval: 'daily', keep_days: 7 }; + return settings; } function saveSettings(settings: BackupSettings): void { @@ -104,9 +122,10 @@ function start(): void { return; } - const expression = CRON_EXPRESSIONS[settings.interval] || CRON_EXPRESSIONS.daily; - currentTask = cron.schedule(expression, runBackup); - console.log(`[Auto-Backup] Scheduled: ${settings.interval} (${expression}), retention: ${settings.keep_days === 0 ? 'forever' : settings.keep_days + ' days'}`); + const expression = buildCronExpression(settings); + const tz = process.env.TZ || 'UTC'; + currentTask = cron.schedule(expression, runBackup, { timezone: tz }); + console.log(`[Auto-Backup] Scheduled: ${settings.interval} (${expression}), tz: ${tz}, retention: ${settings.keep_days === 0 ? 'forever' : settings.keep_days + ' days'}`); } // Demo mode: hourly reset of demo user data From da5e77f78d872a997f7acf84b601b1b2149cb511 Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 30 Mar 2026 11:35:28 +0200 Subject: [PATCH 29/63] =?UTF-8?q?feat:=20GPX=20file=20import=20for=20place?= =?UTF-8?q?s=20=E2=80=94=20closes=20#98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upload a GPX file to automatically create places from waypoints. Supports , , and elements with CDATA handling. Handles lat/lon in any attribute order. Track-only files import start and end points with the track name. - New server endpoint POST /places/import/gpx - Import GPX button in PlacesSidebar below Add Place - i18n keys for DE and EN --- client/src/api/client.ts | 4 + .../src/components/Planner/PlacesSidebar.tsx | 39 +++++++- client/src/i18n/translations/de.ts | 3 + client/src/i18n/translations/en.ts | 3 + client/src/pages/TripPlannerPage.tsx | 3 +- server/src/routes/places.ts | 91 +++++++++++++++++++ 6 files changed, 139 insertions(+), 4 deletions(-) diff --git a/client/src/api/client.ts b/client/src/api/client.ts index 346b7d8..3301a26 100644 --- a/client/src/api/client.ts +++ b/client/src/api/client.ts @@ -91,6 +91,10 @@ export const placesApi = { update: (tripId: number | string, id: number | string, data: Record) => apiClient.put(`/trips/${tripId}/places/${id}`, data).then(r => r.data), delete: (tripId: number | string, id: number | string) => apiClient.delete(`/trips/${tripId}/places/${id}`).then(r => r.data), searchImage: (tripId: number | string, id: number | string) => apiClient.get(`/trips/${tripId}/places/${id}/image`).then(r => r.data), + importGpx: (tripId: number | string, file: File) => { + const fd = new FormData(); fd.append('file', file) + return apiClient.post(`/trips/${tripId}/places/import/gpx`, fd, { headers: { 'Content-Type': 'multipart/form-data' } }).then(r => r.data) + }, } export const assignmentsApi = { diff --git a/client/src/components/Planner/PlacesSidebar.tsx b/client/src/components/Planner/PlacesSidebar.tsx index 14f3129..3bef079 100644 --- a/client/src/components/Planner/PlacesSidebar.tsx +++ b/client/src/components/Planner/PlacesSidebar.tsx @@ -1,15 +1,19 @@ import ReactDOM from 'react-dom' -import { useState } from 'react' +import { useState, useRef } from 'react' import DOM from 'react-dom' -import { Search, Plus, X, CalendarDays, Pencil, Trash2, ExternalLink, Navigation } from 'lucide-react' +import { Search, Plus, X, CalendarDays, Pencil, Trash2, ExternalLink, Navigation, Upload } from 'lucide-react' import PlaceAvatar from '../shared/PlaceAvatar' import { getCategoryIcon } from '../shared/categoryIcons' import { useTranslation } from '../../i18n' +import { useToast } from '../shared/Toast' import CustomSelect from '../shared/CustomSelect' import { useContextMenu, ContextMenu } from '../shared/ContextMenu' +import { placesApi } from '../../api/client' +import { useTripStore } from '../../store/tripStore' import type { Place, Category, Day, AssignmentsMap } from '../../types' interface PlacesSidebarProps { + tripId: number places: Place[] categories: Category[] assignments: AssignmentsMap @@ -26,11 +30,27 @@ interface PlacesSidebarProps { } export default function PlacesSidebar({ - places, categories, assignments, selectedDayId, selectedPlaceId, + tripId, places, categories, assignments, selectedDayId, selectedPlaceId, onPlaceClick, onAddPlace, onAssignToDay, onEditPlace, onDeletePlace, days, isMobile, onCategoryFilterChange, }: PlacesSidebarProps) { const { t } = useTranslation() + const toast = useToast() const ctxMenu = useContextMenu() + const gpxInputRef = useRef(null) + const tripStore = useTripStore() + + const handleGpxImport = async (e: React.ChangeEvent) => { + const file = e.target.files?.[0] + if (!file) return + e.target.value = '' + try { + const result = await placesApi.importGpx(tripId, file) + await tripStore.loadTrip(tripId) + toast.success(t('places.gpxImported', { count: result.count })) + } catch (err: any) { + toast.error(err?.response?.data?.error || t('places.gpxError')) + } + } const [search, setSearch] = useState('') const [filter, setFilter] = useState('all') const [categoryFilter, setCategoryFilterLocal] = useState('') @@ -72,6 +92,19 @@ export default function PlacesSidebar({ > {t('places.addPlace')} + + {/* Filter-Tabs */}
diff --git a/client/src/i18n/translations/de.ts b/client/src/i18n/translations/de.ts index b09273e..0aea7ff 100644 --- a/client/src/i18n/translations/de.ts +++ b/client/src/i18n/translations/de.ts @@ -638,6 +638,9 @@ const de: Record = { // Places Sidebar 'places.addPlace': 'Ort/Aktivität hinzufügen', + 'places.importGpx': 'GPX importieren', + 'places.gpxImported': '{count} Orte aus GPX importiert', + 'places.gpxError': 'GPX-Import fehlgeschlagen', 'places.assignToDay': 'Zu welchem Tag hinzufügen?', 'places.all': 'Alle', 'places.unplanned': 'Ungeplant', diff --git a/client/src/i18n/translations/en.ts b/client/src/i18n/translations/en.ts index b85b6dc..46e6310 100644 --- a/client/src/i18n/translations/en.ts +++ b/client/src/i18n/translations/en.ts @@ -638,6 +638,9 @@ const en: Record = { // Places Sidebar 'places.addPlace': 'Add Place/Activity', + 'places.importGpx': 'Import GPX', + 'places.gpxImported': '{count} places imported from GPX', + 'places.gpxError': 'GPX import failed', 'places.assignToDay': 'Add to which day?', 'places.all': 'All', 'places.unplanned': 'Unplanned', diff --git a/client/src/pages/TripPlannerPage.tsx b/client/src/pages/TripPlannerPage.tsx index b844c1d..8992746 100644 --- a/client/src/pages/TripPlannerPage.tsx +++ b/client/src/pages/TripPlannerPage.tsx @@ -495,6 +495,7 @@ export default function TripPlannerPage(): React.ReactElement | null { )}
{mobileSidebarOpen === 'left' ? { handleSelectDay(id); setMobileSidebarOpen(null) }} onPlaceClick={handlePlaceClick} onReorder={handleReorder} onUpdateDayTitle={handleUpdateDayTitle} onAssignToDay={handleAssignToDay} onRouteCalculated={(r) => { if (r) { setRoute(r.coordinates); setRouteInfo({ distance: r.distanceText, duration: r.durationText }) } }} reservations={reservations} onAddReservation={(dayId) => { setEditingReservation(null); tripStore.setSelectedDay(dayId); setShowReservationModal(true); setMobileSidebarOpen(null) }} onDayDetail={(day) => { setShowDayDetail(day); setSelectedPlaceId(null); setSelectedAssignmentId(null); setMobileSidebarOpen(null) }} accommodations={tripAccommodations} onNavigateToFiles={() => { setMobileSidebarOpen(null); handleTabChange('dateien') }} /> - : { setEditingPlace(null); setShowPlaceForm(true); setMobileSidebarOpen(null) }} onAssignToDay={handleAssignToDay} days={days} isMobile onCategoryFilterChange={setMapCategoryFilter} /> + : { setEditingPlace(null); setShowPlaceForm(true); setMobileSidebarOpen(null) }} onAssignToDay={handleAssignToDay} days={days} isMobile onCategoryFilterChange={setMapCategoryFilter} /> }
diff --git a/server/src/routes/places.ts b/server/src/routes/places.ts index 176aa3c..f304e6a 100644 --- a/server/src/routes/places.ts +++ b/server/src/routes/places.ts @@ -1,5 +1,6 @@ import express, { Request, Response } from 'express'; import fetch from 'node-fetch'; +import multer from 'multer'; import { db, getPlaceWithTags } from '../db/database'; import { authenticate } from '../middleware/auth'; import { requireTripAccess } from '../middleware/tripAccess'; @@ -8,6 +9,8 @@ import { loadTagsByPlaceIds } from '../services/queryHelpers'; import { validateStringLengths } from '../middleware/validate'; import { AuthRequest, Place } from '../types'; +const gpxUpload = multer({ storage: multer.memoryStorage(), limits: { fileSize: 10 * 1024 * 1024 } }); + interface PlaceWithCategory extends Place { category_name: string | null; category_color: string | null; @@ -112,6 +115,94 @@ router.post('/', authenticate, requireTripAccess, validateStringLengths({ name: broadcast(tripId, 'place:created', { place }, req.headers['x-socket-id'] as string); }); +// Import places from GPX file (must be before /:id) +router.post('/import/gpx', authenticate, requireTripAccess, gpxUpload.single('file'), (req: Request, res: Response) => { + const { tripId } = req.params; + const file = (req as any).file; + if (!file) return res.status(400).json({ error: 'No file uploaded' }); + + const xml = file.buffer.toString('utf-8'); + + const parseCoords = (attrs: string): { lat: number; lng: number } | null => { + const latMatch = attrs.match(/lat=["']([^"']+)["']/i); + const lonMatch = attrs.match(/lon=["']([^"']+)["']/i); + if (!latMatch || !lonMatch) return null; + const lat = parseFloat(latMatch[1]); + const lng = parseFloat(lonMatch[1]); + return (!isNaN(lat) && !isNaN(lng)) ? { lat, lng } : null; + }; + + const stripCdata = (s: string) => s.replace(//g, '$1').trim(); + const extractName = (body: string) => { const m = body.match(/]*>([\s\S]*?)<\/name>/i); return m ? stripCdata(m[1]) : null }; + const extractDesc = (body: string) => { const m = body.match(/]*>([\s\S]*?)<\/desc>/i); return m ? stripCdata(m[1]) : null }; + + const waypoints: { name: string; lat: number; lng: number; description: string | null }[] = []; + + // 1) Parse elements (named waypoints / POIs) + const wptRegex = /]+)>([\s\S]*?)<\/wpt>/gi; + let match; + while ((match = wptRegex.exec(xml)) !== null) { + const coords = parseCoords(match[1]); + if (!coords) continue; + const name = extractName(match[2]) || `Waypoint ${waypoints.length + 1}`; + waypoints.push({ ...coords, name, description: extractDesc(match[2]) }); + } + + // 2) If no , try (route points) + if (waypoints.length === 0) { + const rteptRegex = /]+)>([\s\S]*?)<\/rtept>/gi; + while ((match = rteptRegex.exec(xml)) !== null) { + const coords = parseCoords(match[1]); + if (!coords) continue; + const name = extractName(match[2]) || `Route Point ${waypoints.length + 1}`; + waypoints.push({ ...coords, name, description: extractDesc(match[2]) }); + } + } + + // 3) If still nothing, extract track name + start/end points from + if (waypoints.length === 0) { + const trackNameMatch = xml.match(/]*>[\s\S]*?]*>([\s\S]*?)<\/name>/i); + const trackName = trackNameMatch?.[1]?.trim() || 'GPX Track'; + const trkptRegex = /]*?)(?:\/>|>([\s\S]*?)<\/trkpt>)/gi; + const trackPoints: { lat: number; lng: number }[] = []; + while ((match = trkptRegex.exec(xml)) !== null) { + const coords = parseCoords(match[1]); + if (coords) trackPoints.push(coords); + } + if (trackPoints.length > 0) { + const start = trackPoints[0]; + waypoints.push({ ...start, name: `${trackName} — Start`, description: null }); + if (trackPoints.length > 1) { + const end = trackPoints[trackPoints.length - 1]; + waypoints.push({ ...end, name: `${trackName} — End`, description: null }); + } + } + } + + if (waypoints.length === 0) { + return res.status(400).json({ error: 'No waypoints found in GPX file' }); + } + + const insertStmt = db.prepare(` + INSERT INTO places (trip_id, name, description, lat, lng, transport_mode) + VALUES (?, ?, ?, ?, ?, 'walking') + `); + const created: any[] = []; + const insertAll = db.transaction(() => { + for (const wp of waypoints) { + const result = insertStmt.run(tripId, wp.name, wp.description, wp.lat, wp.lng); + const place = getPlaceWithTags(Number(result.lastInsertRowid)); + created.push(place); + } + }); + insertAll(); + + res.status(201).json({ places: created, count: created.length }); + for (const place of created) { + broadcast(tripId, 'place:created', { place }, req.headers['x-socket-id'] as string); + } +}); + router.get('/:id', authenticate, requireTripAccess, (req: Request, res: Response) => { const { tripId, id } = req.params From 9a044ada28fb303b828658ea3d84dd2675f96aca Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 30 Mar 2026 11:47:05 +0200 Subject: [PATCH 30/63] =?UTF-8?q?feat:=20blur=20booking=20codes=20setting?= =?UTF-8?q?=20+=20two-column=20settings=20page=20=E2=80=94=20closes=20#114?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - New display setting "Blur Booking Codes" (off by default) - When enabled, confirmation codes are blurred across all views (ReservationsPanel, DayDetailPanel, Transport detail modal) - Hover or click reveals the code (click toggles on mobile) - Settings page uses masonry two-column layout on desktop, single column on mobile (<900px) - Fix hardcoded admin page title to use i18n key --- .../src/components/Planner/DayDetailPanel.tsx | 8 +++- .../src/components/Planner/DayPlanSidebar.tsx | 27 +++++++++---- .../components/Planner/ReservationsPanel.tsx | 16 +++++++- client/src/i18n/translations/de.ts | 1 + client/src/i18n/translations/en.ts | 1 + client/src/pages/AdminPage.tsx | 2 +- client/src/pages/SettingsPage.tsx | 40 +++++++++++++++++-- client/src/types.ts | 1 + 8 files changed, 83 insertions(+), 13 deletions(-) diff --git a/client/src/components/Planner/DayDetailPanel.tsx b/client/src/components/Planner/DayDetailPanel.tsx index d36cba9..3001b8a 100644 --- a/client/src/components/Planner/DayDetailPanel.tsx +++ b/client/src/components/Planner/DayDetailPanel.tsx @@ -56,6 +56,7 @@ export default function DayDetailPanel({ day, days, places, categories = [], tri const { t, language, locale } = useTranslation() const isFahrenheit = useSettingsStore(s => s.settings.temperature_unit) === 'fahrenheit' const is12h = useSettingsStore(s => s.settings.time_format) === '12h' + const blurCodes = useSettingsStore(s => s.settings.blur_booking_codes) const fmtTime = (v) => formatTime12(v, is12h) const unit = isFahrenheit ? '°F' : '°C' const [weather, setWeather] = useState(null) @@ -368,7 +369,12 @@ export default function DayDetailPanel({ day, days, places, categories = [], tri
{linked.title}
{confirmed ? t('reservations.confirmed') : t('reservations.pending')} - {linked.confirmation_number && #{linked.confirmation_number}} + {linked.confirmation_number && { if (blurCodes) e.currentTarget.style.filter = 'none' }} + onMouseLeave={e => { if (blurCodes) e.currentTarget.style.filter = 'blur(4px)' }} + onClick={e => { if (blurCodes) { const el = e.currentTarget; el.style.filter = el.style.filter === 'none' ? 'blur(4px)' : 'none' } }} + style={{ filter: blurCodes ? 'blur(4px)' : 'none', transition: 'filter 0.2s', cursor: blurCodes ? 'pointer' : 'default' }} + >#{linked.confirmation_number}}
diff --git a/client/src/components/Planner/DayPlanSidebar.tsx b/client/src/components/Planner/DayPlanSidebar.tsx index 277662f..1afcb48 100644 --- a/client/src/components/Planner/DayPlanSidebar.tsx +++ b/client/src/components/Planner/DayPlanSidebar.tsx @@ -1449,7 +1449,7 @@ export default function DayPlanSidebar({ if (meta.platform) detailFields.push({ label: t('reservations.meta.platform'), value: meta.platform }) if (meta.seat) detailFields.push({ label: t('reservations.meta.seat'), value: meta.seat }) } - if (res.confirmation_number) detailFields.push({ label: t('reservations.confirmationCode'), value: res.confirmation_number }) + if (res.confirmation_number) detailFields.push({ label: t('reservations.confirmationCode'), value: res.confirmation_number, sensitive: true }) if (res.location) detailFields.push({ label: t('reservations.locationAddress'), value: res.location }) return ( @@ -1486,12 +1486,25 @@ export default function DayPlanSidebar({ {/* Detail-Felder */} {detailFields.length > 0 && (
- {detailFields.map((f, i) => ( -
-
{f.label}
-
{f.value}
-
- ))} + {detailFields.map((f, i) => { + const shouldBlur = f.sensitive && useSettingsStore.getState().settings.blur_booking_codes + return ( +
+
{f.label}
+
{ if (shouldBlur) e.currentTarget.style.filter = 'none' }} + onMouseLeave={e => { if (shouldBlur) e.currentTarget.style.filter = 'blur(5px)' }} + onClick={e => { if (shouldBlur) { const el = e.currentTarget; el.style.filter = el.style.filter === 'none' ? 'blur(5px)' : 'none' } }} + style={{ + fontSize: 12, fontWeight: 500, color: 'var(--text-primary)', wordBreak: 'break-word', + filter: shouldBlur ? 'blur(5px)' : 'none', transition: 'filter 0.2s', + cursor: shouldBlur ? 'pointer' : 'default', + userSelect: shouldBlur ? 'none' : 'auto', + }} + >{f.value}
+
+ ) + })}
)} diff --git a/client/src/components/Planner/ReservationsPanel.tsx b/client/src/components/Planner/ReservationsPanel.tsx index cd36f06..987ff18 100644 --- a/client/src/components/Planner/ReservationsPanel.tsx +++ b/client/src/components/Planner/ReservationsPanel.tsx @@ -63,6 +63,8 @@ function ReservationCard({ r, tripId, onEdit, onDelete, files = [], onNavigateTo const toast = useToast() const { t, locale } = useTranslation() const timeFormat = useSettingsStore(s => s.settings.time_format) || '24h' + const blurCodes = useSettingsStore(s => s.settings.blur_booking_codes) + const [codeRevealed, setCodeRevealed] = useState(false) const typeInfo = getType(r.type) const TypeIcon = typeInfo.Icon const confirmed = r.status === 'confirmed' @@ -136,7 +138,19 @@ function ReservationCard({ r, tripId, onEdit, onDelete, files = [], onNavigateTo {r.confirmation_number && (
{t('reservations.confirmationCode')}
-
{r.confirmation_number}
+
blurCodes && setCodeRevealed(true)} + onMouseLeave={() => blurCodes && setCodeRevealed(false)} + onClick={() => blurCodes && setCodeRevealed(v => !v)} + style={{ + fontSize: 11, fontWeight: 600, color: 'var(--text-primary)', marginTop: 1, + filter: blurCodes && !codeRevealed ? 'blur(5px)' : 'none', + cursor: blurCodes ? 'pointer' : 'default', + transition: 'filter 0.2s', + }} + > + {r.confirmation_number} +
)} diff --git a/client/src/i18n/translations/de.ts b/client/src/i18n/translations/de.ts index 0aea7ff..9449693 100644 --- a/client/src/i18n/translations/de.ts +++ b/client/src/i18n/translations/de.ts @@ -139,6 +139,7 @@ const de: Record = { 'settings.temperature': 'Temperatureinheit', 'settings.timeFormat': 'Zeitformat', 'settings.routeCalculation': 'Routenberechnung', + 'settings.blurBookingCodes': 'Buchungscodes verbergen', 'settings.on': 'An', 'settings.off': 'Aus', 'settings.account': 'Konto', diff --git a/client/src/i18n/translations/en.ts b/client/src/i18n/translations/en.ts index 46e6310..95e2018 100644 --- a/client/src/i18n/translations/en.ts +++ b/client/src/i18n/translations/en.ts @@ -139,6 +139,7 @@ const en: Record = { 'settings.temperature': 'Temperature Unit', 'settings.timeFormat': 'Time Format', 'settings.routeCalculation': 'Route Calculation', + 'settings.blurBookingCodes': 'Blur Booking Codes', 'settings.on': 'On', 'settings.off': 'Off', 'settings.account': 'Account', diff --git a/client/src/pages/AdminPage.tsx b/client/src/pages/AdminPage.tsx index b63306f..b729a61 100644 --- a/client/src/pages/AdminPage.tsx +++ b/client/src/pages/AdminPage.tsx @@ -333,7 +333,7 @@ export default function AdminPage(): React.ReactElement {
-

Administration

+

{t('admin.title')}

{t('admin.subtitle')}

diff --git a/client/src/pages/SettingsPage.tsx b/client/src/pages/SettingsPage.tsx index 7846f5e..49b5c8a 100644 --- a/client/src/pages/SettingsPage.tsx +++ b/client/src/pages/SettingsPage.tsx @@ -34,7 +34,7 @@ interface SectionProps { function Section({ title, icon: Icon, children }: SectionProps): React.ReactElement { return ( -
+

{title}

@@ -220,12 +220,15 @@ export default function SettingsPage(): React.ReactElement {
-
-
+
+ +

{t('settings.title')}

{t('settings.subtitle')}

+
+ {/* Map settings */}
@@ -439,6 +442,36 @@ export default function SettingsPage(): React.ReactElement { ))}
+ + {/* Blur Booking Codes */} +
+ +
+ {[ + { value: true, label: t('settings.on') || 'On' }, + { value: false, label: t('settings.off') || 'Off' }, + ].map(opt => ( + + ))} +
+
{/* Immich — only when Memories addon is enabled */} @@ -888,6 +921,7 @@ export default function SettingsPage(): React.ReactElement { )} + diff --git a/client/src/types.ts b/client/src/types.ts index e5913ab..f0da1ee 100644 --- a/client/src/types.ts +++ b/client/src/types.ts @@ -171,6 +171,7 @@ export interface Settings { time_format: string show_place_description: boolean route_calculation?: boolean + blur_booking_codes?: boolean } export interface AssignmentsMap { From e6c4c22a1d9beab4f288ac60070a283dc70bb361 Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 30 Mar 2026 12:16:00 +0200 Subject: [PATCH 31/63] =?UTF-8?q?feat:=20bulk=20import=20for=20packing=20l?= =?UTF-8?q?ists=20+=20complete=20i18n=20sync=20=E2=80=94=20closes=20#133?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Packing list bulk import: - Import button in packing list header opens a modal - Paste items or load CSV/TXT file - Format: Category, Name, Weight (g), Bag, checked/unchecked - Bags are auto-created if they don't exist - Server endpoint POST /packing/import with transaction i18n sync: - Added all missing translation keys to fr, es, nl, ru, zh, ar - All 8 language files now have matching key sets - Includes memories, vacay weekdays, packing import, settlement, GPX import, blur booking codes, transport timeline keys --- client/src/api/client.ts | 1 + .../components/Packing/PackingListPanel.tsx | 105 +++++++++++++++++- client/src/i18n/translations/ar.ts | 45 ++++++++ client/src/i18n/translations/de.ts | 9 ++ client/src/i18n/translations/en.ts | 9 ++ client/src/i18n/translations/es.ts | 45 ++++++++ client/src/i18n/translations/fr.ts | 45 ++++++++ client/src/i18n/translations/nl.ts | 45 ++++++++ client/src/i18n/translations/ru.ts | 45 ++++++++ client/src/i18n/translations/zh.ts | 45 ++++++++ server/src/routes/packing.ts | 47 ++++++++ 11 files changed, 440 insertions(+), 1 deletion(-) diff --git a/client/src/api/client.ts b/client/src/api/client.ts index 3301a26..8f09515 100644 --- a/client/src/api/client.ts +++ b/client/src/api/client.ts @@ -112,6 +112,7 @@ export const assignmentsApi = { export const packingApi = { list: (tripId: number | string) => apiClient.get(`/trips/${tripId}/packing`).then(r => r.data), create: (tripId: number | string, data: Record) => apiClient.post(`/trips/${tripId}/packing`, data).then(r => r.data), + bulkImport: (tripId: number | string, items: { name: string; category?: string; quantity?: number }[]) => apiClient.post(`/trips/${tripId}/packing/import`, { items }).then(r => r.data), update: (tripId: number | string, id: number, data: Record) => apiClient.put(`/trips/${tripId}/packing/${id}`, data).then(r => r.data), delete: (tripId: number | string, id: number) => apiClient.delete(`/trips/${tripId}/packing/${id}`).then(r => r.data), reorder: (tripId: number | string, orderedIds: number[]) => apiClient.put(`/trips/${tripId}/packing/reorder`, { orderedIds }).then(r => r.data), diff --git a/client/src/components/Packing/PackingListPanel.tsx b/client/src/components/Packing/PackingListPanel.tsx index 7d670db..d1cc0a0 100644 --- a/client/src/components/Packing/PackingListPanel.tsx +++ b/client/src/components/Packing/PackingListPanel.tsx @@ -3,9 +3,10 @@ import { useTripStore } from '../../store/tripStore' import { useToast } from '../shared/Toast' import { useTranslation } from '../../i18n' import { packingApi, tripsApi, adminApi } from '../../api/client' +import ReactDOM from 'react-dom' import { CheckSquare, Square, Trash2, Plus, ChevronDown, ChevronRight, - X, Pencil, Check, MoreHorizontal, CheckCheck, RotateCcw, Luggage, UserPlus, Package, FolderPlus, + X, Pencil, Check, MoreHorizontal, CheckCheck, RotateCcw, Luggage, UserPlus, Package, FolderPlus, Upload, } from 'lucide-react' import type { PackingItem } from '../../types' @@ -727,6 +728,9 @@ export default function PackingListPanel({ tripId, items }: PackingListPanelProp const [availableTemplates, setAvailableTemplates] = useState<{ id: number; name: string; item_count: number }[]>([]) const [showTemplateDropdown, setShowTemplateDropdown] = useState(false) const [applyingTemplate, setApplyingTemplate] = useState(false) + const [showImportModal, setShowImportModal] = useState(false) + const [importText, setImportText] = useState('') + const csvInputRef = useRef(null) const templateDropdownRef = useRef(null) useEffect(() => { @@ -757,6 +761,44 @@ export default function PackingListPanel({ tripId, items }: PackingListPanelProp } } + const parseImportLines = (text: string) => { + return text.split('\n').map(line => line.trim()).filter(Boolean).map(line => { + // Format: Category, Name, Weight (optional), Bag (optional), checked/unchecked (optional) + const parts = line.split(/[,;\t]/).map(s => s.trim()) + if (parts.length >= 2) { + const category = parts[0] + const name = parts[1] + const weight_grams = parts[2] || undefined + const bag = parts[3] || undefined + const checked = parts[4]?.toLowerCase() === 'checked' || parts[4] === '1' + return { name, category, weight_grams, bag, checked } + } + // Single value = just a name + return { name: parts[0], category: undefined, weight_grams: undefined, bag: undefined, checked: false } + }).filter(i => i.name) + } + + const handleBulkImport = async () => { + const parsed = parseImportLines(importText) + if (parsed.length === 0) { toast.error(t('packing.importEmpty')); return } + try { + const result = await packingApi.bulkImport(tripId, parsed) + toast.success(t('packing.importSuccess', { count: result.count })) + setImportText('') + setShowImportModal(false) + window.location.reload() + } catch { toast.error(t('packing.importError')) } + } + + const handleCsvFile = (e: React.ChangeEvent) => { + const file = e.target.files?.[0] + if (!file) return + e.target.value = '' + const reader = new FileReader() + reader.onload = () => { if (typeof reader.result === 'string') setImportText(reader.result) } + reader.readAsText(file) + } + const font = { fontFamily: "-apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif" } return ( @@ -781,6 +823,13 @@ export default function PackingListPanel({ tripId, items }: PackingListPanelProp {t('packing.clearCheckedShort', { count: abgehakt })} )} + {availableTemplates.length > 0 && (