import '../../variants.css'; import { createT, formatAmd, isLocale, LOCALES, type Locale } from '@barev/i18n'; import { Icon } from '@barev/ui'; import { notFound } from 'next/navigation'; import { BotLink, BotLinkProvider } from '../../../components/client'; import { GiftCode } from '../../../components/gift-code'; import { VariantHeader, variantMetadata } from '../../../components/variant'; import { getCatalog } from '../../../lib/data'; export const revalidate = 300; export const dynamicParams = false; export function generateStaticParams() { return LOCALES.map((locale) => ({ locale })); } export function generateMetadata({ params }: { params: Promise<{ locale: string }> }) { return variantMetadata(params, '/land3', 'landing.v3.title'); } /** Версия 3 «Подарок от агентства»: для тех, кто пришёл по QR из договора аренды. Бирка для ключей с месяцем Barev+ */ export default async function Land3({ params }: { params: Promise<{ locale: string }> }) { const { locale: raw } = await params; if (!isLocale(raw)) notFound(); const locale: Locale = raw; const t = createT(locale); const amd = (n: number) => formatAmd(locale, n); const catalog = await getCatalog(); const home = catalog.categories.find((c) => c.code === 'HOME'); const cleaningFrom = home?.services.find((s) => s.code === 'cleaning')?.fromPrice ?? 0; const homePct = home?.barevPlusDiscountPct ?? 0; // так же округляет скидку сервер: вниз до целого драма const cleaningWithPlus = cleaningFrom - Math.floor((cleaningFrom * homePct) / 100); const discounts = catalog.categories.filter((c) => c.barevPlusDiscountPct > 0); return (
{t('landing.v3.tag')}

{t('landing.v3.title')}

{t('landing.v3.sub')}

{t('landing.v3.cta')}

{t('landing.v3.stepsTitle')}

    {([1, 2, 3] as const).map((n) => (
  1. {n} {t(`landing.v3.step${n}`)} {t(`landing.v3.step${n}Sub`)}
  2. ))}
    {discounts.map((c) => (
  • {t('plans.plus.discount', { pct: c.barevPlusDiscountPct, category: t(`categories.${c.code}.name`) })}
  • ))}
  • {t('plans.free.perks')}

{t('landing.v3.noCode')}

{t('landing.v3.cta')}
); }