Add photo upload as a real onboarding step

Photos are now step 2 of onboarding (right after basic info) instead
of only being manageable from the profile page later. Uploading still
goes through the existing /profile/photos endpoint; the new
POST /onboarding/photos just confirms at least one photo exists and
advances the step counter. Renumbered the OnboardingStep enum
accordingly (9 steps total now).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-16 09:21:50 +03:30
parent fda1b130ff
commit 15583009e0
6 changed files with 54 additions and 11 deletions
+14 -9
View File
@@ -78,23 +78,28 @@ func (s *KavenegarOTPSender) Send(phone, otp string) bool {
## فرآیند آنبوردینگ
۸ مرحله‌ی ثابت که باید به‌ترتیب طی بشن (نمی‌شه از روی مرحله پرید، ولی مراحل
۹ مرحله‌ی ثابت که باید به‌ترتیب طی بشن (نمی‌شه از روی مرحله پرید، ولی مراحل
قبلی هر وقت بخوای قابل ویرایش‌اند؛ بعد از تکمیل کامل هم همه‌ی مراحل آزادانه
قابل ویرایش می‌شن):
قابل ویرایش می‌شن — حتی توی همون بازه‌ای که کاربر منتظر تایید ادمینه):
| # | مرحله | Endpoint |
|---|-------|----------|
| ۱ | جنسیت، اسم، تاریخ تولد | `POST /onboarding/basic-info` |
| ۲ | قد و وزن | `POST /onboarding/body-info` |
| ۳ | ۳ سوال از پیش‌تعریف‌شده + پاسخ | `POST /onboarding/profile-questions` |
| ۴ | سطح تحصیلات + رشته | `POST /onboarding/education` |
| ۵ | کارهایی که انجام می‌دهد (چندتایی) | `POST /onboarding/occupations` |
| ۶ | ۳ چیز مهم در رابطه | `POST /onboarding/relationship-importance` |
| ۷ | ۵ علاقه‌مندی | `POST /onboarding/interests` |
| ۸ | دنبال چی می‌گردی | `POST /onboarding/looking-for` |
| ۲ | عکس‌ها (حداقل ۱ عکس؛ خودِ آپلود از `/profile/photos`) | `POST /onboarding/photos` |
| ۳ | قد و وزن | `POST /onboarding/body-info` |
| ۴ | ۳ سوال از پیش‌تعریف‌شده + پاسخ | `POST /onboarding/profile-questions` |
| ۵ | سطح تحصیلات + رشته | `POST /onboarding/education` |
| ۶ | کارهایی که انجام می‌دهد (چندتایی) | `POST /onboarding/occupations` |
| ۷ | ۳ چیز مهم در رابطه | `POST /onboarding/relationship-importance` |
| ۸ | ۵ علاقه‌مندی | `POST /onboarding/interests` |
| ۹ | دنبال چی می‌گردی | `POST /onboarding/looking-for` |
وضعیت فعلی: `GET /onboarding/status`
اگه کاربر قبلاً رد شده باشه و بعد از onboarded شدن هرکدوم از مراحل رو دوباره
بزنه (حتی مرحله‌ی عکس‌ها)، `approval_status` خودکار به `pending` برمی‌گرده تا
ادمین دوباره بررسی کنه.
### بعد از تکمیل آنبوردینگ: تایید ادمین
به محض تکمیل مرحله‌ی ۸، `approval_status` کاربر روی `pending` قرار می‌گیرد.