d62bb8d3ad
Marketing website for Meezi platform: - Server-side rendered pages: home, demo, blog, pricing - RTL/Farsi layout with Vazirmatn font - SEO metadata and Open Graph tags - proxy.ts for Next.js 16 middleware convention - MEEZI_API_URL internal Docker network routing Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
219 lines
9.2 KiB
TypeScript
219 lines
9.2 KiB
TypeScript
import type { Metadata } from "next";
|
||
import { getTranslations } from "next-intl/server";
|
||
import { Navbar } from "@/components/layout/navbar";
|
||
import { Footer } from "@/components/layout/footer";
|
||
import { Shield } from "lucide-react";
|
||
|
||
export async function generateMetadata({
|
||
params,
|
||
}: {
|
||
params: { locale: string };
|
||
}): Promise<Metadata> {
|
||
const { locale } = await Promise.resolve(params);
|
||
const t = await getTranslations({ locale, namespace: "meta" });
|
||
return { title: t("privacyTitle") };
|
||
}
|
||
|
||
const fa = {
|
||
badge: "حقوقی",
|
||
title: "سیاست حریم خصوصی",
|
||
updated: "آخرین بهروزرسانی: خرداد ۱۴۰۴",
|
||
sections: [
|
||
{
|
||
h: "۱. مقدمه",
|
||
body: `میزی («ما»، «شرکت») اهمیت حریم خصوصی کاربران خود را بهخوبی درک میکند. این سیاست توضیح میدهد چه اطلاعاتی جمعآوری میکنیم، چگونه از آنها استفاده میکنیم و چه حقوقی دارید.
|
||
|
||
با استفاده از خدمات میزی، با شرایط این سیاست موافقت میکنید.`,
|
||
},
|
||
{
|
||
h: "۲. اطلاعاتی که جمعآوری میکنیم",
|
||
body: `الف) اطلاعاتی که شما ارائه میدهید:
|
||
• نام و نام خانوادگی
|
||
• شماره موبایل (برای احراز هویت OTP)
|
||
• نام کسبوکار، آدرس و اطلاعات شعب
|
||
• اطلاعات منو و قیمتگذاری
|
||
|
||
ب) اطلاعاتی که بهطور خودکار جمعآوری میشود:
|
||
• دادههای استفاده از سرویس (سفارشها، تراکنشها)
|
||
• آدرس IP و اطلاعات دستگاه
|
||
• کوکیهای ضروری برای عملکرد سرویس`,
|
||
},
|
||
{
|
||
h: "۳. نحوه استفاده از اطلاعات",
|
||
body: `اطلاعات شما برای موارد زیر استفاده میشود:
|
||
• ارائه، نگهداری و بهبود خدمات میزی
|
||
• احراز هویت و امنیت حساب
|
||
• پردازش سفارشها و تراکنشهای مالی
|
||
• ارسال اطلاعیههای سرویس و بهروزرسانیها
|
||
• پشتیبانی فنی و رفع مشکلات
|
||
• تولید گزارشهای آماری کلی (بدون شناسایی هویت)`,
|
||
},
|
||
{
|
||
h: "۴. ذخیرهسازی و امنیت داده",
|
||
body: `تمام دادههای شما روی سرورهای داخل ایران نگهداری میشوند. ما از موارد زیر برای حفاظت از اطلاعات استفاده میکنیم:
|
||
• رمزگذاری TLS 1.3 برای تمام ارتباطات
|
||
• رمزگذاری دادههای حساس در سطح پایگاه داده
|
||
• پشتیبانگیری روزانه خودکار
|
||
• کنترل دسترسی مبتنی بر نقش (RBAC)
|
||
• مانیتورینگ و هشدار امنیتی ۲۴/۷`,
|
||
},
|
||
{
|
||
h: "۵. اشتراکگذاری اطلاعات",
|
||
body: `اطلاعات شما را به اشخاص ثالث نمیفروشیم. ممکن است اطلاعات را در موارد زیر به اشتراک بگذاریم:
|
||
• درگاههای پرداخت (زرینپال و غیره) — فقط اطلاعات تراکنش ضروری
|
||
• ارائهدهندگان پیامک — فقط شماره موبایل و متن OTP
|
||
• الزامات قانونی — در صورت دستور مراجع قضایی
|
||
|
||
در تمام موارد، حداقل اطلاعات ضروری به اشتراک گذاشته میشود.`,
|
||
},
|
||
{
|
||
h: "۶. حقوق شما",
|
||
body: `شما حق دارید:
|
||
• به اطلاعات شخصیتان دسترسی داشته باشید
|
||
• اطلاعات نادرست را اصلاح کنید
|
||
• حذف حساب و دادههای مرتبط را درخواست دهید
|
||
• خروجی دادههایتان را دریافت کنید
|
||
• از پردازش اطلاعات برای اهداف بازاریابی انصراف دهید
|
||
|
||
برای اعمال هر یک از این حقوق، با ما به آدرس privacy@meezi.ir تماس بگیرید.`,
|
||
},
|
||
{
|
||
h: "۷. کوکیها",
|
||
body: `میزی از کوکیهای ضروری برای عملکرد سرویس (احراز هویت، نشست) استفاده میکند. کوکیهای تبلیغاتی یا ردیابی شخص ثالث استفاده نمیشوند.`,
|
||
},
|
||
{
|
||
h: "۸. تغییرات در این سیاست",
|
||
body: `در صورت تغییر این سیاست، از طریق داشبورد یا ایمیل اطلاعرسانی خواهیم کرد. ادامه استفاده از سرویس پس از اطلاعرسانی، به منزله پذیرش تغییرات است.`,
|
||
},
|
||
{
|
||
h: "۹. تماس با ما",
|
||
body: `برای هرگونه سوال درباره حریم خصوصی:
|
||
ایمیل: privacy@meezi.ir
|
||
آدرس: تهران، ایران`,
|
||
},
|
||
],
|
||
};
|
||
|
||
const en = {
|
||
badge: "Legal",
|
||
title: "Privacy Policy",
|
||
updated: "Last updated: June 2025",
|
||
sections: [
|
||
{
|
||
h: "1. Introduction",
|
||
body: `Meezi ("we", "company") takes user privacy seriously. This policy explains what information we collect, how we use it, and what rights you have.
|
||
|
||
By using Meezi's services, you agree to the terms of this policy.`,
|
||
},
|
||
{
|
||
h: "2. Information We Collect",
|
||
body: `a) Information you provide:
|
||
• Full name
|
||
• Mobile number (for OTP authentication)
|
||
• Business name, address, and branch information
|
||
• Menu items and pricing
|
||
|
||
b) Automatically collected information:
|
||
• Service usage data (orders, transactions)
|
||
• IP address and device information
|
||
• Essential cookies for service functionality`,
|
||
},
|
||
{
|
||
h: "3. How We Use Your Information",
|
||
body: `Your information is used to:
|
||
• Provide, maintain, and improve Meezi services
|
||
• Authenticate and secure your account
|
||
• Process orders and financial transactions
|
||
• Send service notifications and updates
|
||
• Technical support and issue resolution
|
||
• Generate aggregate statistical reports (non-identifying)`,
|
||
},
|
||
{
|
||
h: "4. Data Storage & Security",
|
||
body: `All your data is stored on servers inside Iran. We protect your information with:
|
||
• TLS 1.3 encryption for all communications
|
||
• Encryption of sensitive data at the database level
|
||
• Automatic daily backups
|
||
• Role-based access control (RBAC)
|
||
• 24/7 security monitoring and alerting`,
|
||
},
|
||
{
|
||
h: "5. Information Sharing",
|
||
body: `We do not sell your information to third parties. We may share information in these cases:
|
||
• Payment gateways (ZarinPal, etc.) — only necessary transaction data
|
||
• SMS providers — only mobile number and OTP text
|
||
• Legal requirements — when required by judicial authorities
|
||
|
||
In all cases, only the minimum necessary information is shared.`,
|
||
},
|
||
{
|
||
h: "6. Your Rights",
|
||
body: `You have the right to:
|
||
• Access your personal information
|
||
• Correct inaccurate information
|
||
• Request deletion of your account and related data
|
||
• Receive an export of your data
|
||
• Opt out of marketing communications
|
||
|
||
To exercise any of these rights, contact us at privacy@meezi.ir`,
|
||
},
|
||
{
|
||
h: "7. Cookies",
|
||
body: `Meezi uses essential cookies for service functionality (authentication, session). No advertising or third-party tracking cookies are used.`,
|
||
},
|
||
{
|
||
h: "8. Changes to This Policy",
|
||
body: `If this policy changes, we will notify you via the dashboard or email. Continued use of the service after notification constitutes acceptance of the changes.`,
|
||
},
|
||
{
|
||
h: "9. Contact Us",
|
||
body: `For any privacy-related questions:
|
||
Email: privacy@meezi.ir
|
||
Address: Tehran, Iran`,
|
||
},
|
||
],
|
||
};
|
||
|
||
export default async function PrivacyPage({
|
||
params,
|
||
}: {
|
||
params: { locale: string };
|
||
}) {
|
||
const { locale } = await Promise.resolve(params);
|
||
const c = locale === "fa" ? fa : en;
|
||
|
||
return (
|
||
<>
|
||
<Navbar />
|
||
<main className="pt-16">
|
||
{/* Hero */}
|
||
<div className="bg-gradient-to-br from-brand-900 to-brand-700 pb-16 pt-16 text-center">
|
||
<div className="mx-auto flex h-14 w-14 items-center justify-center rounded-2xl bg-white/10">
|
||
<Shield className="h-7 w-7 text-white" />
|
||
</div>
|
||
<span className="mt-4 inline-flex items-center gap-1.5 rounded-full border border-white/20 bg-white/10 px-3 py-1 text-xs font-semibold text-white/80">
|
||
{c.badge}
|
||
</span>
|
||
<h1 className="mt-3 text-3xl font-extrabold text-white sm:text-4xl">{c.title}</h1>
|
||
<p className="mt-2 text-sm text-white/50">{c.updated}</p>
|
||
</div>
|
||
|
||
{/* Content */}
|
||
<div className="mx-auto max-w-3xl px-4 py-16 sm:px-6 lg:px-8">
|
||
<div className="space-y-10">
|
||
{c.sections.map((sec) => (
|
||
<div key={sec.h}>
|
||
<h2 className="mb-3 text-lg font-bold text-gray-900">{sec.h}</h2>
|
||
<div className="whitespace-pre-line text-sm leading-relaxed text-gray-600">
|
||
{sec.body}
|
||
</div>
|
||
</div>
|
||
))}
|
||
</div>
|
||
</div>
|
||
</main>
|
||
<Footer />
|
||
</>
|
||
);
|
||
}
|