۱۱ — تصمیمهای باز
هر تصمیم جدید → یک خط در این فایل آپدیت شود.
جدول تصمیمات
| # | سوال | گزینهها | پیشنهاد فنی | وضعیت |
|---|---|---|---|---|
| 1 | کلاینت: PWA یا native? | PWA / Native / Both | PWA برای MVP | ⬜ باز |
| 2 | «پرداخت با پز» یعنی چی? | (الف) flag دستی وندور / (ب) integration POS بانک | (الف) — پیاده شده | ✅ pay_at_pickup flag — بدون API بانک |
| 3 | هر رستوران چند نوع باکس? | یک / چند سایز (S/M/L) | یک per co-founder | ✅ یک باکس per vendor per day |
| 4 | مدل پکیج رستوران برای MVP? | flat monthly / commission / hybrid | commission 12% (Beta package) — seed دارد | ✅ Beta: commission 12% — مدل ۳-tier نهایی v2 |
| 5 | تایید pickup? | کد عددی / QR / manual list | کد ۶ رقمی + manual | ✅ کد ۶ رقمی پیاده شده |
| 6 | scope لانچ? | یک محله / شهر / کشور | ۲–۳ محله تهران | ⬜ باز |
| 7 | سیاست no-show? | باکس میسوزد / partial refund / … | no refund gateway; inventory lost | ⬜ باز |
| 8 | قرارداد/مجوز رستوران? | informal / legal entity required | legal before scale | ⬜ باز |
| 9 | نام برند نهایی? | حیفه / حیف نشه / تا داره / از دست نده / TakeEat | TakeEat / تیک ایت — takeeat.ir | ✅ TakeEat / تیک ایت — takeeat.ir |
| 10 | اعداد UI? | فارسی ۱۲۳ / لاتین 123 | لاتین for premium fintech feel | ⬜ باز |
| 11 | Monorepo: یک Next app یا سه تا? | single app route groups / separate apps | route groups leaner | ✅ یک Next.js app با route groups |
| 11b | Backend: Next.js full-stack یا FastAPI? | Next.js API Routes / FastAPI | Next.js — یک زبان، AI-friendly | ✅ Next.js full-stack |
| 12 | JWT storage? | httpOnly cookie / localStorage header | httpOnly safer | ✅ httpOnly cookie — پیاده شده |
| 13 | Timezone? | Asia/Tehran everywhere | Tehran display, UTC store | ✅ UTC در DB، fa-IR برای نمایش |
| 14 | Hold inventory before pay? | yes 10min / no | yes — prevent oversell | ✅ decrement بعد از payment OK |
| 15 | Rating in MVP? | yes / no | no — v2 | ✅ no — v2 |
| 16 | Real-time order updates? | WebSocket / SSE / polling | polling برای MVP | ✅ polling 5s — پیاده شده |
| 17 | Cancel policy? | هر زمان / فقط قبل از تأیید وندور | فقط قبل از تأیید | ✅ cancel فقط وقتی ≤ awaiting_vendor |
| 18 | Vendor باید سفارش را تأیید کند? | بله (awaiting_vendor) / خیر (auto confirm) | بله — کیفیت کنترل | ✅ awaiting_vendor → vendor confirm → confirmed |
| 19 | اگه وندور هیچوقت تأیید نکند؟ | timeout + auto-cancel / دستی ادمین / معلق بماند | auto-cancel در pickup_start | ✅ expireUnconfirmedOrders() در cron — cancel در pickup_start |
| 20 | refund gateway برای auto-cancel آپ #19؟ | auto Zarinpal refund / ادمین دستی / بدون refund | ادمین دستی برای MVP | ⬜ باز — ادمین باید manual refund بزند |
جزئیات سوالات کلیدی باز
#1 PWA vs Native
MVP با PWA شروع میشود (Next.js). اگر بعد از اعتبارسنجی تقاضا به native نیاز شد:
- Android: Kotlin + Compose (API Routes موجود = backend)
- iOS: Swift + SwiftUI
#4 مدل پکیج (MVP بسته شد)
MVP: Beta package با commission: 12% — در seed.ts موجود است.
v2: مدل ۳-tier (پایه/حرفهای/پریمیوم) با flat+commission — بعد از اعتبارسنجی.
TGTG reference: ~$89/year US + per-tx fee.
#6 liquidity
TGTG started with hundreds of restaurants in ONE city before expanding. Empty list kills retention.
Action: sign 5–10 vendors in same neighborhood before public launch.
#9 نام برند — بسته شد
تصمیم: TakeEat (انگلیسی) / تیک ایت (فارسی) — دامنه takeeat.ir
جزئیات و گزینههای قبلی: 04-brand-naming.md
#8 legal
Production payment gateway نیاز دارد:
- ثبت شرکت
- اینماد
- قرارداد با رستورانها
MVP sandbox بدون اینها کار میکند.
Log تصمیمات
| تاریخ | # | تصمیم | توسط |
|---|---|---|---|
| ۱۴۰۵/۰۴/۰۳ | 11b | Next.js full-stack (بدون FastAPI) | co-founder |
| ۱۴۰۵/۰۴/۰۳ | 11 | یک Next.js app با route groups | co-founder |
| ۱۴۰۵/۰۴/۰۳ | 12 | JWT در httpOnly cookie | فنی — MVP |
| ۱۴۰۵/۰۴/۰۳ | 13 | UTC در DB، fa-IR نمایش | فنی — MVP |
| ۱۴۰۵/۰۴/۰۳ | 14 | decrement inventory بعد از payment OK | فنی — MVP |
| ۱۴۰۵/۰۴/۰۳ | 15 | بدون rating در MVP | co-founder |
| ۱۴۰۵/۰۴/۰۳ | 2 | pay_at_pickup flag (بدون POS API) | فنی — MVP |
| ۱۴۰۵/۰۴/۰۳ | 3 | یک باکس per vendor per day | co-founder |
| ۱۴۰۵/۰۴/۰۳ | 5 | کد ۶ رقمی pickup | فنی — MVP |
| ۱۴۰۵/۰۴/۰۳ | 16 | polling 5s به جای WebSocket | فنی — MVP |
| ۱۴۰۵/۰۴/۰۳ | 17 | cancel فقط ≤ awaiting_vendor | فنی — UX |
| ۱۴۰۵/۰۴/۰۳ | 18 | awaiting_vendor مرحله اجباری | co-founder |
| ۱۴۰۵/۰۴/۲۱ | 9 | TakeEat / تیک ایت — takeeat.ir | co-founder |
Blockers — cannot go to production without
- [ ] #6 launch geography — قبل از public launch
- [ ] #8 ثبت شرکت + اینماد — برای payment production (gateway → sandbox کافی برای soft launch)
- [ ] #20 refund خودکار برای auto-cancelled orders (awaiting_vendor timeout)