Files
Cibello-app/apps/worker/src/locale.ts
T
2026-08-05 19:21:11 +07:00

27 lines
971 B
TypeScript

import { eq } from "drizzle-orm";
import { schema } from "@app/database";
import { DEFAULT_LOCALE_PREFERENCES, toLocaleContext, type LocaleContext } from "@app/shared-types";
import type { WorkerContext } from "./context.js";
/** LocaleContext för AAMOS-anrop i workern (i18n-spec §22). SE-defaults som fallback. */
export async function getLocaleContext(
ctx: WorkerContext,
userId: string | null | undefined,
): Promise<LocaleContext> {
if (!userId) return toLocaleContext(DEFAULT_LOCALE_PREFERENCES);
const [row] = await ctx.db
.select()
.from(schema.userLocalePreferences)
.where(eq(schema.userLocalePreferences.userId, userId))
.limit(1);
if (!row) return toLocaleContext(DEFAULT_LOCALE_PREFERENCES);
return {
languageTag: row.languageTag,
regionCode: row.regionCode,
timeZone: row.timeZone,
measurementSystem: row.measurementSystem,
temperatureUnit: row.temperatureUnit,
currencyCode: row.currencyCode,
};
}